全面系统Python3入门+进阶课程 ??

全面系统Python3入门+进阶课程

Python语言本身就是一门简单的语言,入门非常容易。

机器学习中用到的Python(语法)相对就更简单了。

本文从机器学习的视角来看需要具备的Python基础。

我们的目标是~~

没有蛀牙...

针对一个程序员(如Java程序员),在1个小时内学会足够机器学习中使用到的Python语法。

1. Python简介

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。

Guido van Rossum

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  • Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

2. Python基础

以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释。其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

缩进有利有弊。好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab。按照约定俗成的管理,应该始终坚持使用4个空格的缩进。

缩进的另一个好处是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函数,从而得到缩进较少的代码。

缩进的坏处就是“复制-粘贴”功能失效了,这是最坑爹的地方。当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。此外,IDE很难像格式化Java代码那样格式化Python代码。

最后,请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

2.1 数据类型

计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,有六个标准的数据类型:

  • Numbers(数字):数字数据类型用于存储数值。

pi = 3.14

  • String(字符串):由数字、字母、下划线组成的一串字符。

str = "阿光最帅!"

  • List(列表):列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

list = [ ‘kevin‘, 998 , 13.14, ‘roy‘, 666 ]

  • Tuple(元组):类似于List(列表),但是不能二次赋值,相当于只读列表。

tuple = ( ‘runoob‘, 786 , 2.23, ‘john‘, 70.2 )

  • Sets(集合):是一个无序不重复元素的序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
student = {‘Tom‘, ‘Jim‘, ‘Mary‘, ‘Tom‘, ‘Jack‘, ‘Rose‘}
superman = set([‘Tom‘, ‘Jim‘, ‘Mary‘, ‘Tom‘, ‘Jack‘, ‘Rose‘])
  • Dictionary(字典):字典是无序的对象集合,通过键来存取的元素。字典由索引(key)和它对应的值(value)组成。

tinydict = {‘name‘: ‘john‘,‘code‘:6734, ‘dept‘: ‘sales‘}

2.2 条件判断

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。

Python中使用if、elif 和 else 来完成条件判断。

age = 3
if age >= 18:
    print(‘adult‘)
elif age >= 6:
    print(‘teenager‘)
else:
    print(‘kid‘)

2.3 循环

循环语句允许我们执行一个语句或语句组多次。

Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来。

names = [‘Michael‘, ‘Bob‘, ‘Tracy‘]
for name in names:
    print(name)

第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

2.4 with语句

有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。在这个过程中,你还需要处理很多异常。

try:
    f = open(‘xxx‘)
except:
    print ‘fail to open‘
    exit(-1)
try:
    do something
except:
    do something
finally:
     f.close()

虽然这段代码运行良好,但是太冗长了。

这时候就是with一展身手的时候了。除了有更优雅的语法,with还可以很好的处理上下文环境产生的异常。

下面是with版本的代码:

with open("/tmp/foo.txt") as file:
    data = file.read()

3. 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

Python 定义函数使用 def 关键字。

# 计算面积函数
def area(width, height):
    return width * height

def print_welcome(name):
    print("Welcome", name)

print_welcome("Runoob")
w = 4
h = 5
print("width =", w, " height =", h, " area =", area(w, h))

4. 模块

在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

使用模块有什么好处?

最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

#!/usr/bin/python
# -*- coding:utf-8 -*-
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn import preprocessing

使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。

每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。

5. 面向对象编程

面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

5.1 类和实例

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

class Student(object):

    def __init__(self, name, score):
        self.name = name
        self.score = score

    def print_score(self):
        print(‘%s: %s‘ % (self.name, self.score))

    def get_grade(self):
        if self.score >= 90:
            return ‘A‘
        elif self.score >= 60:
            return ‘B‘
        else:
            return ‘C‘

lisa = Student(‘Lisa‘, 99)
bart = Student(‘Bart‘, 59)
print(lisa.name, lisa.get_grade())
print(bart.name, bart.get_grade())

5.2 访问限制

在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。

如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。

class Student(object):

    def __init__(self, name, score):
        self.__name = name
        self.__score = score

    def print_score(self):
        print(‘%s: %s‘ % (self.__name, self.__score))

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score

    def set_score(self, score):
        self.__score = score

需要注意的是,在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。

