简介:python是一门完全面向对象的编程语言。
哲学:Python 的设计哲学是优雅、明确、简单。
特性:python是一门强类型,动态类型的语言。
特性
- 强类型,一个数据的类型一旦被确定,如果不经过强制转换,就不会被更改。
print('1' + 2) # ==>TypeError: must be str, not int
print(int('1') + 2) # ==> 3
弱类型:
数值与字符型相加,拼接成字符串;
"1"+2 => '12'
int和float相加,弱类型会隐式转换成float相加,而强类型则不行;
- 动态类型,可以任意修改数据的类型,相比于静态类型,声明了一个变量用于保存字符串,那么这个变量,就只能字符串了,不能在存储其他类型。python中变量无类型,随时可变。python不需要声明数据类型
name = 'a' # 字符串
name = 1 # 数字
name = [] # 列表
name = {} # 字典
变量命名规则
- 由数字,字母,下划线组成;
- 不能以数字开头;
- 不要用python关键字;
- 尽量取一个有意义的名字,“见名知意”
- 区分大小写;
数值类型
数值类型就是我们平常用来做计算的数字类型,在python中有如下几种数值类型:
整型 int: a = 2
浮点型 float: b = 2.5
布尔型 bool:flag = True
复数型 complex:c = 1.5 + 0.5j (在python中用小写 j ,表示虚部,用其他的字母不行)
image.png
数值类型主要是用来是做运算的,所以还会有如下的运算符
数值运行常用运算符:
+ - / //(整除,向下取整) %(取余) ** (幂)
image.png
赋值运算符
= += -= *= /= ....
基本数值类型中前三种是常用的,复数在数学里面用得多,但是一般是用不上的。
序列类型
在python中三种序列类型,序列类型简单来说就是对象里面的元素是有顺序的
字符串 str
列表 list
元组tuple
可变序列:list
不可变序列:str,tuple
1).创建序列
字符串用引号创建
image.png
注:其中三个引号支持换行,其他两个不支持;
列表用中括号 [] 创建
元组用小括号() 或者 直接用逗号隔开各元素
image.png
注:当元组只有一个元素时注意加逗号,否则当做整型处理;
2).序列的通用操作:
索引取值切片;
类型的转换: str() list() tuple ();
相加 + +=;
重复 * *=;
检查成员 in not in;
索引取值切片
索引:正向索引和反向索引
image.png注:索引即利用下标来取对应元素,下标是从0或者-1到序列长度-1,图中错误是因为s最长下标为s[5]或s[-6]
下面以图形来讲解序列的分布
image.png
索引从0 ~ 13或者-1 ~ -14,注意不要越界!!
求序列长度
image.png
切片:
切片的返回结果类型和切片对象类型一致,返回的是切片对象的子序列,如:对一个列表切片返回一个列表;
步长step默认为1。
正向:从左至右,左闭右开;正向时步长step为正,就是每次截取几个取前面第一个
image.png
image.png
逆向:反过来,从右至左,注意左闭右开,步长step为负,就是每次截取几个,取后面那个。
image.png
image.png
总结:对于切片不管是正序还是倒序,只要记住起始为闭,终点为开即可。在step的符号一定的情况下,start和end可以混合使用正向和反向索引,无论怎样,你都要保证start和end之间有和step方向一致元素 间隔,否则会切出空列表;
image.png
如果一边没写哪个索引,则对应是“到底”,同时,step的正负决定了切片结果的元素采集的先后,而step默认为1。
image.png
注意:列表和元组类似处理方式,对于切片操作需要看返回的是什么类型的列表还是元组,如果取其中元素值需要注意操作;
类型的转换: str() list() tuple ()
image.png只有数字型的字符串才能转换为整型int()
image.png image.png
image.png
注意:list()需要迭代器,字符串或者元组和列表,数值型不行!所以list(1,3)会报错!!
元组类似列表处理
image.png
相加 + +=
image.png注:因为是强类型语言,类型不可变,只能做同类型处理;
重复 * *=
image.png检查成员 in not in
image.png课后实践:
- 时间为20171206,通过除法和取余,来得到对应的日,月,年。请用代码完成。
date = 20170608
print('year=',date // 10000)
print('month=',date //100 % 100)
print('day=',date % 100 )
总结:通过//和%取得相应数字对应位数值,一般可通过其余%来计算一个周期,比如数7游戏,一群人围成一圈,数到7的倍数,则出列,游戏继续。
- 对一个长度为5的列表,用多种方法取第3位的值。
li = ['I','learn','python','very','hard']
num1 = li[2]
num2 = li[2:3][0] ##返回还是列表,用索引去里面值
num3 = li[-3]
num4 = li[-3:-4:-1][0] #-1不能省略不写,否则默认为1,索引和step步长方向不一致,起出来的为空列表
num5 = li[2:3:2][0]
num6 = li[2::3][0]
num7 = li[2:-2][0]
num8 = li[1:-4:-1] #倒序则左闭右开,-1不能省略;
num9 = li[-3:1:-1][0]
网友评论