在 Excel 中,使用公式=IF(B2/C2 > 0.1, "超过目标", "未达到目标")
按条件计算当前单元格的内容,这类型的语法,在 Python 中称作控制语句。
对于=IF(B2/C2 > 0.1, "超过目标", "未达到目标")
,转换成 Python 中的表达就是:
if B2/C2 > 0.1:
result = "超过目标"
else:
result = "未达到目标"
在if
语句中,其中else
语句为可选,还有多条件语句elif
。
Python 是采用缩进的语法模式,我们在编写完成if
语句之后,需要缩进编写此条件下运行的语句内容。当然,一般编辑器已经在我们回车后帮我们缩进完成了,我们无需手动使用Tab
按键缩进。
if x < 0:
print('x 小于 0')
elif x == 0:
print('x 等于 0')
elif x == 1:
print('x 等于 1')
else:
print('More')
可能你已经想到,语句之间是可以无限嵌套的,就像是 Excel 的公式=IF(A2>1000000, "超级卖家", IF(A2>500000, "钻石卖家", "金牌卖家"))
一样。只要逻辑不被斩断,Python 解释器就会一直执行你的语句:
if A2 > 1000000:
rating = "超级卖家"
else:
if A2 > 500000:
rating = "钻石卖家"
else:
rating = "金牌卖家"
当然,条件可以变得更复杂,比如与and
和或or
:
# a 大于 10 并且 b 小于 20,则将变量 result 设为 True,否则为 False
if a > 10 and b < 20:
result = True
else:
result = False
# c 大于 30 或 d 小于 40,则将变量 result 设为 True,否则为 False
if c > 30 or d < 40:
result = True
else:
result = False
if
elif
语句后面跟一个返回“是True
否False
”的表达式,他可以是一个函数调用、一个变量等等。
import pandas as pd
df = pd.DataFrame() # 创建一个空的 DataFrame
if df.empty: # 一个空的 DataFrame
print("DataFrame is empty.")
a = 0
if not a: # a 为 0,则 not a 返回 True
print("print !!")
b = []
if not b: # 列表为空,则 not b 返回 True
print("print !!")
<aside>
🤖 请使用 AI,编写 Prompt,让 AI 给出if
语句后面可以跟那些表达式,并给出例子。
</aside>
c > 30 or d < 40
取反是什么?这里涉及到布尔代数中的德摩根定律: