if语句
if语句用以检查条件:如果条件为真(True),将运行一块语句(称作 if-block 或 if 块),否则将运行另一块语句(称作 else-block 或 else 块)。其中else 从句是可选的。
案例 if.py
number = 23
guess = int(input('Enter an integer : '))
if guess == number: # 新块从这里开始
print('Congratulations, you guessed it.')
print('(but you do not win any prizes!)') # 新块在这里结束
elif guess < number: # 另一代码块
print('No, it is a little higher than that')
# 你可以在此做任何你希望在该代码块内进行的事情
else:
print('No, it is a little lower than that') # 你必须通过猜测一个大于(>)设置数的数字来到达这里。
print('Done')
# 这最后一句语句将在if语句执行完毕后执行
输出:
$ python if.py
Enter an integer : 50
No, it is a little lower than that
Done
$ python if.py
Enter an integer : 22
No, it is a little higher than that
Done
$ python if.py
Enter an integer : 23
Congratulations, you guessed it.
(but you do not win any prizes!)
Done
if.py是如何工作的:
在这个程序中,我们根据用户猜测的数字来检查这一数字是否是我们设置的。我们将变量number设为任何我们所希望的整数,例如23。然后,通过input()函数来获取用户的猜测数。
我们为内置的input()函数提供一串打印到屏幕上的字符串并等待用户的输入。一旦输入了某些内容并按下键盘上的Enter键, input()函数将以字符串的形式返回我们所输入的内容。然后通过int这个类(class)将这个字符串转换成一个整数并将其储存在变量guess中。
接下来,将用户提供的猜测数与我们所选择的数字进行对比。如果相等,就打印一条成功信息。在这里要注意到我们使用缩进级别来告诉Python哪些语句分别属于哪个块。这便是为什么在 Python 中缩进如此重要。
另外需要注意的是if语句在结尾处包含一个冒号——借此向 Python 指定接下来会有一块语句在后头。
然后,检查猜测数是否小于我们选择的数字,如果是,将告诉用户必须猜一个更高一些的数字。在这里我们使用的是elif语句,它们实际上将两个相连的if else-if else 语句合并成一句 if-elif-else语句。这能够使程序更加简便,并且可以减少所需要的缩进量。
elif和else同样都必须有一个冒号在其逻辑行的末尾,后面跟着相应的语句块。
可以在 if 块的 一个 if语句中设置另一个 if语句,并可以如此进行下去——这被称为嵌套的if语句。
elif和else部分都是可选的。一个最小规模且有效的if语句是这样的:
if True:
print('Yes, it is true')
当 Python 完整执行了 if语句及与其相关的 elif和 else子句后,它将会移动至包含 if语句的代码块的下一句语句中。在本例中,也就是主代码块(程序开始执行的地方),其下一句语句就是 print('Done')语句。在完成这些工作后,Python 会发现已行至程序末尾并宣告工作的完成。
while 语句
while语句能够在条件为真的前提下重复执行某块语句。while语句是循环 (Looping) 语句的一种。while语句同样可以拥有else子句作为可选选项。
案例 while.py
number = 23
running = True
while running:
guess = int(input('Enter an integer : '))
if guess == number:
print('Congratulations, you guessed it.') # 这将导致 while 循环中止
running = False
elif guess < number:
print('No, it is a little higher than that.')
else:
print('No, it is a little lower than that.')
else:
print('The while loop is over.') # 在这里你可以做你想做的任何事
print('Done')
输出:
$ python while.py
Enter an integer : 50
No, it is a little lower than that.
Enter an integer : 22
No, it is a little higher than that.
Enter an integer : 23
Congratulations, you guessed it.
The while loop is over.
Done
while.py是如何工作的:
在这一程序中,依旧通过猜数游戏来演示,不过新程序的优点在于能够允许用户持续猜测直至他猜中为止——而无需像在上一节中所做的那样,每次猜测都要重新运行程序。这种变化恰到好处地演示了while语句的作用。
首先将 input与 if语句移到 while循环之中,并在 while 循环开始前将变量running 设置为 True。程序开始时,首先检查变量 running是否为True ,之后再执行相应的 while 块。在这一代码块被执行之后,将会重新对条件进行检查,在本例中也就是 running变量。如果它依旧为True ,将再次执行 while 块,否则将继续执行可选的 else 块,然后进入到下一个语句中。
else代码块在 while循环的条件变为 false时开始执行——这个开始的时机甚至可能是在第一次检查条件的时候。如果 while循环中存在一个else 代码块,它将总是被执行, 除非通过 break语句来中断这一循环。
for循环
for语句是另一种循环语句,特点是会在一系列对象上进行迭代(Iterates),即它会遍历序列中的每一个项目。
案例 for.py
for i in range(1, 5):
print(i)
else:
print('The for loop is over')
输出:
$ python for.py
1
2
3
4
The for loop is over
for.py是如何工作的:
在这一程序中,打印了一序列的数字。我们通过内置的range函数生成这一数字序列。
在这里我们所要做的事情是提供两个数字,而 range将会返回一序列的数字,从第一个数字开始,至第二个数字结束。举个例子,range(1,5) 将输出序列 [1,2,3,4]。在默认情况下, range将会以 1 逐步递增。如果我们向 range提供第三个数字,则这个数字将成为逐步递增的加数。同样举个例子来说明, range(1,5,2)将会输出 [1,3]。要记住这一序列扩展直到第二个数字,也就是说,它不会包括第二个数字在内。
然后 for循环就会在这一范围内展开递归——for i in range(1,5) 等价于 for i in [1,2,3,4],这个操作依次将队列里的每个数字(或是对象)分配给i ,一次一个,然后以每个 i的值执行语句块。在本例中,这一语句块所做的就是打印出这些值。
else部分是可选的。当循环中包含else时,它总会在for循环结束后开始执行,除非程序遇到了 break 语句。
break语句
break语句用以中断(Break)循环语句,也就是中止循环语句的执行,即使循环条件没有变更为False ,或队列中的项目尚未完全迭代依旧如此。
有一点需要尤其注意,如果中断了一个for 或 while循环,任何相应循环中的else块都将不会被执行。
案例 break.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
print('Length of the string is', len(s))
print('Done')
输出:
$ python break.py
Enter something : Programming is fun
Length of the string is 18
Enter something : When the work is done
Length of the string is 21
Enter something : if you wanna make your work also fun:
Length of the string is 37
Enter something : use Python!
Length of the string is 11
Enter something : quit
Done
break.py是如何工作的:
在本程序中,重复地接受用户的输入内容并打印出每一次输入内容的长度。通过检查用户输入的是否是quit 这一特殊条件来判断是否应该终止程序。我们通过中断循环并转进至程序末尾来结束这一程序。
输入字符串的长度可以通过内置的len函数来找到。
break语句同样可以适用于for 循环。
continue语句
案例 continue.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
if len(s) < 3:
print('Too small')
continue
print('Input is of sufficient length') # 自此处起继续进行其它任何处理
输出:
$ python continue.py
Enter something : a
Too small
Enter something : 12
Too small
Enter something : abc
Input is of sufficient length
Enter something : quit
continue.py 是如何工作的:
在本程序中,接受来自用户的输入内容,但是只有在输入的字符串其长至少 3 字符我们才会对其进行处理。为此,我们使用内置的 len函数来获取字符串的长度,如果其长度小于3,我们便通过使用 continue语句跳过代码块中的其余语句。否则,循环中的剩余语句将被执行,并在此处进行我们所希望的任何类型的处理。
continue语句同样能用于 for循环。