Python入门四控制流程

控制流

在我们迄今为止看过的程序中,一直有一系列由Python以自​​上而下的顺序忠实执行的语句。如果你想改变它的工作流程怎么办?例如,您希望程序根据不同的情况做出一些决定并做不同的事情,例如根据一天中的时间打印“早上好”或“晚上好”?

您可能已经猜到,这是使用控制流语句实现的。在Python三种控制流语句- ifforwhile

if声明

if语句用于检查条件:如果条件为真,则运行一个语句块(称为if-block),否则我们处理另一个语句块(称为else-block)。在其他子句是可选的。

示例(另存为if.py):

控制流

在我们迄今为止看过的程序中,一直有一系列由Python以自​​上而下的顺序忠实执行的语句。如果你想改变它的工作流程怎么办?例如,您希望程序根据不同的情况做出一些决定并做不同的事情,例如根据一天中的时间打印“早上好”或“晚上好”?

您可能已经猜到,这是使用控制流语句实现的。在Python三种控制流语句- ifforwhile

if声明

if语句用于检查条件:如果条件为真,则运行一个语句块(称为if-block),否则我们处理另一个语句块(称为else-block)。在其他子句是可选的。

示例(另存为if.py):

number = 23
guess = int(input('Enter an integer : '))

if guess == number:
    # New block starts here
    print('Congratulations, you guessed it.')
    print('(but you do not win any prizes!)')
    # New block ends here
elif guess < number:
    # Another block
    print('No, it is a little higher than that')
    # You can do whatever you want in a block ...
else:
    print('No, it is a little lower than that')
    # you must have guessed > number to reach here

print('Done')
# This last statement is always executed,
# after the if statement is executed.

输出:

$ 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

这个怎么运作

在这个程序中,我们从用户那里猜测并检查它是否是我们拥有的数字。我们将变量设置为number我们想要的任何整数23。然后,我们使用该input()功能进行用户的猜测。功能只是可重复使用的程序。我们将在下一章中详细介绍它们。

我们为内置input函数提供一个字符串,将其打印到屏幕上并等待用户输入。输入内容并按kbd:[enter]键后,该input()函数将返回我们输入的内容,作为字符串。然后,我们将此字符串转换为整数int,然后将其存储在变量中guess。实际上,这int是一个类,但您现在需要知道的是,您可以使用它将字符串转换为整数(假设字符串在文本中包含有效的整数)。

接下来,我们将用户的猜测与我们选择的数字进行比较。如果它们相等,我们会打印成功消息。请注意,我们使用缩进级别来告诉Python哪些语句属于哪个块。这就是缩进在Python中如此重要的原因。我希望你坚持“一致的缩进”规则。你是?

注意if语句最后是如何包含冒号的 - 我们向Python指出后面是一个语句块。

然后,我们检查猜测是否小于数字,如果是,我们通知用户他们必须猜测比这更高一点。我们在这里使用的是elif实际将两个相关if else-if else语句组合成一个组合if-elif-else语句的子句。这使程序更容易,减少了所需的缩进量。

elifelse语句也必须有(当然与适当的缩进,)在逻辑行随后的语句其对应的块的端部的结肠

您可以在if语句的if块中包含另一个if语句,依此类推 - 这称为嵌套if语句。

请记住,elifelse部分是可选的。最小的有效if声明是:

if True:
    print('Yes, it is true')

在Python完成执行完整if语句以及关联的elifelse子句之后,它将继续执行包含该if语句的块中的下一个语句。在这种情况下,它是主块(程序的执行开始),下一个语句是print('Done')语句。在此之后,Python会看到程序的结尾并完成。

即使这是一个非常简单的程序,我也指出了很多你应该注意到的事情。所有这些都非常简单(对于那些来自C / C ++背景的人来说非常简单)。你最初需要了解所有这些事情,但经过一些练习后你会对它们感到满意,而且对你来说都会感觉“自然”。

C / C ++程序员注意事项

switchPython中没有声明。您可以使用if..elif..else语句执行相同的操作(在某些情况下,使用字典快速执行)

while声明

while只要条件为真,该语句允许您重复执行语句块。一个while说法是所谓的一个例子循环语句。一个while语句可以有一个可选的else条款。

