这篇文章主要介绍了python123和中国大学慕课,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。
Source code download: 本文相关源码
一.文章出处
本文主要学习参考 杨老师的教程
更加详细请转至原文出处:https://blog.csdn.net/Eastmount/article/details/108172132
主要是对老师的课程学习,笔记,记忆。希望多多支持杨老师
Python
Python程序员成长路线图,包括:基础语法–>语感训练–>课题练习–>分方向继续学习–>中级程序员–>拓展深度和广度–>高级程序员python作品展示。
老师推荐课程:MOOC北理工嵩天老师的视频和runoob语法
https://www.icourse163.org/course/BIT-268001
https://www.runoob.com/python/python-intro.html
爬虫学习不可或缺,主要学习以下的爬虫方向。
Urllib、Requests、BeautifulSoup、XPath、Selenium、Scrapy、分布式爬虫
Python可视化分析(词云)、微信操作、邮箱发送等功能。
- 人工智能方向:包括机器学习(回归 | 聚类 | 分类)、深度学习(TensorFlow | Keras | Pytorch)学习,建议结合实际科研或项目进行深入研究
- 图像识别方向:包括图像处理、OpenCV、模式识别、机器学习、深度学习、目标检测学习,也建议结合实际科研或项目进行深入研究
- 其他方向学习:Web网站开发、网络安全、自动化测试、应用程序编写
老师说的话十分的刻骨
学习路上没有捷径,只有坚持,但你却能通过Python不断提升你的学习兴趣
If not now, when? If not me, who?
如果不是为了自己奋斗,又是为谁;如果不是现在奋斗,什么时候开始呢?
自己常常用这句话激励自己,每当自己学习久了,确实需要缓一缓,累了就告诫自己要努力,时光有限,不负韶华。
三更灯火五更鸡,正是男儿读书时
黑发不知勤学早,白首方悔读书迟
二.基础语法
2.1缩进与注释
缩进
在python之中用缩进来表明代码之间的层次从属,关系。一般4个空格就表示一个缩进。等于一个tab
Python引号
python中的引号有三种分别是单个引号,双引号,三个引号。单引号开始就要单引号结束,双引号也相同。但是这两者的内容不能够换行,三引号里面的内容可以换行。
word1 = '你好'
word2 = "Hello World"
word3 = '''
你好,
我好,
大家好。
'''
print(word1,word2,word3)
注释
注释的用来揭示代码的含义,一般注释分为两种,一种是行注释
#我是注释
print('hello world') #我也是行注释
另一种就是块注释,块注释一般是用来解释整体代码的运行目的和注意事项,所以内容可以能比较长,一般用三引号’’’ ‘’’’
'''
解释代码作用
'''
print('hello world')
多行语句
Python语言中代码很长不容易阅读的时候,可以将用反斜杠将代码分行,一行被分为两行后,人方便阅读,计算机仍然将其作为一行代码执行
word1 = '你好'
word2 = '我好'
word3 = word1 + \
word2
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
list1 = ['hello',
'word']
2.变量与常量
变量
变量的命名规则:
- 变量名是由英文的大小写、数字和下划线(_)组合而成的。
- 变量名的开始的第一个字符必须是字母或下划线(_),不可以是数字开头。
- Python中的变量是区分大小写的,只要长得不一样那就是两个不同的变量。
- 在Python中对变量进行赋值时,使用单引号和双引号是一样的效果。
关键词不能用于声明变量,如下:
‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’,
‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’,
‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’,
‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’
常量
常量是指程序中值不发生改变的元素,一旦初始化后就不能对其修改的固定值,它是内存中用来保存固定值的单元。
3.输入与输出
输出
输出使用print()函数实现。
如果想要输出多个值,多个值之间用英文逗号连接,print(a,b,c)
Python的格式化输出,可以借助format函数实现调用传值
word1 = '你好'
word2 = "Hello World"
word3 = '''
你好,
我好,
大家好。
'''
print(word1,word2,word3)
print(format(word1))
“6.2f”表示输出6位数值的浮点数,小数点后精确到两位,输出值的最后一位采用四舍五入方式计算。
“.2%”表示输出百分数,保留两位有效数字。
如果想输出整数直接使用“.0f”即可。
输入
Python的输入的input()函数。
- input()
input()函数从控制台获取用户输入的值,格式为:<变量>=input(<提示性文字>)。获取的输入结果为用户输入的字符串或值,并保存在变量中。输入字符串和整数实例如下,其中type()函数用于查找变量的类型。
str1 = input("input:")
input:"I am a teacher"
print(str1)
I am a teacher
4.赋值与表达式
赋值
编程语言中的等号’=‘表示的是赋值操作,’==‘才是等于,例如给一个变量赋值可以是 temp = ‘hello’。
Python中支持对多个变量的复制,表达式如下:
- <变量1>,<变量2>,…,<变量n> = <表达式1>,<表达式2>,…,
先运算右侧N个表达式,然后同时将表达式结果赋给左侧变量。举例如下:
a,b,c = 10,20,(10+20)/2
print(a,b,c)
果然是先算右边的
表达式
表达式是程序中产生或计算新数据值的一行代码,。定义表达式注意一下几点:
- 使用变量之前必须对其赋值,使用赋值表达式对其赋值。
- 表达式也需要遵循句首缩进规律,且不能改变其空格数量。
- 表达式中可以适量增加空格,使程序可读性更高,但空格不能分割变量的命名方式,比如“a = b + c”,在运算符之间适当增加空格。
四.数据类型
1.数字类型
Python常见的数字类型包括整数类型、浮点数类型、复数类型。
-
整数类型:对应的数学中的整数,其返回类型为int型,如10、25等;long为长整型,也可以代表八进制和十六进制。
-
浮点数类型:带有小数点的数字,返回类型为float型。
-
复数类型:Python复数分为两部分,形如a + bj,其中a为实部,b为虚部,返回类型为complex,例如-12.3 + 8j。复数可以通过.real获取实部数据,.imag获取虚部数据。
>>> z = -12.3 + 8j
>>> print(z, type(z))
(-12.3+8j) <type 'complex'>
>>> print(z.real, z.imag)
-12.3 8.0
Python中数字类型可以相互转换:
- 浮点型用int()函数转换为整数,如int(3.14)返回结果3。
- 整数调用float()转换为小数,如float(3),返回结果是3.0。
- 浮点数调用complex()函数转换为复数。
2.字符串类型
字符串类型在Python中是指需要用单引号或双引号括起来的一个字符或字符串。该类型调用type(‘Python’)返回的结果是str类型。一般记为:
- s=“a1a2···an”(n>=0)
字符串表示一个字符的序列,其最左端表示字符串的起始位置,下标为0,然后依次递增。字符串对应的编号称为“索引”,比如str1=‘Python’,则str1[0]获取第一个字符,即“P”字母,并且字符串提供了一些操作和函数共用户使用,比如len(str1)计算字符串长度,其返回结果为6。
counter = 100 #赋值整型变量
miles = 1000.0 #浮点型
name = "Eastmount" #字符串
python的字串列表有两种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头
获取一段子字符串,可以使用切片操作 [头下标:尾下标] 来截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
注意包前不包后
比如:
s = 'abcdef'
s[1:5]
>>> 'bcde'
3.列表类型
列表是在中括号([ ])中用逗号分隔的元素集合,列表中的元素可以通过索引进行单个访问,列表的每个元素之间是有序的。例如:
list1 = [1, 2, 3, 4, 5]
print(list1)
>>> [1, 2, 3, 4, 5]
print(list1[0])
>>> 1
print(type(list1))
>>> <type 'list'>
>>>
list2 = ['I', 'am', 'a', 'teacher']
print(list2)
>>> ['I', 'am', 'a', 'teacher']
print(list2[3])
>>> teacher
列表可是复合数据类型。可以是字符、数字、字符串甚至可以包含列表(即嵌套)多种数据类型在一个列表之中。列表用 [ ] 标识。
列表也支持切片操作
列表支持 + 的拼接操作,以及对于*的复制操作
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8]
list3 = [1,1]
print(list1+list2)
>>> [1, 2, 3, 4, 5, 6, 7, 8]
print(list3*3)
>>> [1,1,1,1,1,1,]
#列表的切片操作
print(list1[2:4])
>>> [3, 4]
4.元组类型
元组是和列表类似的一种数据类型,它采用小括号定义一个或多个元素的集合,其返回类型为tuple。示例如下:
t1 = (12, 34, 'Python')
print(t1)
>>> (12, 34, 'Python')
print(type(t1))
>>> <type 'tuple'>
print(t1[2])
>>> Python
注意:可以定义空的元组,如t2=(),元组可以通过索引访问,比如上述代码t1[2]访问第3个元素,即“Python”。当元组定义后就不能进行更改,也不能删除。
5.字典类型
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是针对非序列集合而提供的,字典用"{ }"标识,由键值对(< Key > < Value >)组成,字典是键值对的集合,其类型为dict。键是字典的索引,一个键对应着一个值,通过键值可查找字典中的信息,这个过程叫做映射。
示例如下,通过键值对可以获取“4”对应的“Guiyang”。
dic = {"1":"Beijing","2":"Shanghai","3":"Chengdu","4":"Guiyang"}
print(dic)
>>> {'1': 'Beijing', '3': 'Chengdu', '2': 'Shanghai', '4': 'Guiyang'}
print(dic["4"])
>>> Guiyang
>>> 12345
字典与列表主要区别:
- 列表中的元素是顺序排列的,字典中的数据是无序排列的。
- 它们的映射方式不同,列表通过地址映射到值,字典通过键值对映射到值。
- 列表只能通过数字下标或索引访问,字典可以用各种对象类型作为键访问。
字典键值keys()和values()用法以及items()方法。
可以发现items返回对象是一个列表嵌套的每个映射一个元组。可以遍历取值。
五.字符串操作
字符串的操作非常重要。
字符串支持格式化输出,需要引入操作符百分号(%)实现。
在百分号的左侧放置一个格式化字符串,左边主要是占位,右侧放置期望的格式化值,也可是元组和字典。例如:
print("Hi!My Name is %s,I am %d years old and %f pounds heavy."%("YXZ", 26, 55.5))
Hi!My Name is YXZ,I am 26 years old and 55.500000 pounds heavy.
字符串(%s)、整数(%d)、浮点数(%s)
基础操作
字符串的基本操作包括求长度、拼接、重复操作、索引、切片等等。假设str1字符串为“hello”,str2字符串为“world”,len(str1)计算字符串长度为;str1+str2拼接后的结果为“helloworld”;str1*3字符串重复结果为“hellohellohello”。
字符串切片定义为s[i:j:step],其中step表示切片的方向,默认起点从0开始,终点不写切到最后。
find()函数
- 用法:从字符串中查找子字符串,返回值为子串所在位置的最左端索引。返回值是索引!!!
如果没有找到则返回-1。
扩展的rfind()方法表示从右往左方向查找,常用于正则表达式爬取数据。
- 示例:获取字符串“def”的位置,位于第3个位置(从0开始计数)。
str1 = 'abcdefghijklmn'
num = str1.find('def')
print num
>>> # 3
split()函数(字符串变为列表)
- 用法:字符串分割函数,将字符串分割成序列,返回分割后的字符串序列。
- 注意 split 是将字符串 切分为一个个元素,存在列表中。最终的返回对象是列表
- 如果不提供分割符,程序将会把所有空格作为分隔符。
strip()函数
-
用法:该函数用于去除开头和结尾的空格字符(不包含字符串内部的空格),同时S.strip([chars])可去除指定字符。
-
扩展的函数lstrip()去除字符串开始(最左边)的所有空格,rstrip()去除字符串尾部(最右边)的所有空格。
-
示例:去除字符串前后两端的空格和换行符号。
join()函数(列表变字符串)
-
用法:通过某个字符拼接序列中的字符串元素,队列中元素必须是字符串,返回一个拼接好的字符串函数。
-
将列表中的元素,拼接在一起,返回的是一个字符串。
-
join()函数是split()函数的逆方法。
-
示例:采用空格(’ ')拼接字符串[‘I’,‘am’,‘a’,‘student’],代码及输出结果如下。
num = ['I','am','a','student']
sep = ' '
str1 = sep.join(num)
print str1
>>> I am a student