python语句主要有:赋值语句,调用语句,打印语句,if | else、for | else、while | else语句,pass语句,break语句,continue语句,def语句,return语句,yield语句,global语句,nonlocal语句,import语句,from语句,calss语句,try | except | finally语句,raise语句,assert语句,with as语句,del语句。
赋值语句:基本形式,元组赋值运算,列表赋值运算,序列赋值运算,扩展序列,多目标赋值,增强赋值运算
1.类型属于对象,而不是变量
>>> a = 3 #变量名即是变量,但类型却因变量的赋值(对象)的改变而改变
>>> type(a)#整型
<class 'int'>
>>> a = 'string'#字符串
>>> type(a)
<class 'str'>
>>>
2.共享引用和相等
>>> name1 = 'ming'
>>> name2 = name1 #共享‘那么内存’
>>> name1 = 'lily' #name1开辟新的内存
>>> name1#新的内存
'lily'
>>> name2 #原来的
'ming'
>>> name1 is name2
False #判断是否共享引用
>>> l = [1,2,3]#列表在原处修改,可变对象支持在原处修改
>>> m = l#
>>> l.append(4)
>>>
>>> l
[1, 2, 3, 4]
>>> m #m随着l的改变而改变
[1, 2, 3, 4]
>>> l is m
True
3,元组赋值运算(具有位置性)
>>> name1,name2 = 'ming','llily'
>>> name1
'ming'
>>> name2
'llily'
>>>name1,name2 = 'ming'#l两个变量名不能赋值一个,这样把单词拆分为字母,然后一一对应后发现少连个变量名,则会报错
Traceback (most recent call last):
File "<pyshell#45>", line 1, in <module>
name1,name2 = 'ming'
ValueError: too many values to unpack (expected 2)
>>> name1 = 'ming','lily' #但一个变量可以赋值两个,是一个元组的形式
>>> name1
('ming', 'lily')
4,列表运算符(具有位置性,和元组运算符基本相同)
5,扩展序列 *
>>> name1,*name2 = 'ming'
>>> name1 #只匹配第一个字母
'm'
>>> name2 #匹配剩下的字母
['i', 'n', 'g']
6,多目标赋值语句(共享引用)
>>> a=b=c ='ming'
>>> a,b,c
('ming', 'ming', 'ming')
>>> a is b
True
>>> b is c
True
7,增强赋值语句(+=, -=, *=, /=, |=, %=, ^=, <<=, **=, >>=, //=)
x +=2相当于x = x + 2
8,增强赋值和共享引用
>>> l = [1,2]
>>> m = l #m 和了共用一个内存地址
>>> l = l + [3,4] #形成一个新的内存地址,此l非原来的l
>>> l,m #两个内存地址
([1, 2, 3, 4], [1, 2])
>>>
>>> l = [1,2]
>>> m = l
>>> l += [3,4]#此l就是原来的l
>>> l,m #共用一个内存地址
([1, 2, 3, 4], [1, 2, 3, 4])
>>> l is m
True
调用语句:函数调用,方法调用
spam(hello),print(world)这种变量名在括号里面的是函数的调用
spam.hello(world)带点的是指方法的调用
一般来说方法的调用支持原处修改,不会生成一个新的内存地址如.sort() .append() .reverse()
打印操作:标准输出
python2中print不加括号,是语句,python3中加括号,是函数。
print和sys.stdout等效
>>> sys.stdout.write('hello python
')
hello python
13
>>> print('hello world
')
hello world