【Python数据类型-数字】无序&不可变

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值