Python基础学习-第三天
链式赋值 与 系列解包赋值
x=y=123
>>> a,b,c=4,5,6
>>> a,b=1,2
>>> a,b=b,a
>>> print(a,b)
2 1
Python 不支持常量
实际是可以改的。只能逻辑上不做修改。
最基本内置数据类型和运算符
python 中最基本的内置数据类型:
- 整型
整数,2345,10,50 - 浮点型
小数,3.14 或者科学计数法 314e-2 - 布尔型
表示真假,仅包含:True、False - 字符串型
由字符组成的序列。 “abc”,”sxt”,“好好学”,”吾系程序猿”
数字和基本运算符
>>> a=8/2
>>> a
4.0
除数为 0,会产生异常:
>>> 3/0
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
3/0
ZeroDivisionError: division by zero
使用 divmod( ,) 函数同时得到商和余数:
>>> divmod(23,3)
(7, 2)
整数
Python 中,除 10 进制,还有其他三种进制:
- 0b 或 0B,二进制 0 1
- 0o 或 0O,八进制 0 1 2 3 4 5 6 7
- 0x 或 0X,十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f
>>> 12
12
>>> 0b101
5
>>> 0o19
SyntaxError: invalid syntax
>>> 0o10
8
>>> 0xf
15
>>> 0x10
16
使用 int()实现类型转换:
- 浮点数直接舍去小数部分。如:int(9.9)结果是:9
- 布尔值 True 转为 1,False 转为 0。 如:int(True)结果是 1
- 字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错。
>>> int(9.9)
9
>>> int(True)
1
>>> int(456.78)
456
>>> int("2345")
2345
>>> int("234abc")
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
int("234abc")
ValueError: invalid literal for int() with base 10: '234abc'
整数可以有多大?
(1)Python2 中,int 是 32 位,可以存储约±21 亿整数。Long 类型是 64 位,可以存储:-263–263-1 之间的数值。
(2)Python3 中,int 可以存储任意大小的整数,long 被取消。我们甚至可以存储下面的值:
(3)googol = 10**100,Googol 也是 Google 最初的名字
(4)Python3 中可以做超大数的计算,而不会造成“整数溢出”,这也是 Python 特别适合科学运算的特点。
浮点数
(1)浮点数,称为 float。
(2)浮点数用axb^10 形式的科学计数法表示。比如:3.14,表示成:314E-2 或者 314e-2。
(3)这些数字在内存中也是按照科学计数法存储。
类型转换和四舍五入
- 类似于 int(),我们也可以使用 float()将其他类型转化成浮点数。
- 整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0 的结果是 10.0
- round(value)可以 四舍五入
注:但不会改变原有值,而是产生新的值
增强型赋值运算符
注意:“+=” 中间不能加空格!
时间的表示
计算机中时间的表示是从“1970 年 1 月 1 日 00:00:00”开始,以毫秒(1/1000 秒)
进行计算。我们也把 1970 年这个时刻成为“unix 时间点”。
Python 中可以通过 time.time() 获得当前时刻,返回的值是以秒为单位,带微秒
(1/1000 毫秒)精度的浮点值。例如:1530167364.8566。
>>> import time
>>> b = int(time.time())
>>> b
1628959552
>>> totalMinutes = b/60
>>> totalMinutes
27149325.866666667
>>> totalHours = totalMinutes//60 #分钟
>>> totalHours
452488.0
>>> totalDays = totalHours//24 #日
>>> totalDays
18853.0
>>> totalYears = totalDays//365 #年
>>> totalYears
51.0
比较运算符 整数缓存问题
(1)Python 仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,而并非是所有整数对
象。需要注意的是,这仅仅是在命令行中执行
(2)而在 Pycharm 或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是[-5,任意正整数])。
(3)is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。
== 用于判断引用变量引用对象的值是否相等,默认调用对象的 eq()方法。
【操作】同一运算符测试
>>> a = 1000
>>> b = 1000
>>> a == b
True
>>> a is b #在文件里是True
False
>>> id(a)
46764560
>>> id(b)
46765216
>>> c = 10
>>> d = 10
>>> c is d
True
>>> id(c)
1388831648
>>> id(d)
1388831648