示例(另存为while.py):

number = 23
running = True

while running:
    guess = int(input('Enter an integer : '))

    if guess == number:
        print('Congratulations, you guessed it.')
        # this causes the while loop to stop
        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.')
    # Do anything else you want to do here

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陈述的使用。

我们移动inputif语句内部while循环和变量设置runningTruewhile循环之前。首先,我们检查变量running是否True然后继续执行相应的while-block。在执行该块之后,再次检查条件,在这种情况下是running变量。如果是,我们再次执行while-block,否则我们继续执行可选的else-block,然后继续执行下一个语句。

elsewhile循环条件变为时执行该块False- 这甚至可能是第一次检查条件。如果有else一个while循环的子句,它总是被执行,除非你用一个break语句中断循环。

TrueFalse被称为布尔类型,你可以认为他们是等同于价值10分别。

C / C ++程序员注意事项

请记住,您可以elsewhile循环创建一个子句。

for

for..in语句是另一个循环语句,它迭代一系列对象,即遍历序列中的每个元素。我们将在后面的章节中详细介绍序列。你现在需要知道的是序列只是一个有序的元素集合。

示例(另存为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

这个怎么运作

在这个程序中,我们正在打印一系列数字。我们使用内置range函数生成这个数字序列。

我们在这里做的是提供两个数字并range返回从第一个数字开始到第二个数字的一​​系列数字。例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range步数为1.如果我们提供第三个数字range,那么这将成为步数。例如,range(1,5,2)给出[1,3]。请记住,范围扩展第二个数,即它包含第二个数。

需要注意的是range()在同一时间产生只有一个号码,如果你要号码的完整列表,请拨打list()range(),例如,list(range(5))将导致[0, 1, 2, 3, 4]。列表在数据结构章节中进行了解释。

for循环在这个范围内进行迭代- for i in range(1,5)相当于for i in [1, 2, 3, 4]其是像在时间分配所述序列中的每个数(或对象)至i,一个,然后执行语句的块对的每个值i。在这种情况下,我们只打印语句块中的值。

请记住,该else部分是可选的。包含时,for除非遇到break语句,否则它总是在循环结束后执行一次。

请记住,for..in循环适用于任何序列。这里,我们有一个由内置range函数生成的数字列表,但一般来说我们可以使用任何类型的对象的任何类型的序列!我们将在后面的章节中详细探讨这个想法。

或如果这个变量是一个数组时我们也可以这样写

C / C ++ / Java / C#程序员注意事项

Python for循环与C / C ++ for循环完全不同。C#程序员会注意到forPython 中的循环类似于foreachC#中的循环。Java程序员会注意到它与for (int i : IntArray)Java 1.5中的相似。

在C / C ++中,如果你想写for (int i = 0; i < 5; i++),那么在Python中你只需编写for i in range(0,5)。正如您所看到的,for循环更简单,更具表现力,并且在Python中不易出错。

休息声明

break语句用于中断循环语句,即停止执行循环语句,即使循环条件尚未变为False或项目序列尚未完全迭代。

一个重要的注释是,如果你打破了一个forwhile循环,任何对应的循环else是块执行。

示例(另存为break.py):

while True:
    s = 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

这个怎么运作

在这个程序中,我们反复取用户的输入并每次打印每个输入的长度。我们提供了一个特殊条件来通过检查用户输入是否来停止程序 'quit'。我们通过突破循环并到达程序结束来停止程序。

可以使用内置len函数找到输入字符串的长度。

请记住,该break语句也可以与for循环一起使用。

Swaroop的Poetic Python

我在这里使用的输入是我写的一首小诗:

Programming is fun
When the work is done
if you wanna make your work also fun:
    use Python!

continue声明

continue语句用于告诉Python跳过当前循环块中的其余语句并继续循环的下一次迭代。

示例(另存为continue.py):

while True:
    s = input('Enter something : ')
    if s == 'quit':
        break
    if len(s) < 3:
        print('Too small')
        continue
    print('Input is of sufficient length')
    # Do other kinds of processing here...

输出:

$ python continue.py
Enter something : a
Too small
Enter something : 12
Too small
Enter something : abc
Input is of sufficient length
Enter something : quit

这个怎么运作

在这个程序中,我们接受来自用户的输入,但是只有在输入字符串长度至少为3个字符时才处理输入字符串。因此,我们使用内置len函数来获取长度,如果长度小于3,我们使用该continue语句跳过块中的其余语句。否则,执行循环中的其余语句,执行我们想要在此处执行的任何类型的处理。

请注意,该continue语句也适用于for循环。

摘要

我们已经看到了如何使用三种控制流语句- ifwhile以及for与其相关的一起breakcontinue报表。这些是Python中最常用的部分,因此,对它们感到满意是至关重要的。

接下来,我们将看到如何创建和使用函数。

输出:

$ 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

这个怎么运作

在这个程序中,我们从用户那里猜测并检查它是否是我们拥有的数字。我们将变量设置为number我们想要的任何整数23。然后,我们使用该input()功能进行用户的猜测。功能只是可重复使用的程序。我们将在下一章中详细介绍它们。

我们为内置input函数提供一个字符串,将其打印到屏幕上并等待用户输入。输入内容并按kbd:[enter]键后,该input()函数将返回我们输入的内容,作为字符串。然后,我们将此字符串转换为整数int,然后将其存储在变量中guess。实际上,这int是一个类,但您现在需要知道的是,您可以使用它将字符串转换为整数(假设字符串在文本中包含有效的整数)。

接下来,我们将用户的猜测与我们选择的数字进行比较。如果它们相等,我们会打印成功消息。请注意,我们使用缩进级别来告诉Python哪些语句属于哪个块。这就是缩进在Python中如此重要的原因。我希望你坚持“一致的缩进”规则。你是?

注意if语句最后是如何包含冒号的 - 我们向Python指出后面是一个语句块。

然后,我们检查猜测是否小于数字,如果是,我们通知用户他们必须猜测比这更高一点。我们在这里使用的是elif实际将两个相关if else-if else语句组合成一个组合if-elif-else语句的子句。这使程序更容易,减少了所需的缩进量。

elifelse语句也必须有(当然与适当的缩进,)在逻辑行随后的语句其对应的块的端部的结肠

您可以在if语句的if块中包含另一个if语句,依此类推 - 这称为嵌套if语句。

请记住,elifelse部分是可选的。最小的有效if声明是:

if True:
    print('Yes, it is true')

在Python完成执行完整if语句以及关联的elifelse子句之后,它将继续执行包含该if语句的块中的下一个语句。在这种情况下,它是主块(程序的执行开始),下一个语句是print('Done')语句。在此之后,Python会看到程序的结尾并完成。

即使这是一个非常简单的程序,我也指出了很多你应该注意到的事情。所有这些都非常简单(对于那些来自C / C ++背景的人来说非常简单)。你最初需要了解所有这些事情,但经过一些练习后你会对它们感到满意,而且对你来说都会感觉“自然”。

C / C ++程序员注意事项

switchPython中没有声明。您可以使用if..elif..else语句执行相同的操作(在某些情况下,使用字典快速执行)

while声明

while只要条件为真,该语句允许您重复执行语句块。一个while说法是所谓的一个例子循环语句。一个while语句可以有一个可选的else条款。

示例(另存为while.py):

number = 23
running = True

while running:
    guess = int(input('Enter an integer : '))

    if guess == number:
        print('Congratulations, you guessed it.')
        # this causes the while loop to stop
        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.')
    # Do anything else you want to do here

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陈述的使用。

我们移动inputif语句内部while循环和变量设置runningTruewhile循环之前。首先,我们检查变量running是否True然后继续执行相应的while-block。在执行该块之后,再次检查条件,在这种情况下是running变量。如果是,我们再次执行while-block,否则我们继续执行可选的else-block,然后继续执行下一个语句。

elsewhile循环条件变为时执行该块False- 这甚至可能是第一次检查条件。如果有else一个while循环的子句,它总是被执行,除非你用一个break语句中断循环。

TrueFalse被称为布尔类型,你可以认为他们是等同于价值10分别。

C / C ++程序员注意事项

请记住,您可以elsewhile循环创建一个子句。

for

for..in语句是另一个循环语句,它迭代一系列对象,即遍历序列中的每个项目。我们将在后面的章节中详细介绍序列。你现在需要知道的是序列只是一个有序的项目集合。

示例(另存为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

这个怎么运作

在这个程序中,我们正在打印一系列数字。我们使用内置range函数生成这个数字序列。

我们在这里做的是提供两个数字并range返回从第一个数字开始到第二个数字的一​​系列数字。例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range步数为1.如果我们提供第三个数字range,那么这将成为步数。例如,range(1,5,2)给出[1,3]。请记住,范围扩展第二个数,即它包含第二个数。

需要注意的是range()在同一时间产生只有一个号码,如果你要号码的完整列表,请拨打list()range(),例如,list(range(5))将导致[0, 1, 2, 3, 4]。列表在数据结构章节中进行了解释。

for循环在这个范围内进行迭代- for i in range(1,5)相当于for i in [1, 2, 3, 4]其是像在时间分配所述序列中的每个数(或对象)至i,一个,然后执行语句的块对的每个值i。在这种情况下,我们只打印语句块中的值。

请记住,该else部分是可选的。包含时,for除非遇到break语句,否则它总是在循环结束后执行一次。

请记住,for..in循环适用于任何序列。这里,我们有一个由内置range函数生成的数字列表,但一般来说我们可以使用任何类型的对象的任何类型的序列!我们将在后面的章节中详细探讨这个想法。

C / C ++ / Java / C#程序员注意事项

Python for循环与C / C ++ for循环完全不同。C#程序员会注意到forPython 中的循环类似于foreachC#中的循环。Java程序员会注意到它与for (int i : IntArray)Java 1.5中的相似。

在C / C ++中,如果你想写for (int i = 0; i < 5; i++),那么在Python中你只需编写for i in range(0,5)。正如您所看到的,for循环更简单,更具表现力,并且在Python中不易出错。

休息声明

break语句用于中断循环语句,即停止执行循环语句,即使循环条件尚未变为False或项目序列尚未完全迭代。

一个重要的注释是,如果你打破了一个forwhile循环,任何对应的循环else是块执行。

示例(另存为break.py):

while True:
    s = 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

这个怎么运作

在这个程序中,我们反复取用户的输入并每次打印每个输入的长度。我们提供了一个特殊条件来通过检查用户输入是否来停止程序 'quit'。我们通过突破循环并到达程序结束来停止程序。

可以使用内置len函数找到输入字符串的长度。

请记住,该break语句也可以与for循环一起使用。

Swaroop的Poetic Python

我在这里使用的输入是我写的一首小诗:

Programming is fun
When the work is done
if you wanna make your work also fun:
    use Python!

continue声明

continue语句用于告诉Python跳过当前循环块中的其余语句并继续循环的下一次迭代。

示例(另存为continue.py):

while True:
    s = input('Enter something : ')
    if s == 'quit':
        break
    if len(s) < 3:
        print('Too small')
        continue
    print('Input is of sufficient length')
    # Do other kinds of processing here...

输出:

$ python continue.py
Enter something : a
Too small
Enter something : 12
Too small
Enter something : abc
Input is of sufficient length
Enter something : quit

这个怎么运作

在这个程序中,我们接受来自用户的输入,但是只有在输入字符串长度至少为3个字符时才处理输入字符串。因此,我们使用内置len函数来获取长度,如果长度小于3,我们使用该continue语句跳过块中的其余语句。否则,执行循环中的其余语句,执行我们想要在此处执行的任何类型的处理。

请注意,该continue语句也适用于for循环。

摘要

我们已经看到了如何使用三种控制流语句- ifwhile以及for与其相关的一起breakcontinue报表。这些是Python中最常用的部分,因此,对它们感到满意是至关重要的。

接下来,我们将看到如何创建和使用函数。

注意:每个判断条件都以 : 为结束,表示开始当前block,下一行行首以四个空格或一个Tab键缩进为当前block内容。

        在书写习惯上我建议在每行的行位都加上 ; 表示结束,以此养成一个良好的编码习惯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值