数据类型
1.python是一门编程语言,一门完全面向对象的编程语言
2.如果对语言进行分类,那么python是一门强类型,动态类型的语言 (弱型:比如int可以变成float,python中数值类型不可变;动态类型:编译时不知道变量类型,python中变量无类型)
3.解释型语言
数据类型大体分为五类:整数、浮点数、字符串、布尔值、空值
#整型int
#浮点型float
#布尔型bool
#复数型complex (在python中用小写 j ,表示虚部,用其他的字母不行)
>>> ints=2 >>> strs=3.0 >>> floats=hello word Traceback (most recent call last): #变量为字符时用双单引号引起 File "<pyshell#74>", line 1, in <module> floats=ll NameError: name 'll' is not defined >>> floats='hello word' >>> print(ints,strs,floats) #在打印多个变量可用,隔开 2 3.0 hello word
数据强制转换
类型(变量)
a = 1 b = 2.0 c = 'hello,world' print (a,b,c) #a是整数,b是浮点数,c是字符串 float(a) print(a) >>> float(a) #转换到浮点数 1.0 >>> int(b) #转换到整数 2 >>> print(b) #转换完的值不会保存 2.0
简单应用数据转换加深理解
>>> age=22 >>> happy="You are now "+age+'age' # 变量age为整形,py不知道是要加还是减数据 列如:2-1 Traceback (most recent call last): File "<pyshell#84>", line 1, in <module> happy="You are now "+age+'age' TypeError: can only concatenate str (not "int") to str >>> happy="You are now "+int(age)+'age' #这里因为是整形在转换也没有用 Traceback (most recent call last): File "<pyshell#85>", line 1, in <module> happy="You are now "+int(age)+'age' TypeError: can only concatenate str (not "int") to str >>> happy="You are now "+str(age)+'age' #使用str转换为字符串 >>> print(happy) You are now 22age
python中注释使用#。备注释的内容将不被输出
>>> a="love" #zzk >>> print(a) love
python的列表和简单使用
在python中列表用[ ]表示,每一个逗号分隔一个项,第一个项的索引为0依次叠加
>>> a=[first,'a'] #字符串应双引或单引 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> a=[first,'a'] NameError: name 'first' is not defined >>> a=['first',"two"] >>> print(a[0],a[1],a[2]) #不存在的列表项将报错 Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> print(a[0],a[1],a[2]) IndexError: a index out of range >>> print(a[0],a[1]) #访问列表某一项方法 列表[索引值] first two
访问列表某一项方法 列表[索引值]
添加 修改 删除某一元素
添加:
方法append(字符串)默认添加在最后
方法insert(索引,字符串)可在任意位置添加
修改:
修改某一项应是 列表[索引]=修改后的值
删除:
-
方法del空格列表[索引值]
-
方法del没有返回值
-
方法列表.pop[索引值]
-
方法pop有返回值
-
在不知道索引只知道值的情况可使用remove(字符串)
>>> a.append('3') #方法append(字符串)默认添加在最后 >>> print(a) ['one', 'two', '3'] >>> a.insert(0,'this') #方法insert(索引,字符串)可在任意位置添加 >>> print(a) ['this', 'one', 'two', '3'] >>> a=['first',"two"] >>> print(a) ['first', 'two'] >>> a[0]='one' #修改某一项 >>> print(a) ['one', 'two'] >>> del a[2] #方法del 列表[索引值] >>> print(a) ['this', 'one', '3'] >>> a=del a[1] SyntaxError: invalid syntax #方法del没有返回值 >>> a=a.pop(1) #方法列表.pop[索引值] >>> print(a,a) one ['this', '3'] >>> a.remove('3') #在不知道索引只知道值的情况可使用remove(字符串) >>> print(a) ['this']
排序组织列表
排序指重字母a开始,以下是两种重a开始排序方法的比较
使用 列表.sort()
使用sorted(列表)
>>> a.sort() >>> a ['audi', 'bmw', 'toyota', 'volovo'] >>> a=['bmw', 'volovo', 'audi', 'toyota'] >>> new=a.sort() #尝试将排序完的列表赋值给new >>> a ['audi', 'bmw', 'toyota', 'volovo'] >>> new >>> print(new) None #赋值的new的值为空,说明sort不能保存 >>> a=['bmw', 'volovo', 'audi', 'toyota'] >>> new=sorted(a) #使用sorted方法是可以保存变化数据的 >>> new ['audi', 'bmw', 'toyota', 'volovo'] >>> a #使用sorted方法是不会导致a本身变化 ['bmw', 'volovo', 'audi', 'toyota']
reverse(列表) 倒着打印列表的值并保存
使用len函数可确定列表或者数据长度
len可数字符串或者列表中的元素
>>> a=["bmw","volovo","audi","toyota"] >>> a.reverse() >>> a ['toyota', 'audi', 'volovo', 'bmw'] >>> len(a) 4 >>> len('first') 5
for/in打印列表每一值
执行流程:b依次表示a中的一个元素,遍历完所有元素循环结束
>>> a=['zzk',"'s",'QQ',":2577344813"] >>> print(a) ['zzk', "'s", 'QQ', ':2577344813'] >>> for b in a; #for/in结束应用“冒号:”而不是分号";” SyntaxError: invalid syntax >>> for b in a: print(b) zzk 's QQ :2577344813 >>> a ['zzk', "'s", 'QQ', ':2577344813']. s = 'I love you more than i can say' #同样的for/in结构也可以操作字符串 >>> for i in s: print(i) I l o v e y o u m o r e t h a n i c a n s a y
for/in可以结合enumerate也把列表索引打印
>>> l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟'] >>> for i, v in enumerate(l): print(i, v) 0 鹅鹅鹅 1 曲项向天歌 2 锄禾日当午 3 春种一粒粟
使用函数range()可以生成数值
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
以下示例展示了for/in配合range,和使用range生成数字列表
>>> for i in range(1,6): #for/in配合range print(i) 1 2 3 4 5 >>> for i in range(0,10,2): #for/in 和步长使用 print(i) 0 2 4 6 8 >>> even_numbers = list(range(2,11,2)) #range生成列表 >>> even_numbers [2, 4, 6, 8, 10] >>> for a in range(0,11,2): #range配合数据运算实现列表值乘方 b=a**2 print(b) 0 4 16 36 64 100
在列表的数据中可以使用min max sum
打印出列表最小值,最大值,总和
>>> c=list(range(0,10,2)) >>> c [0, 2, 4, 6, 8] >>> min(c) 0 >>> max(c) 8 >>> sum(c) 20
切片方法及列表切片
>>> z='love' >>> print(z[0:3]) lov >>> a=['3','two','one'] >>> print(a[0:1]) ['3']
复制列表
复制列表我们使用 变量[:] 如果直接使用变量= 这样将会导致值随值而变化
下列代码a和like使用同一个内存,即变量a=变量like,而变量b=初传给变量like的值
>>> like=['You',' are',' my ','favorite ','girl'] >>> a=like >>> b=like[:] >>> a ['You', ' are', ' my ', 'favorite ', 'girl'] >>> b ['You', ' are', ' my ', 'favorite ', 'girl'] >>> like.append('lzt') >>> like ['You', ' are', ' my ', 'favorite ', 'girl', 'lt'] >>> a ['You', ' are', ' my ', 'favorite ', 'girl', 'lt'] >>> b ['You', ' are', ' my ', 'favorite ', 'girl']
可以使用id()这个函数判断内存
>>> id(a) 47204168 >>> id(like) 47204168 >>> id(b) 47204680