1.数字分类以及定义
-
int
- 定义:
- 方式1: 直接赋值,d = 12
- 方式2: 使用int(obj) 仅可以将纯数字的字符串转换为整型
-
场景1: float-->int a = 3.0 print(int(a)) 场景2:str-->int b = '123' print(int(b))
-
- 定义:
-
float,带小数点的数字
-
float可以和int相加,因为int可以自动转换为浮点数 场景1: print(1+2+3.0) # 6.0 场景2: dict = {1:"Java",2.0:"Python",2:"C"} print(dict[2.0]) # C 场景2: int-->float int_number = 1 print(float(int_number)) # 1.0 场景3:str --> float b = '123' print(float(b))
-
int和float类型的数值可以相加,得到float类型的数值
2.公共方法
-
1.abs(num)
- 计算数字的绝对值,并返回非负整数
-
2.round(num[,指定位数])
- 将一个数字四舍五入为指定的小数位数或整数位数
- 小数点后的数字从1开始计数如:1,2,3,4.....
- 小数点前的数字从0开始计数如:0,-1,-2,-3.....
- ⚠️精确计算会有误差,不推荐使用
- ⚠️浮点数比较不精确,不推荐使用
- 将一个数字四舍五入为指定的小数位数或整数位数
a = 13.23
# 不填写第2个参数,默认为0
print(round(a)) # 13
# 填写第2个参数且为正,则代表指定小数点后几位
print(round(a, 1)) # 13.2
# 填写第2个参数且为负,则代表指定整数位第几位
print(round(a,-1)) # 10.0
# 银行家舍入法即靠近偶数的值
a = 2.5
print(round(a)) # 2,因为2.5靠近2和3,但是2为偶数
b = 1.5
print(round(b)) # 2,因为1.5靠近1和2,但是2为偶数
题目一: 计算平均收入以及总收入最高的人
n_dict = [
{"name": "张三", "7月": 9000, "8月": 7500, "9月": 9200},
{"name": "李四", "7月": 8000, "8月": 8500, "9月": 8200},
{"name": "王五", "7月": 7000, "8月": 9500, "9月": 7300}
]
n_list = []
for e_dict in n_dict:
average = round((e_dict["7月"]+e_dict["8月"]+e_dict["9月"])/3,2)
n_list.append({"name":e_dict["name"], "avg": average})
print(n_list)
print(f"总收入最高的是{max(n_list,key=lambda x:x['avg'])}")
-
3.模块math下的数字处理
-
- x仅可为数字,否则报错TypeError;x<=0,报错ValueError
- math.trunc(x) 返回截断x的整数部分
- math.floor(x) 返回值是x的向下取整
- math.ceil(x)返回值是x的向上取整
-
4. 不同进制转换
- bin() 十进制-> 二进制
- oct() 十进制-> 八进制
- hex() 十进制-> 十六进制
- int(obj [,base]) 其他进制->十进制
- obj是字符串或者数字,如果是小数,直接取整
- base代表obj当前是什么进制,默认是十进制
-
print(int(2.4)) #2 print(int("300")) #300