Python 入门教程/循环、条件语句
(在我们开始学习与用户交互之前,这是最后一课。迫不及待吧?)
想象一下,你需要一个程序执行某个操作 20 次。你会怎么做?你可以复制粘贴代码 20 次,然后得到一个几乎无法阅读的程序。或者,你可以告诉计算机在 A 点和 B 点之间重复一段代码,直到需要停止的时候。这样的东西叫做循环。
以下是循环类型(称为)的示例whileloop
- 代码示例 1 - Thewhileloop
a = 0
while a < 10:
a = a + 1 #alternatively a += 1
print(a)
这个程序是如何工作的?让我们用英语解释一下(这被称为 伪代码)
- 代码示例 2 - 朴素语言whileloop
'a' now equals 0 As long as 'a' is less than 10, do the following: Make 'a' one larger than what it already is. print on-screen what 'a' is now worth.
它做了什么?让我们看看计算机在中会“想”什么whileloop
- 代码示例 3 -while循环过程
#JUST GLANCE OVER THIS QUICKLY #(It looks fancy, but is really simple.) Is 'a' less than 10? YES (it's 0) Make 'a' one larger (now 1) print on-screen what 'a' is (1) Is 'a' less than 10? YES (it's 1) Make 'a' one larger (now 2) print on-screen what 'a' is (2) Is 'a' less than 10? YES (it's 2) Make 'a' one larger (now 3) print on-screen what 'a' is (3) Is 'a' less than 10? YES (it's 3) Make 'a' one larger (now 4) print on-screen what 'a' is (4) Is 'a' less than 10? YES (it's 4) Make 'a' one larger (now 5) print on-screen what 'a' is (5) Is 'a' less than 10? YES (it's 5) Make 'a' one larger (now 6) print on-screen what 'a' is (6) Is 'a' less than 10? YES (it's 6) Make 'a' one larger (now 7) print on-screen what 'a' is (7) Is 'a' less than 10? YES (are you still here?) Make 'a' one larger (now 8) print on-screen what 'a' is (8) Is 'a' less than 10? YES (it's 8) Make 'a' one larger (now 9) print on-screen what 'a' is (9) Is 'a' less than 10? YES (it's 9) Make 'a' one larger (now 10) print on-screen what 'a' is (10) Is 'a' less than 10? NO (it's 10, therefore isn't less than 10) Don't do the loop There's no code left to do, so the program ends.
简而言之,当你编写时,尝试用这种方式思考while循环。这是编写循环的方式
- 代码示例 4 -while循环形式
while {condition that the loop continues}: {what to do in the loop} {have it indented, usually four spaces} {the code here is not looped} {because it isn't indented}
一个例子
- 代码示例 5 -while循环示例
#EXAMPLE
#Type this in and see what it does.
x = 10
while x != 0:
print(x)
x = x - 1
print("Wow, we've counted x down, and now it equals", x)
print ("And now the loop has ended.")
记住,要编写程序,你需要打开 IDLE,点击“文件 > 新窗口”,在新窗口中输入程序,然后按 F5 运行。
你在标记为 {循环继续的条件} 的区域中输入什么?答案是布尔表达式。
什么?对于非数学人员来说,这是一个被遗忘的概念。别担心,布尔表达式仅仅意味着一个可以用 TRUE 或 FALSE 回答的问题。例如,如果你想说你的年龄与你旁边的人相同,你会输入
我的年龄 == 旁边的人的年龄
这个语句将为 TRUE。如果你比对面的人年轻,你会说
我的年龄 < 对面的人的年龄
这个语句将为 TRUE。然而,如果你说以下内容,而对面的人比你年轻
我的年龄 < 对面的人的年龄
这个语句将为 FALSE - 事实上,情况正好相反。这就是循环的思维方式 - 如果表达式为真,则继续循环。如果表达式为假,则不循环。有了这个,让我们看看布尔表达式中涉及的运算符(表示操作的符号)
表达式 | 函数 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
!= | 不等于 |
<> | 不等于 (备选,!= 更常用) |
== | 等于 |
不要混淆 '=' 和 '==' - '=' 运算符使左边等于右边。'==' 运算符表示左边是否与右边相同,并返回 true 或 false。
好的!我们(希望)已经涵盖了 'while' 循环。现在让我们看一下不同的东西 - 条件语句。
条件语句是指仅在满足特定条件时才执行的一段代码。这类似于你刚刚编写的 'while' 循环,它仅在 x 不等于 0 时运行。然而,条件语句只运行一次。任何编程语言中最常见的条件语句是 'if' 语句。以下是它的工作原理
- 代码示例 6 - if 语句和示例
'''
if {conditions to be met}:
{do this}
{and this}
{and this}
{but this happens regardless}
{because it isn't indented}
'''
#EXAMPLE 1
y = 1
if y == 1:
print ("y still equals 1, I was just checking")
#EXAMPLE 2
print ("We will show the even numbers up to 20")
n = 1
while n <= 20:
n = n + 1
if n % 2 == 0:
print(n)
print("there, done.")
示例 2 看起来很棘手。但我们所做的只是在每次 'while' 循环运行时运行一个 'if' 语句。记住,% 只是除法后的余数 - 只检查如果数字除以 2 没有余数 - 表明它是偶数。如果它是偶数,它将打印 'n' 的值。
有很多方法可以使用 'if' 语句来处理布尔表达式结果为 FALSE 的情况。它们是 'else' 和 'elif'。
'else' 只是告诉计算机如果 'if' 的条件不满足该怎么做。例如,阅读以下内容
- 代码示例 7 - else 语句
a = 1
if a > 5:
print("a is greater than 5")
else:
print("a is less than 5")
'a' 不大于 5,因此执行 'else' 下面的内容。
'elif' 只是 'else if' 的简写。当 'if' 语句不满足时,'elif' 将执行它下面的内容,如果条件满足。例如
- 代码示例 8 - elif 语句
z = 4
if z > 70:
print("Something is very wrong")
elif z < 7:
print("This is normal")
'if' 语句,以及 'else' 和 'elif' 遵循以下形式
- 代码示例 9 - 完整的 if 语法
if {conditions}: {run this code} elif {conditions}: {run this code} elif {conditions}: {run this code} else: {run this code} #You can have as many or as few elif statements as you need #anywhere from zero to the sky. #You can have at most one else statement #and only after all other ifs and elifs.
需要记住最重要的一点是,你必须在每行包含 'if'、'elif'、'else' 或 'while' 的行末添加冒号 (:)。我忘记了这一点,因此导致许多人在这节课上感到困惑(抱歉 ;;))。
另外一点是,要执行的代码(如果条件满足),必须缩进。这意味着,如果你想用 'while' 循环循环接下来的五行,你必须在接下来的五行的开头放置固定数量的空格。这是任何语言中良好的编程实践,但 Python 要求你这样做。以下是一个关于这两个点的示例
- 代码示例 10 - 缩进
a = 10
while a > 0:
print(a)
if a > 5:
print("Big number!")
elif a % 2 != 0:
print("This is an odd number")
print("It isn't greater than five, either")
else:
print("this number isn't greater than 5")
print("nor is it odd")
print("feeling special?")
a = a - 1
print("we just made 'a' one less than what it was!")
print("and unless a is not greater than 0, we'll do the loop again.")
print("well, it seems as if 'a' is now no bigger than 0!")
print("the loop is now over, and without further ado, so is this program!")
请注意那里的三个缩进级别
第一级的每一行都从零个空格开始。它是主程序,始终执行。第二级的每一行都从四个空格开始。当第一级存在 'if' 或循环时,之后第二级的所有内容都会被循环/'if',直到新行再次从第一级开始。第三级的每一行都从八个空格开始。当第二级存在 'if' 或循环时,之后第三级的所有内容都会被循环/'if',直到新行再次从第二级开始。这样无限循环,直到编写程序的人大脑爆炸,无法理解他/她所写的内容。还有一种循环叫做 'for' 循环,但我们将在学习列表之后,在后面的课程中学习它。