if 语句

像往常一样,我认为我应该以一个热身的打字练习开始每一章,所以这里有一个简短的程序,用来计算一个整数的绝对值:

n = int(input("Number? "))
if n < 0:
   print("The absolute value of", n, "is", -n)
else:
   print("The absolute value of", n, "is", n)

这是我运行这个程序两次时的输出:

Number? -34
The absolute value of -34 is 34
Number? 1
The absolute value of 1 is 1

那么,当计算机看到这段代码时,发生了什么呢?首先,它通过语句 n = int(input("Number? ")) 提示用户输入一个数字。接下来,计算机检查 if n < 0: 这一行。如果 n 小于零,Python 会运行 print("The absolute value of", n, "is", -n) 这一行。否则,它会运行 print("The absolute value of", n, "is", n) 这一行。

更正式地说,Python 会检查表达式 n < 0 是否为真。如果为真,if 语句后面会跟着一段缩进的语句块,这些语句会在表达式为真时执行。可选地,在 if 语句后面可以跟一个 else 语句,和另一个缩进的语句块。如果表达式为假,则会执行这个第二个语句块。

常见的条件运算符

表达式可以有多种不同的测试,以下是所有运算符的表格:

运算符 功能
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于
!= 不等于

elif 语句

if 命令的另一个特性是 elif 语句。它表示“else if”,意思是如果原始的 if 语句为假,但 elif 部分为真,那么执行 elif 部分。如果 ifelif 表达式都为假,则执行 else 块中的内容。下面是一个例子:

a = 0
while a < 10:
    a = a + 1
    if a > 5:
        print(a, ">", 5)
    elif a <= 3:
        print(a, "<=", 3)
    else:
        print("Neither test was true")

输出:

1 <= 3
2 <= 3
3 <= 3
Neither test was true
Neither test was true
6 > 5
7 > 5
8 > 5
9 > 5
10 > 5

请注意,elif a <= 3 只在 if 语句失败时才会被测试。可以有多个 elif 表达式,允许在一个 if 语句中执行多个测试。

示例

使用 == 运算符的示范

  1. 使用数字:
print(5 == 6)

输出:

False
  1. 使用变量:
x = 5
y = 8
print(x == y)

输出:

False
False

high_low.py

# 玩猜数字游戏:猜大还是猜小

# 这实际上应该是某种半随机的方式,比如使用时间的最后几位数字等,但这要等到后面的章节才会讲到。 (附加任务:在模块章节后修改它,使其变为随机)
number = 7
guess = -1

print("猜猜这个数字!")
while guess != number:
    guess = int(input("是... ?"))

    if guess == number:
        print("哇!你猜对了!")
    elif guess < number:
        print("它更大...")
    elif guess > number:
        print("它没有那么大。")

示例运行:

猜猜这个数字!
是... ? 2
它更大...
是... ? 5
它更大...
是... ? 10
它没有那么大。
是... ? 7
哇!你猜对了!

even.py

# 提示输入一个数字
# 判断是偶数还是奇数

number = float(input("告诉我一个数字:"))
if number % 2 == 0:
    print(int(number), "是偶数。")
elif number % 2 == 1:
    print(int(number), "是奇数。")
else:
    print(number, "是个很奇怪的数字。")

示例运行:

告诉我一个数字: 3
3 是奇数。
告诉我一个数字: 2
2 是偶数。
告诉我一个数字: 3.4895
3.4895 是个很奇怪的数字。

average1.py

# 不断请求输入数字,直到输入0为止。
# 输出平均值。

count = 0
sum = 0.0
number = 1  # 初始值,确保不会立即退出循环

print("输入0以退出循环")

while number != 0:
    number = float(input("输入一个数字:"))
    if number != 0:
        count = count + 1
        sum = sum + number
    if number == 0:
        print("平均值是:", sum / count)

示例运行:

输入0以退出循环
输入一个数字: 5
输入一个数字: 10
输入一个数字: 0
平均值是: 7.5

average2.py

# 不断请求输入数字,直到输入的数字达到指定数量。
# 输出平均值。

# 注意:我们使用整数来追踪输入了多少个数字,但输入的每个数字使用浮点数类型。
sum = 0.0

print("这个程序将接收多个数字,然后计算它们的平均值")
count = int(input("你想计算多少个数字的平均值:"))
current_count = 0

while current_count < count:
    current_count = current_count + 1
    print("第", current_count, "个数字")
    number = float(input("输入一个数字:"))
    sum = sum + number
    
print("平均值是:", sum / count)

示例运行:

这个程序将接收多个数字,然后计算它们的平均值
你想计算多少个数字的平均值: 2
第 1 个数字
输入一个数字: 3
第 2 个数字
输入一个数字: 5
平均值是: 4.0
 
Last modified: Sunday, 2 February 2025, 8:41 PM