链式赋值是将同一个对象赋值给多个变量
解包赋值是将多个对象同时赋值给多个变量,只用一个赋值号实现
x=y=123 # 链式赋值
a,b,c=4,5,6 # 解包赋值,变量和对象数量要相同
x,y=y,x # 解包赋值可以一步实现变量交换
python是动态类型语言,不需要显示声明变量的类型,根据变量引用的对象,python 解释器自动确定数据类型。也就是说,在定义变量的时候不声明类型,但在内存当中,却是有类型的。
整型(int),python3中,整型只有一种,即int,可以存储任意长度的整数。
浮点型(float),例如314.15,用指数表示的时候,可以表示成3.14E2(或3.14e2),也可以表示成31.4E1(或31.4e1),小数点可以浮动,因此称为浮点数。 python语言中,浮点类型只有一种,不区分单精度与双精度。
布尔型(bool),只有两种值,即True或False,它们的本质是1和0。
字符串型(string)
可以使用int()、float()、str()实现数据类型转换,
a = int(3.5)
b = int(False)
c = int('2') # 不能写成 int('2.3')否则报错
print(a, b, c)
输出
3 0 2
a = float(7)
b = float('7')
c = float(True)
print(a, b, c)
int()和float()一般能转一步,int(‘2.3’), int(‘True’), float(‘False’)企图转两步,会报错。
a = str(1)
b = str(True)
c = str(1.5)
print(a, b, c)
输出
1 True 1.5
计算机中时间的表示是从“1970 年 1 月 1 日 00:00:00”开始到现在所经过的时间,以秒进行计算,1970 年 1 月 1 日 00:00:00 也称为Unix时间点。
获取时间需要导数 time 模块,调用模块中的 time() 函数。
计算从1970 年 1 月 1 日到现在经过的天数:
import time
time_now = time.time() # 获取当前时间,单位是秒
second = round(time_now) # 四舍五入,返回整数
day = second/(24 * 60 * 60) # 一天有24小时,一小时有60分钟,一分钟有60秒
day = int(day) # 因为Python语言中,整数除法的结果是小数,因此需要类型转换
print(day)
输出
18574
time()还经常用语计算程序的运行时间,如:
time1 = time.time()
a = 0
for i in range(100000):
a += i
time2 = time.time()
time = time2 - time1
print(time)
输出
0.049002647399902344
执行10万次加法,大概用时0.049秒。
and, or,not 分别表示逻辑与、逻辑或、逻辑非
同C语言一样,and,or都有短路的功能,即第一个操作数足以保证结果的时候,无需继续判断第二个操作数。
与C语言不同的是,and,or 返回的未必只有 True 和 False,还有可能是其他的值
x = True and 3 # 当and左边是True时,直接返回右边的值
y = False or 5 # 当or 坐标是False时,直接返回右边的值
print(x, y)
输出
3 5
is / is not,返回 True 或者 False
a is b # 判断 a 与 b 是为同一个对象的引用,即判断 a 与 b所指对象的地址是否相同
c is not d # 判断 a 与 b 所指地址是否不同
is 和 == 的区别:前者判断是否同一个对象,后者判断值是否相同,有时对象不同,但值相同,如 3 和 3.0。