Python 学习
1.Python语言的特点
1)python语言代码量短、开发速度快;
2)完全面向对象的语言
3)拥有强大的标准库:包括数字、字符串、列表、字典、文件等类型和函数;此外还有系统管理、文本处理、数据库接口、图形系统、XML处理等。
4)Python提供大量的第三方模块
2.基本语法学习
2.1 符号说明
# python中的注释符号
** 次方符号
+ 数字用加号链接表示运算符,字符串用加号连接表示拼接
‘ ’ 和 “ ” 单引号和双引号内的都是字符或者称文本,但引号必须成对出现
< 、>、<=、>=、!=、== 分别表示小于、大于、小于等于、大于等于、不等、恒等关系
and 、or、not 逻辑运算符,比较运算符的优先级高于逻辑运算符
+、- 、* 、/ 、% 、** 、// 、算数运算符 加减乘除、取余、幂运算、(x)**y 表示x的y次方 、取整
a=a+3 写成 a+=3 ,相类似有-= 、*= 、/= ,// 使用如图 1(a)
**优先级高于-优先级,如题1(b)
所有运算符的优先级如图 (c)
(a) (b) (c)
图 1 区别 " / " 和" // "
\ 转义字符 要慎用
例如我想输出:
1) i'm a girl
2) i like 'a' and 'b'
3) i said "i'm a girl"
4) C:\install
5) C:\install\appp\
6)想输入多行文字 “我爱霸霸”
“我爱麻麻”
“我爱迪迪”
请依次用多种方式实现上述各题。
图 2 (a) (b) (c)
(d) (e) (f)
(g) (h)
(i)
说明:(a)对于第一问中的四种形式,前三种正确输出,第四种报错。说明引号有如下的使用规则。(b)特别说明单引号嵌套一个或多个单引号,最外层单引号内必须全部使用转义字符,否则报错。
1)单引号嵌套一个或多个单引号,最外层单引号内需要全部使用转义字符,少使用转义字符报错;
2)双引号中嵌套一个或多个单引号,最外层双引号内可以全部使用转义字符,也可以完全不使用转义字符,还可以二者参半都能正确输出;
3) 单引号中嵌套双引号不需要使用转义字符
4)单引号双引号交叉嵌套,只要最外层是单引号,单引号内的双引号不转义,单引号需要转义;
只要最外层是双引号,双引号内的单引号、双引号可以转义也可以不转义
5)单双引号不全是交叉使用,双引号内嵌双引号,内嵌双引号要转义
6) 如图(e)要输出元素中含有转义符号的,可以用双引号嵌套字符输出,或者单引号中使用转义字符
7) 如图(f)要在最末尾加上\输出,无论单引号还是双引号嵌套,要么全都转义、要么至少后两个转义
8)如图(i),“”“”“”三对引号且文字输入形式也是换行形式才能达到真正换行,所以三对引号如果换行文字不是特别多的情况下,还不如用\n。
2.2变量和字符串
注意事项:
1)在使用变量前要对其先赋值;如果没有赋值直接调用输出会出错。
2)变量名可以包括字母、数字、下划线,但不能以数字开头。
3)字母大小写不同,python与Python完全不一样。
4)“=”是赋值的意思,等号左边名,右边值
5)命名规范,简明知意
2.3 python的一些数值类型
整数型:
布尔类型:true false,true的值1,false值 0
浮点型:
e记法:5e+2 5e-2
图 3 (a) (b) (c) (d)
(e)
说明:图3中(a)说明True的值1,False值 0,(b)表示不同数值间的类型转换 (c)表示的e记法 (d)用type测试数据的类型
测试数据类型的两个语句
type:具体实例见图2 (d) type(参数1),参数1是待测的单个字符或字符串
isinstance:具体 实例见图(e) isinstance(待测量,数据类型) 返回值是 True 或 False
2.4分支循环语句
条件语句中注意:1)if条件后面和else后面冒号不能少 2)python中 elif相当于else if ,见(b)图 3)python中的if-else配对是通过缩进相同的配对,而不是C语言中的就近配对。
图 4 (a) (b) (c)
(d) (e) (f)
(g)
条件表达式三元符的操作:见(c),a if a<b else b
assert 条件,assert称为断言语句,当后面的条件为假时会发生自爆,程序在结束处会显示AssertionError错误提示,见图(d)。一般用于检测程序的bug,如果在测试段程序出现AssertionError错误,说明之前的代码段没有问题。相当于C语言的断点。
while 条件 : for i in 条件: range(a,b,c) 参数a是起始的数,b是末尾截止的数但是不包括b,
循环体 循环体 c是步长,可写可不写,不写默认是1。常与for语句连用。见图4 (e)(f)
break 跳出循环
cotinue 是中止本轮循环,重新开启下一轮循环;意思是遇到continue不会执行循环体之后的语句会重新开始新一轮循环,具体见(g)
2.4列表
列表的多种形式:1)普通列表 2)混合列表 3)空列表 见 (a) 图
列表的追加形式:1)append:只能向列表追加单个元素 2)extend可以向列表追加多个元素,但元素必须用列表形式括起来
3)insert包含两个参数,一个是待插入的位置,一个是待插入的元素。
图 5 (a) (b) (c)
列表获取元素和列表元素互换:如(d)
(d-1)
删除列表元素:1)remove :删除指定元 2)del 删除某个位置的元素,也可以删除整个列表,但删除整个列表后,列表不存在
3)pop 删除最后一个元素,或者删除指定元素
(d-2)
列表分片:一次性获取多个元素
(e) (f) (g)
说明:empty=[A:B] (e)中测试说明列表分片中冒号左边A的位置是切片的起始位置,包含起始位置元素;但右边B是切片的终止位置,且不包含终止位置元素。
列表中的拼接、连乘 、in 、not in使用:in、not in都是单层作用范围,具体见图(f)(g)。
列表嵌套取元素相当于取二维数组元素:见图(h)
(h)
列表中可调用的函数如图6 (a)-
图 6 (a)
(b) (c)
说明:(a)是可调用的列表函数,(b)中分别表示某元素出现的总次数;某元素在某一起始范围内的第一次出现的位置;列表中元素倒置;列表中元素排序;empty1=empty[ : ]相当于复制一个副本到另外一个新的变量,另一个新的变量开辟了一个新的存储空间,empty2=empty相当于二者共用同一个存储空间。
2.5 元组
列表和元组的区别:
1)列表可以随意插入或删除一个元素,元组元素不可以随意修改见图7(b)。
2)创建元组通常用小括号,创建列表用中括号括起来图7(a)
3)是元组的关键取决于逗号,见图7(c)
图7 (a) (b) (c)
更新或删除一个元组:
(d)
2.6 字符串
字符串的使用方法见图 8
图 8
字符串所有类型举例:具体见Jupyter Notebook。
1)capitalize() 功能将字符串的第一个字符改为大写,但并不改变原字符串值,只是返回修改后的字符串内容
2) casefold() 功能将整个字符串的所有字符全部改为小写
3)其余部分参考Jupter Notebook或https://www.runoob.com/python/att-string-strip.html网址
(a) (b)
说明:出现a图的原因字符串的值不改变。只是返回一个修改后的值。
2.7 序列
序列:一些列有序的元素集合。列表、元组、字符串都属于序列。序列中可能的类型:
列表list[ ]:有序,长度,内容可变;
元组tuple():有序,长度和内容均不可变;
字符串str' ':有序,长度内容均不可变。
列表、元组、字符串的特点:
都可以通过索引得到每一个元素;
默认索引值从0开始;
可以通过分片的方法得到一个范围内的元素 集合;
有很多共同的操作符(*重复操作、+拼接操作、in or not in 成员关系操作符)
列表中的max、min 操作的字符或数字类型必须统一,见图9 (a)
同类型的有sorted()、reversed、zip。zip见图9 (b)
图 9 (a)min max操作数据类型要统一 (b)