Python的非程序员教程3
Completion requirements
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
部分。如果 if
和 elif
表达式都为假,则执行 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
语句中执行多个测试。
示例
使用 ==
运算符的示范
- 使用数字:
print(5 == 6)
输出:
False
- 使用变量:
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