Python提供了三个内置函数,可以轻松转换数据类型:
int() - 转成整数
# 字符串转整数num = int("123")print(num) # 123# 浮点数转整数(直接砍掉小数部分)num = int(3.99)print(num) # 3# ⚠️ 注意:不能转非数字字符串# int("abc") # 会报错!# print(int("1.33")) # 会报错!
float() - 转成浮点数
# 字符串转浮点数num = float("3.14")print(num) # 3.14# 整数转浮点数num = float(100)print(num) # 100.0# 以下是反例# 有非数字,数字当中有空格会报错# print(float("1. 2"))# print(float("1.2元"))# print(float("1.2.1"))
str() - 转成字符串
# 数字转字符串text = str(123)print(text) # "123"text = str(3.14)print(text) # "3.14"
二、➕ 算数运算符:数学计算好帮手
基本运算符
a = 10b = 3print(a + b) # 13 加法print(a - b) # 7 减法print(a * b) # 30 乘法print(a / b) # 3.3333333333333335 除法(结果总是浮点数,例如9/3为3.0)print(a // b) # 3 整除(只保留整数部分)print(a % b) # 1 取余(求余数)print(a ** b) # 1000 幂运算(10的3次方)
小练习:计算圆的面积
radius = 5pi = 3.1415926area = pi * radius ** 2print(f"圆的面积是: {area}") # 78.539815
三、= 赋值运算符:给变量赋值
基本赋值
复合赋值运算符(超实用!)
a = 10a += 3 # 等价于 a = a + 3 → a = 13a -= 2 # 等价于 a = a - 2 → a = 11a *= 2 # 等价于 a = a * 2 → a = 22a /= 2 # 等价于 a = a / 2 → a = 11.0a //= 2 # 等价于 a = a // 2 → a = 5.0a %= 3 # 等价于 a = a % 3 → a = 2.0a **= 2 # 等价于 a = a ** 2 → a = 4.0
四、<> 比较运算符:比大小
a = 10b = 20# Python中字符串进行比较时,是依次比较每个字符的Unicode编码。print(a == b) # False 等于print(a != b) # True 不等于# <>比较左右两侧数据类型要一致,否则会报错print(a < b) # True 小于print(a > b) # False 大于print(a <= b) # True 小于等于print(a >= b) # False 大于等于#使用ord()查看指定字符的unicode编码print(ord('a'))
💡 小贴士:比较运算的结果是布尔值(True或False)!
布尔类型只有两个值:True(真)和 False(假)
is_student = Trueis_teacher = Falseprint(type(is_student)) # <class 'bool'>
其他类型转布尔值
# Python中除0以外的任何数,转为布尔值后都为Trueprint(bool(0)) # False 数字0print(bool(1)) # True 非0数字# Python中除空字符串以外的任何字符串,转为布尔值都是Trueprint(bool("")) # False 空字符串print(bool("hello")) # True 非空字符串print(bool([])) # False 空列表print(bool([1,2])) # True 非空列表
and(与):都为True才是True
print(True and True) # Trueprint(True and False) # Falseprint(False and True) # Falseprint(False and False) # False# and具备“逻辑短路”能力print(false and 3/0) # 不会报错,因为3/0没执行# and返回的不一定是布尔值,它返回的是某个参与计算的值本身# 规则:and会先看左边,如果左边是“假”,就直接返回左边,否则返回右边# 备注:若参与and运算的值不是布尔值,那Python会自动转为布尔值,然后再进行逻辑操作print(2-2 and False) # 输出0print(True and 8 - 3) # 输出5print(2-1 and 3) # 输出3# 实际应用age = 25has_money = Trueif age >= 18 and has_money: print("可以买手机")
or(或):只要一个为True就是True
print(True or True) # Trueprint(True or False) # Trueprint(False or True) # Trueprint(False or False) # False# or同样具备“逻辑短路”的能力print(True or 3/0) # 不会报错# or返回的也不一定是布尔值,它返回的是参与计算的值本身# 规则:or会先看左边,如果左边为“真”,就直接返回左边,否则返回右边# 备注:若参与or运算的值不是布尔值,那Python会自动转为布尔值,然后再进行逻辑操作# 实际应用is_weekend = Trueis_vacation = Falseif is_weekend or is_vacation: print("可以休息")
not(非):取反
print(not True) # Falseprint(not False) # True# not返回的一定是布尔值# 实际应用is_raining = Falseif not is_raining: print("可以出门")
🎯 实战练习:BMI计算器
print("=== BMI 计算器 ===")# 输入身高(米)height_str = input("请输入你的身高(米): ")height = float(height_str)# 输入体重(公斤)weight_str = input("请输入你的体重(公斤): ")weight = float(weight_str)# 计算BMIbmi = weight / (height ** 2)print(f"你的BMI是: {bmi:.1f}")# 判断健康状况if bmi < 18.5: print("体重过轻,多吃点!")elif 18.5 >= bmi < 24: print("体重正常,继续保持!")elif 24 >= bmi < 28: print("体重偏重,多运动!")else: print("肥胖,注意健康!")