表达式是可以计算的代码片段,由操作数和运算符构成,运算符包括+、-、*、\等。操作数包括文本变量如:‘abc’、变量如:i= 123、类成员变量/函数(如:math.pi)等,也可以包含子表达式(如:2**10指的是2 的10次方)、乘号不能省略,pow(2,3,3)表示2的3次方,第二个3表示3次根号开方,结果为2
python中可以使用圆括号()控制运算的优先顺序
python语句分为简单语句(由一行代码就可以组成的,不是一个函数体)和复合语句(由多行代码块组成的,是一个函数体;由头部语句和构造体语句组成)使用缩进格式划分语句块
例如 :数学表达式1/2 sin[a(x+1)+b] 写成python表达式为:
import math
math.sin(a*(x+1)+b)/2
python中所有数据都是对象,每个对象都属于某个数据类型
对象类型(type)和标识(id)
如type(25) #输出:<class'int'>
id(25) #输出:505911248
对象引用
通过标识符和赋值运算符(=),可以指定某个变量指向某个对象,即引用该对象。多个变量可以引用同一个对象,一个变量也可以改变指向其他的对象,例如
type(123) #输出:<class'int'>
id(123) #输出:505912816
a = 123
id(a) #输出:505912816
b = 123
id(b) #输出505912816
释:123为类int的对象实例,其id为505912816:a = 123,即变量a指向(引用)对象实例123,故其id为505912816:b = 123,即变量b也指向(引用)对象实例123,故其亦为5059128116
对象比较(==)和类型判别(is)
‘==’运算符可以判断两个变量指向的对象的值是否相同;‘is’运算符可以判断两个变量是否指向同一个对象,例如:
a = 'abc'
b = '123'
x = a
y = a
x == y #输出 ‘true’
x is y #输出‘true’
x == b #输出‘false’
x is b #输出‘false’
不可变对象(immutable)和可变对象(mutable)
不可变对象一旦创建,就不能被修改,可变对象的内容可以被修改
复合赋值语句
系列解包赋值
python支持把组合数据类型解包为对应相同个数的变量,例如:
a,b = 1,2
a #输出1
b #输出2
a,b = b,a #a与b进行交换
a #输出2
b #输出1
但变量的个数必须与数值的个数保持一致否则会出错,如:x,y = 1,这时由于变量是俩个,而只有一个数值,所以会出错
python中包含三种特殊的数据类型:None,NotImplemented , Ellipsis
1,None 类型包含唯一值None,主要用于表示空值,如没有返回值的函数结果
如:
None
print(None) #输出None
type(None),id(None) #输出:(<class 'None Type'>,505672132)
2.NotImplemented 类型包含唯一值NotImplemented,数值运算和比较运算时,如果对象不支持,则可能返回该值
NotImplemented #输出NotImplemented
type(NotImplemented), id(NotImplemented) #输出(<class'NotImplemented Type'>,505672340)
3.Ellipsis 类型包含唯一值Ellipsis , 表示省略字符串号:...。例如:
Ellipsis #输出:Ellipsis
type(Ellipsis) , id(Ellipsis) #输出(<class 'Ellipsis Type'>,505677708)
数值数据类型
python包含四种内置的数值类型
1,整数类型(int)如:123,456,-13
2,布尔类型(bool) 如:True 、False
3,浮点类型 (float) 如:3.14,-1.2,1.1e10
4,复数类型(complex) 如:3+4j,1.2+5.6j
序列数据类型
不可变的序列数据类型
1,字符串;2,元组类型;3,字节序列
可变的序列数据类型
1,列表类型;2,字节数组
lambda函数是一种快速定义单行的最小函数,从lisp中借来的,可以用在任何函数中,也称为匿名函数,可以接收任意多个参数,如:
u = lambda x,y:x*y
u(2,3) # 结果为6