什么是嵌套循环?如何在下面的示例中使用它?

时间:2017-07-09 03:40:11

标签: python python-3.x nested-loops

我的开始python编码类给了我以下问题。我已经联系了教授,但他没有回复我,这是在3.5小时内完成的。如果有人有如何开始的教程/指导,那将是惊人的。我不指望任何人写这段代码!我只需要一些指导!谢谢:)

用Python编写程序,提示用户输入10到3之间的整数,也可以输入一个字符。然后使用这两个值来显示一个框,使用输入的字符,框中的大小由输入的数字确定。

以下是示例输出:

Enter size of box:  4

Enter a character: %

%%%%

%%%%

%%%%

%%%%

这是另一种可能的输出:

Enter size of box:  3

Enter a character: &

&&&

&&&

&&&

您的程序只运行一次,但您必须使用重复构造来使用输入的值绘制框。

提示:它应该是一个嵌套循环。打印的每一行都是一个循环,所以你将有循环内部循环结构;嵌套循环。

和以前一样,您必须测试无效值,如果是,则显示错误消息并继续获取有效数字。

在此处使用您自己的测试值。

3 个答案:

答案 0 :(得分:1)

解决方案

让我们将问题分解为步骤。

  1. 首先,我们需要从输入中获取一个整数,并确保整数是310或其间的任何数字。这就是3到10的含义。

  2. 然后,我们需要让用户询问将用于打印方框的单个字符。

  3. 在我们得到整数和字符后,我们需要显示一个由宽度和高度由整数确定的字符组成的框。

  4. 对于第一步,我们需要从用户那里获得输入。这可以使用内置函数input()来完成。它接受一个可选的提示作为参数,并将输入作为字符串返回。所以让我们写下来:

    integer = input()
    

    大。现在我们需要将输入转换为整数,因此可以在我们程序的其余部分中使用它。这可以使用内置函数int()来完成。我们将传入您的字符串,并将其转换为整数:

    integer = int(input('Enter a number: '))
    

    第二步是从用户那里获取一个角色。这很简单。我们将再次使用input()来获取用户的单个字符。但由于输入需要是一个字符,我们不应该转换这个值:

    character = input('Enter a character: ')
    

    好的。这是我们到目前为止所做的:

    integer = int(input('Enter a number: '))
    character = input('Enter a character: ')
    

    最后一步是打印一个由character值组成的框,其宽度为integer,高度为integer。现在我们需要做的就是打印integercharacters integer次的行。这就是嵌套for循环的用武之地。

    我们知道每行必须是integer的宽度。所以我们需要多次打印character。我们可以使用range()内置函数来执行此操作。我们传递integer作为参数,它会生成从0integer的所有数字:

    for _ in range(integer):
        print(character, end="")
    

    我们在for循环中使用下划线而不是实际可读变量名的原因是因为我们不需要使用for循环给我们的值。我们只关心重复我们的代码。

    end=""部分告诉print()内置函数每次调用时都不打印换行符,因为我们希望所有字符都在一行中。 for循环之前的print()是在我们的提示和程序输出之间添加一些空格。让我们看看到目前为止我们的计划输出结果:

    Enter a number: 5
    Enter a character: @
    
    @@@@@
    >>> 
    

    大。最后要做的是打印每行integer次。由于我们知道执行上面的for循环打印一个行,我们只需要执行integer次来打印integer行。因此,我们将for循环包含在另一个for循环中,并使用range()执行嵌套for循环integer次。我们将再次使用print(),在每行之间添加换行符:

    print()
    for _ in range(integer):
        for _ in range(integer):
            print(character, end="")
        print()
    

    就是这样!完成了。我们来测试我们的计划:

    Enter a number: 7
    Enter a character: #
    
    #######
    #######
    #######
    #######
    #######
    #######
    #######
    >>> 
    

    如您所见,我们正在获得预期的产出。这是最终的计划:

    integer = int(input('Enter a number: '))
    character = input('Enter a character: ')
    
    print()
    for _ in range(integer):
        for _ in range(integer):
            print(character, end="")
        print()
    

    错误处理

    您可能还需要实现错误处理。这意味着让您的程序从用户输入无效输入中恢复。在这种情况下,只有当我们向用户询问整数时,无效输入才能真正被激活。我们需要:

    1. 确保用户输入有效号码。和
    2. 确保该号码为310或其中的任意数字。
    3. 要做到这一点,我们需要一个循环。这样我们就可以继续向用户询问有效输入,直到他们这样做。我们可以使用while True循环。这意味着我们将继续循环,直到我们从循环中断开。

      while True:
      

      现在我们需要确保用户输入了有效的号码。我们可以使用try/except块。 try/except块的工作方式是我们在try移植中放置一个可能引发错误的代码块。如果没有出现错误,我们会正常继续该程序。但是,如果出现错误,Python将跳转到except块,其中的代码将被执行。

      在我们的例子中,我们将尝试将用户输入转换为整数。如果失败,将引发ValueError。因此,我们需要捕获该错误消息并将其打印给用户:

      while True:
          try:
              integer = int(input())
          except ValueError:
              print('Please enter a number')
      

      剩下的就是测试输入的整数是否在正确的范围内。如果是这样,我们将从循环中断开并继续该程序。如果没有,我们将显示错误消息,然后重试。这是看起来的样子:

      while True:
          try:
              integer = int(input('Enter a number: '))
              if integer >= 3 and integer <= 10:
                  break
              print('Please enter a number between 3 and 10 inclusive')
          except ValueError:
              print('Please enter a number')
      
      character = input('Enter a character: ')
      
      print()
      for _ in range(integer):
          for _ in range(integer):
              print(character, end="")
          print()
      

      以上是完整程序中的上述内容:

      这是一个演示:

      Enter a number: -23
      Please enter a number between 3 and 10 inclusive
      Enter a number: a
      Please enter a number
      Enter a number: 11
      Please enter a number between 3 and 10 inclusive
      Enter a number: 10
      Enter a character: #
      
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      >>> 
      

      有关程序中错误处理的更多资源,请参阅问题:Asking the user for input until they give a valid response

答案 1 :(得分:0)

嵌套循环是循环中的循环

但它是如何运作的?

执行外部循环语句,触发内部语句。然后内部循环执行直到完成。

因此内部语句将继续运行,直到它满足您设置它的语句为止。

然后,外部循环再次触发内部循环......并且它将继续永久地触发内部循环,直到满足外部循环的语句。

答案 2 :(得分:0)

嵌套循环是循环内的循环。例如:

import sys

def main():
    size_of_box = 4
    character = "%"
    for i in range(0, size_of_box):
        for j in range(0, size_of_box):
            sys.stdout.write(character)
        sys.stdout.write("\n")

if __name__ == "__main__":
    main()