基础语法:
print( 打印)
向屏幕输出
数:
基础数据类型:
int 整形
>>> 11231231231231231231
11231231231231231231
>>> type(101293019203)
<class 'int'>
python3:
删除了长整型
python2:
如果你的数字特别长,他会在后面给你标识一个L字母,代表长整型 大于322
float 浮点型由小数部分和整数部分组成的数
浮点型和整形复杂类型是浮点型
在python3和python2中,进行的运算之后的结果,首先默认会向参加运算的复杂类型靠拢
在python3中,除法的结果会自动向浮点数靠拢
复数complex:2+3j 复数虚部结尾一般以大J 或小j来结尾
布尔 bool: True(非0,非空,not none) False (0)
布尔值做计算的时候是 True 为1 False 为0
>>> True + True
2
>>> False + False
0
0-9
a-z A-Z ,。、.*/-!@#¥%……&*()
字符串str:
' abc ' 单引号
"abc" 双引号
''' abc ''' 三个单引号
""" abc """ 三个双引号 可以换行来写
>>> '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'C:\' #加r也可以避免转义,但是要注意这里斜杠不能写到字符串的结尾
File "<stdin>", line 1
r'C:\'
^
SyntaxError: EOL while scanning string literal
这个斜杠不能单纯的当作字符串结尾
>>> r"C:\a"
'C:\\a'
打印斜杠
>>> "C:\\"
'C:\\'
>>> mystr = 'abc'
>>>
>>> mystr
'abc'
>>> type(mystr)
<class 'str'>
索引:
>>> mystr
'abc'
>>> type(mystr)
<class 'str'>
从左向右访问:索引从0开始
>>> mystr[0]
'a'
>>> mystr[1]
'b'
>>> mystr[2]
'c'
>>> mystr[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range 访问到字符串的位置大于了他最大的索引值上限
从右向左访问:索引从-1开始
>>> mystr[-1]
'c'
>>> mystr[-2]
'b'
>>> mystr[-3]
'a'
>>> mystr[-4]
切片:是左闭右开的你的结束索引的值不会被取到
>>> mystr = 'abcdefg'
>>> mystr[: ]
'abcdefg'
>>> mystr[1:3]
'bc'
>>> mystr[1:4]
'bcd'
可否修改:是不可以其内部的值
>>> mystr[0] = '1'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
使用加号:可以起到拼接的作用
>>> mystr
'abcdefg'
>>> mystr1 = '1234567'
>>> mystr + mystr1
'abcdefg1234567' #这一步会返回一个新的字符串
使用乘法:
>>> mystr * 3
'abcdefgabcdefgabcdefg'
>>> newstr1 = mystr * 3
>>> newstr1
'abcdefgabcdefgabcdefg'
减发和除法没有实际意义是不行的
列表list:
mylist = [1,2,3,4,'a','b','c',[1,2,3]]
列表可以存储各种各样的数据
索引:
>>> mylist[0]
1
>>> mylist[-1]
[1, 2, 3]
切片:
>>> mylist[1:3]
[2, 3]
>>> mylist[:]
[1, 2, 3, 4, 'a', 'b', 'c', [1, 2, 3]]
>>> mylist[-5:-2]
[4, 'a', 'b']
>>> mylist = [1,2,3,4,'a','b','c',[1,2,3]]
>>> mylist[-1][1]
2
复杂取值
>>> mylist = [1,2,3,[1,[2,3,4,[3,2,[4,'a'],2]],3],'b']
>>> mylist[-2][-2][-1][-2][-1]
'a'
>>> mylist[0] = 'a'
>>> mylist
['a', 2, 3, 4, 5]
id(obj) 查看obj在内存中的地址
>>> mylist = [1,2,3,4,5]
>>> id(mylist)
140061415850888
>>> mylist[0] = 'a'
>>> mylist
['a', 2, 3, 4, 5]
>>> id(mylist)
140061415850888
函数
说明我们的列表,如果你对他进行了修改,只是在原基础上做的修改,所以列表是一个可变对象
这个例子说明,整形也是一个不可变对象
>>> a = 1
>>> id(a)
10894080
>>> a = 2
>>> id(a)
10894112
这个例子说明,字符串也是一个不可变对象
>>> a = 'a'
>>> id(a)
140061452462992
>>> a = 'b'
>>> id(a)
140061452727608
元组'tuple':
索引和切片:
>>> mytuple = (1,2,3,4,5,[1,2,3],('a','b'))
>>> type(mytuple)
<class 'tuple'>
>>> mytuple[0]
1
>>> mytuple[-1]
('a', 'b')
>>> mytuple[:]
(1, 2, 3, 4, 5, [1, 2, 3], ('a', 'b'))
可修改性:元组也是不可修改其内部元素的
>>> mytuple[0]
1
>>> mytuple[0] = 'a'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
计算机不会做选择
所以不同类型相加要注意
修改了本身
返回了一个新值
>>> tuple(mylist)
('a', 2, 3, 4, 5) # 是返回了一个新值
切记变量名赋值的时候不要和关键字和系统内置函数重名
>>> tuple = 1
>>> tuple
1
>>> tuple()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>> del tuple
>>> tuple()
()
del用来删除变量(删除引用计数)
>>> del = 1
File "<stdin>", line 1
del = 1
^
SyntaxError: invalid syntax
数Number,字符串str ,列表 list ,元组 tuple
可变:list
不可变:Number str tuple
可修改内部值:list
不可修改内部值:Number str tuple
能切片索引:str list tuple
不能切片索引:Number
num = 1.5
mystr = ‘abc’
mylist = [1,2,3]
mytuple = (1,2,3)
- 有顺序 0 , 1 , 2 这是为什么可以索引
- 一列 这是为什么可以切片
str list tuple 序列
元祖和列表的区别,就是在于能否修改其内部的元素
#无序的数据类型能叫序列吗
变量:
- 不需要先定义,可以直接赋值使用,要想使用,必须先赋值一次
- 命名风格,不能和系统函数或者一些关键字重名,到后面你们写的脚本名字,不要和模块名相同
- 同时给多个变量赋值
>>> a ,b = 1,2
>>> a
1
>>> b
2
- 注意变量名大小写是敏感的。变量名只能是字母,数字,下划线,并且数字不能打头
>>> a = 1
>>> A = 2
>>> a
1
>>> A
2
- 变量的引用计数
>>> a = 1
>>> b = a
>>> id(a)
10911712
>>> id(b)
10911712
>>>
import sys #导入sys模块
sys.getrefcount(a) #查看a的计数
当我们使用 del语句时候,会发现引用计数在减少,到最后,引用计数为0 的时候,这块内存被回收
del语句只删除指定的
比如 del a那么就删一次引用计数
#比较复杂的数据这里解释器有可能没有在用,你在定义的时候,引用计数是重新维护的
浙公网安备 33010602011771号