基础语法
向屏幕输出print()
'hello world')
print(hello world
基础数据类型
整型 int
1111111111235456 1111111111235456 1111111111235456) type(print() <class 'int'> # 在python3中已经删除长整型 |
浮点型 float
1.5 1.5 1.5) type(<class 'float'> 运算(整型、浮点型)示例: 1 + 1 2 3.0 - 1 2.0 # 在python3中,运算之后的结果,首先默认会向参加运算的复杂类型靠拢(整型 - 浮点型 = 浮点型) 5 / 2 2.5 # 在python3中,除法的结果会自动向浮点型靠拢(python2不是,结果会是2) |
复数 complex
2 + 3j (2+3j) 2+3j) type (<class 'complex'> # 复数虚部结尾一般以大J或小j结尾 123-12j aa=print (aa.real) 123.0 print (aa.imag) -12.0 |
布尔型 bool
True True False False True) type (<class 'bool'> # True(非0,非空) False(0) # bool值做计算时,True为1 False为0 True + True 2 False + False 0 True + False 1 # 注意:true不是bool trueTraceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'true' is not defined |
字符串 str
# 单引号 ' abc ' ' abc ' ' abc ') type (<class 'str'> type(str)<class 'type'> # 双引号 "abc" 'abc' # 3个单引号 '''abc''' 'abc' # 3个双引号(可以换行来写) """abc """ 'abc\n' 'Po say: "today is a good weather"' 'Po say: "today is a good weather"' # 斜杠可以避免转义 'Po say: \"today is a good weather\"' 'Po say: "today is a good weather"' # 加r也可以避免转义 ,但是要注意 这里斜杠不能写到字符串的结尾 r"C:\a" 'C:\\a' # 声明变量 'abc' mystr = mystr'abc' |
字符串-索引
# 从左向右访问:索引从0开始 0] mystr['a' 1] mystr['b' 2] mystr['c' 3] mystr[Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range # 访问到字符串的位置 大于了他最大的索引值上限 # 从右向左访问:索引从-1开始 -1] mystr['c' -2] mystr['b' -3] mystr['a' -4] mystr[Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range |
字符串-切片
# 切片操作,是左闭右开的,结束索引的值不会被取到 'abcdefg' mystr = mystr[:]'abcdefg' 1:3] mystr['bc' 1:4] mystr['bcd' -5:] mystr['cdefg' 4] mystr[:'abcd' # 字符串相加,代表拼接 '1234567' mystr1= mystr + mystr1'abcdefg1234567' # 字符串相乘,代表叠加 3 newstr = mystr * newstr'abcdefgabcdefgabcdefg' |
列表 list
1,2,3,4] mylist = [ type(mylist)<type 'list'> # 列表可以存储各种各样的数据 1,2,3,4,'a','b','c',[1,2,3]] mylist = [# 列表支持索引、切片 1] mylist[2 3:6] mylist[[4, 'a', 'b'] -5:-2] mylist[[4, 'a', 'b'] -1][1] mylist[2 # 练习:单独取出以下列表中的a 1,2,3,[1,[2,3,4,[3,2,[4,'a'],2]],3],'b'] mylist = [-2][-2][-1][-2][-1] mylist['a' 3][1][3][2][1] mylist['a' # 列表的值是可变的 0] = 'a' mylist[ mylist['a', 2, 3, [1, [2, 3, 4, [3, 2, [4, 'a'], 2]], 3], 'b'] # 字符串的值是不可变的 mystr'abcdefg' 0] mystr['a' 0] = '1' mystr[Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment # 验证列表内存地址指向的值是可变的,字符和整形是不可变的 1,2,3,4,5] mylist = [ id(mylist)140452016060464 0] = 'a' mylist[ mylist['a', 2, 3, 4, 5] id(mylist)140452016060464 1 a = id(a)9330880 2 a = id(a)9330912 #列表可拼接(+) mylist + mylist['a', 2, 3, 4, 5, 'a', 2, 3, 4, 5] # 列表可叠加(*) 3 mylist * ['a', 2, 3, 4, 5, 'a', 2, 3, 4, 5, 'a', 2, 3, 4, 5] |
元组tuple
1,2,3,4,5,[1,2,3],('a','b')) mytuple = ( type(mytuple)<class 'tuple'> # 支持索引和切片 0] mytuple[1 -1] mytuple[('a', 'b') mytuple[:](1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b')) # 元组是不可修改的 0] ='a' mytuple[Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment # 元组可拼接(+) mytuple + mytuple(1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b'), 1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b')) # 元组可叠加(*) 3 mytuple * (1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b'), 1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b'), 1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b')) # 类型转换 列表->元组 mylist['a', 2, 3, 4, 5] tuple(mylist)('a', 2, 3, 4, 5) tuple(mylist) + mytuple('a', 2, 3, 4, 5, 1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b')) # 删除误用关键字定义的变量 1 tuple = tuple1 tuple()Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'int' object is not callable # del用来删除定义的变量 del tuple tuple()() |
变量
- Python中的变量不需要先定义,可以直接赋值使用(要想使用必须先赋值)
- 命名风格,不能和系统函数和关键字重名,也不要和模块名相同
- 变量名大小写是敏感的,变量名只能是字母、数字、下划线,数字不能打头
可以同给给多个变量赋值
1,2 a,b = a1 b2
变量的引用计数
1 a = b = a id(a)9330880 id(b)9330880 'abc' a = b = a id(a)140160997615408 id(b)140160997615408 # 查看引用计数(除了a,b外,还有22个在用 python解析器在用) import sys sys.getrefcount(a)24 sys.getrefcount(b)24 del b sys.getrefcount(a)23 # 引用计数为0时,这块内存被回收
总结
- 可变/可修改内部值:list
- 不可变/不可修改内部值:number、str、tuple
- 不能做切片索引:number
- 能切片索引:str、list、tuple
- 元组和列表的区别,就是在于能否修改其内部的元素