Python零基础入门(三):运算符与条件判断
面试被问10 / 3和10 // 3的结果,我当场翻车。
/是真除法,结果是3.333...;//是整除,结果是3。更坑的是-10 // 3结果是-4而不是-3,因为它向下取整。
先说算术运算符
a = 10b = 3print(a + b) # 13print(a - b) # 7print(a * b) # 30print(a / b) # 3.333...(总是返回float)print(a // b) # 3(向下取整)print(a % b) # 1(取余)print(a ** b) # 1000(幂运算)
踩坑点:/总是返回float,即使能整除。10 / 2结果是5.0,不是5。
比较运算符:Python有个隐藏技能
x = 5y = 10print(x == y) # Falseprint(x != y) # Trueprint(x > y) # Falseprint(x < y) # True
Python特色:链式比较,别的语言真没这个:
age = 25print(18 <= age <= 60) # True,等价于 age >= 18 and age <= 60
赋值运算符:少打字,多干活
x = 10x += 3 # x = x + 3 → 13x -= 2 # x = x - 2 → 11x *= 4 # x = x * 4 → 44
海象运算符(Python 3.8+)才是真正神器:
if (n := len("hello")) > 3: print(f"长度是{n}") # 长度是5
边赋值边判断,减少重复代码。写条件判断时特别好用。
逻辑运算符:短路求值是精髓
a = Trueb = Falseprint(a and b) # Falseprint(a or b) # Trueprint(not a) # False
短路求值的实际用法:
# 如果name为空,使用默认值display_name = name or "匿名用户"
这行代码比if else简洁多了,而且是Python的惯用写法。
成员运算符:检查元素是否在列表中
fruits = ["苹果", "香蕉", "橘子"]print("苹果" in fruits) # Trueprint("葡萄" not in fruits) # True
条件判断:别写太复杂的嵌套
if/elif/else
score = 85if score >= 90: grade = "A"elif score >= 80: grade = "B"elif score >= 60: grade = "C"else: grade = "F"print(f"成绩等级:{grade}") # B
三元表达式:一行搞定两行代码
# 传统写法if score >= 60: result = "及格"else: result = "不及格"# 一行搞定result = "及格" if score >= 60 else "不及格"
假值测试:这些值都算False
Pythonic写法:
items = []if not items: print("列表为空")
下一篇预告:面向对象编程——把数据和操作绑定在一起。