原文地址:https://www.cnblogs.com/itye2/p/11657986.html

时间: 2024-10-09 03:30:35

全面系统Python3入门+进阶课程 ??的相关文章

全面系统Python3入门+进阶-1-1 导学

python特点 结束 原文地址:https://www.cnblogs.com/wangjunwei/p/11926946.html

全面系统Python3入门+进阶-1-2 Python的特性

结束 原文地址:https://www.cnblogs.com/wangjunwei/p/11926983.html

全网最热Python3入门+进阶 更快上手实际开发

详情请咨询  QQ  709639943 01.Python Flask 构建微电影视频网站 02.Python3 全网最热的Python3入门+进阶 比自学更快上手实际开发 03.Python3.6 强力Django+杀手级Xadmin打造上线标准的在线教育平台 04.python_进阶强化 05.Java秒杀系统方案优化 高性能高并发实战 06.企业级刚需Nginx入门,全面掌握Nginx配置+快速搭建高可用架构 07.快速上手Linux 玩转典型应用 08.全面系统讲解CSS 工作应用+面

Hadoop入门进阶课程12--Flume介绍、安装与应用案例

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  .该系列课程是应邀实验楼整理编写的,这里需要赞一下实验楼提供了学习的新方式,可以边看博客边上机实验,课程地址为 https://www.shiyanlou.com/courses/237 [注]该系列所使用到安装包.测试数据和代码均可在百度网盘下载,具体地址为 http://pan.baidu.c

Python3入门机器学习 经典算法与应用

详情请交流  QQ  709639943 00.Python3入门机器学习 经典算法与应用 00.老司机学python篇:第一季(基础速过.机器学习入门) 00.Python 从入门到精通 78节.2000多分钟.36小时的高质量.精品.1080P高清视频教程!包括标准库.socket网络编程.多线程.多进程和协程. 00.Django实战之用户认证系统 00.Django实战之企业级博客 00.深入浅出Netty源码剖析 00.NIO+Netty5各种RPC架构实战演练 00.JMeter 深

python入门学习课程推荐

最近在学习自动化,学习过程中,越来越发现coding能力的重要性,不会coding,基本不能开展自动化测试(自动化工具只是辅助). 故:痛定思痛,先花2个星期将python基础知识学习后,再进入自动化的学习. 现推荐几个学习python基础知识的途径: 1.<笨办法学python>(第三版),从头到尾一个字一个字的照着程序敲: 2.慕课网<python入门>课程: 3.网易云课堂<疯狂的python>公开课. 4.<廖雪峰Python3>pdf文件. 这也是

Hadoop入门进阶步步高(一)-环境准备

前言 Hadoop从存储上来说,是类似于冗余磁盘阵列(RAID)的存储方式,将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFS(Hadoop Distuibute Fils System):从计算上来说,它通过MapReduce模型,将大数据的计算分发到多台计算机上完成,再将结果合并,减少计算的时间. Hadoop适合于: 1.超大数据的计算: 2.一次写入.多次读取的模式: 3.可以跑在普通的硬件上. Hadoop不适合: 1.低延迟的数据访问,它是为高数据吞吐量应用优化的: 2.大量

Hadoop入门进阶步步高(三)-配置Hadoop

三.配置Hadoop 1.设置$HADOOP_HOME/conf/hadoop-env.sh 这个文件中设置的是Hadoop运行时需要的环境变量,在1.2.1版中共有19个环境变量,如下: 变量名称 默认值 说明 JAVA_HOME 设置JDK的路径,这个必须设置,否则Hadoop无法启动,值如: /usr/local/jdk1.6.0_33 HADOOP_CLASSPATH 空 这个用以设置用户的类路径,也可以在执行计算之前设置 HADOOP_HEAPSIZE 1000m 设置Hadoop堆的

Hadoop入门进阶步步高(五)-搭建Hadoop集群

五.搭建Hadoop集群 上面的步骤,确认了单机可以执行Hadoop的伪分布执行,真正的分布式执行无非也就是多几台slave机器而已,配置方面的有一点点区别,配置起来就非常简单了. 1.准备三台服务器 192.168.56.101 192.168.56.102 192.168.56.103 在每台机器的/etc/hosts中都将ip及hostname给映射上: 192.168.56.101  nginx1 192.168.56.102  nginx2 192.168.56.103  nginx3