• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 5. While cycle

难度:

任务«算术级数»

💻 Python

一位名叫Alex的年轻园丁种下了一株魔法嫩芽。他知道嫩芽的初始高度、每天增长多少倍,以及他希望长到多高。Alex想提前知道需要等待多少天。

编写一个程序,实现以下功能:

  1. 询问园丁的名字。
  2. 读取嫩芽的初始高度、每日增长倍数以及目标高度。所有高度均为整数。
  3. 计算需要多少天才能使嫩芽的高度达到或超过目标高度。
  4. 向园丁显示一条包含天数的个性化消息。
  5. 作为额外功能,“绘制”最终的花朵,其茎的高度取决于生长天数。

此任务将帮助你练习使用循环 while 和 for、条件运算符,以及数据的输入输出(包括字符串)。

输入格式

rn
  • 园丁的名字(字符串)。
  • rn
  • 初始幼苗高度(整数)。
  • rn
  • 每日生长倍数(整数,大于1)。
  • rn
  • 期望的最终高度(整数)。
  • 输出格式

    rn
  • 个人消息附带结果(一行)。样式 = "Font-Size: 14pt;"> 风格化的花朵图像(多行),如果生长需要时间。
  • rn
  • 如果不需要生长时的替代消息(一行)。
  • rn

    示例

    输入

    玛莎
    2
    3
    50

    输出

    玛莎,你的幼苗需要3天才能长大。
      (---)
      (o)
        |
        |
        |
      / \

    提示

    All about thewhile loop in Python

    The while cycle (translated as "for now") allows you to repeat the execution of a block of code as long as a certain logical condition remains true (True). This is an indispensable tool when you don't know in advance exactly how many times you need to perform an action. The main difference from the for loop is that for is usually used to iterate over a known sequence (list, string, range), and while when the number of iterations depends on the fulfillment of some condition in during the program operation.

    Loop syntax while

    Here is the basic syntax of the while loop in Python:

    while condition:
        code block_
    
    • Condition: this is any expression that returns True or False. This can be not only a comparison of variables, but also, for example, checking the presence of items in the list or the value returned by the function. If the condition is true (True), the block_code is executed.
    • Code block: one or more indented statements that are executed each time the loop passes (each iteration).

    Example of a simple loop while

    Let's look at an example where we output numbers from 1 to 5:

    count = 1
    while count <= 5:
        print(count)
    count += 1 # The most important line: increase the value of the count variable by 1
    

    Output:

    1
    2
    3
    4
    5
    

    Here we start with the value count = 1. Before each iteration, Python checks the condition count<=5. As long as it is true, a block of code is executed: the current value of count is printed, and then it increases by 1. As soon as count becomes 6, the condition 6 <= 5 becomes false (False), and the loop ends its work.

    A useful tip: the variable that controls the loop (in our case count) is often called a counter or a loop control variable. It is extremely important to ensure that it changes within the loop in such a way that the condition sooner or later becomes false.

    Potential problems: endless loops

    An infinite loop is a cycle that never ends. This happens when his condition always remains true.

    count = 1
    while count <= 5:
        print(count)
        # Error: we forgot to change the count value, so the condition will always be True.
    

    To stop the execution of such a cycle, you need to interrupt the program manually (for example, by pressing Ctrl+C in the terminal).

    However, it is worth noting that infinite loops are not always a mistake. Sometimes they are used intentionally, for example, in programs that need to run all the time: servers listening to connections, or game loops. In such cases, the while True construction is often used.:, and the exit from the loop is organized using a break for some special event.

    Using break to exit the loop early

    We can use the break operator to immediately and completely terminate the loop, even if its main condition is still true.

    count = 1
    while count <= 10: # The condition allows you to go up to 10
        if count == 3:
            print("We have met the number 3, we exit the loop.")
    break  # Exit the loop when count is 3
        print(count)
        count += 1
    

    Output:

    1
    2
    We have met the number 3, we exit the cycle.
    

    A useful tip: if you have nested loops (one while inside the other), the break statement will interrupt execution of only the innermost loop in which it is located.

    Using continue to skip an iteration

    The continue operator skips the rest of the code in the current iteration and immediately proceeds to check the condition for the next iteration.

    count = 0
    while count < 5:
        count += 1
        if count == 3:
            print("Skipping the number 3...")
    continue # Skip the remaining code and move on to the next iteration
    print(f"Processing the number: {count}")
    

    Output:

    Processing the number: 1
    Processing the number: 2
    Skip the number 3...
    Process the number: 4
    Processing the number: 5
    

    It is important not to confuse continue with break. break stops the loop completely, and continue only completes the current step ahead of schedule.

    Loop while with user input

    while loops are ideal for processing user input when data needs to be requested until it meets the required criteria.

    import random
    
    secret_number = random.randint(1, 10)
    guess = None # Initialize the variable before the loop
    
    # The loop will run until guess is equal to secret_number
    while guess != secret_number:
        guess_text = input("Guess a number from 1 to 10:")
    # Check if the user has entered a number
        if not guess_text.isdigit():
            print("Please enter a number.")
            continue # Skip the rest of the logic and request input again.
        
        guess = int(guess_text)
    
        if guess < secret_number:
    print("Your number is less than the number you have guessed.")
    elif guess> secret_number:
    print("Your number is more than the number you have guessed.")
    
    print(f"Congratulations! You guessed the number {secret_number}!")
    

    Loop while with block else

    Loops in Python have an interesting and not the most well-known feature - the else block. The code in the else block is executed only if the loop ended naturally (that is, its condition became False), and was not interrupted by the break operator.

    # Example where else will execute
    count = 1
    while count <= 3:
        print(f"Iteration {count}")
    count += 1
    else:
    print("The loop ended naturally.")
    
    # Output:
    # Iteration 1
    # Iteration 2
    # Iteration 3
    # The cycle ended naturally.
    
    # Example where else fails due to break
    count = 1
    while count <= 3:
        if count == 2:
    print("The loop is interrupted by the break statement.")
    break
        print(f"Iterate {count}")
    count += 1
    else:
    print("This block will not be executed.")
        
    # Output:
    # Iteration 1
    # The loop is interrupted by the break statement.
    

    Conclusion

    The while loop is a powerful tool in Python. Here are the main points to remember:

    1. Initializing variables: Make sure that the variables used in the condition exist before the loop starts.
    2. Condition change: Something must happen inside the loop that will eventually make the condition false in order to avoid an infinite loop.
    3. break and continue: Use break to exit the loop completely and continue to skip the current iteration.
    4. The while True pattern: This is a convenient way to organize a cycle that must be interrupted by a complex internal condition using break.
    5. The else block: Keep in mind that you can use the else block for code that should be executed only at the normal end of the loop.
    main.py
    测试 1
    测试 2
    测试 3
    测试 4
    测试 5
    测试 6
    测试 7
    测试 8
    测试 9
    测试 10
    开发者解答
    # Формат кода с комментариями к строкам для объяснения
    
    # Ввод данных
    gardener_name = input()  # Считываем имя садовода (строка)
    current_height = int(input())  # Считываем начальную высоту (целое число)
    multiplier = int(input())  # Считываем множитель роста (целое число)
    target_height = int(input())  # Считываем желаемую высоту (целое число)
    
    days = 0  # Инициализируем счетчик дней
    
    # Основной цикл для расчета дней
    # Цикл while работает, пока текущая высота меньше желаемой
    while current_height < target_height:
        current_height *= multiplier  # Увеличиваем высоту ростка в multiplier раз
        days += 1  # Увеличиваем счетчик дней на один
    
    # Вывод результата
    # Используем f-строку для форматирования и вывода персонального сообщения
    print(f"{gardener_name}, вашему ростку потребуется {days} дней, чтобы вырасти.")
    
    # Условие для красивого вывода
    # Если росток уже большой, рисуем цветок без стебля
    if days > 0:
        print("  (---)") # Верхушка цветка
        print(" ( O )")
        # Цикл for для отрисовки стебля
        # Он выполнится 'days' раз, рисуя по одной секции стебля
        for _ in range(days):
            print("   |")
        print("  / \\") # Основание
    else: # Если ждать не нужно
        print("Ваш росток уже достиг нужной высоты!")

    🎉 恭喜! 🎉

    你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

    AD

    广告

    red-snake blue-snake green-snake

    正在运行代码...

    AI助手

    你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!