【问题标题】:Converting the code from FOR loop to WHILE loop将代码从 FOR 循环转换为 WHILE 循环
【发布时间】:2020-12-28 04:17:44
【问题描述】:
num = int(input("Enter your number: "))

for i in range (1, num+1):
    if (i%2==0):
        i = i // 2
        print(3**(i-1))
    else:
        i = i // 2 + 1
        print(2**(i-1))

num = int(input("Enter your number: "))

i=1
j=1
while j<=num and i<=num:
    if (i%2==0):
        i = i // 2
        print(3**(i-1))
    else:
        i = i // 2 + 1
        print(2**(i-1))
j+1

在while循环转换中遇到问题。
在互联网上到处搜索这个问题,但无法解决。

【问题讨论】:

  • j 的意义何在?
  • j 不会在 while 循环中递增,因此它永远不会满足您的条件。
  • 我认为i 的值在进入循环内部时会发生变化。所以使用j。无法找到增加i 值的方法。
  • 好的,我想我明白了。您需要在循环内增加j,并且您需要使用j += 1

标签: python-3.x loops for-loop while-loop


【解决方案1】:

我认为这将完成您想要的:

num = int(input("Enter your number: "))

i = 1
while i <= num:
    if (i % 2 == 0):
        print(3 ** ((i // 2) - 1))
    else:
        print(2 ** (i // 2))
    i += 1

i 将在每次循环后递增 1。模仿for i in range(1, num + 1)i 不会在循环内修改,仅用于打印计算。

注意:在您的for 循环中,您对i 的修改不会影响循环的i 变量,但我建议您尽量避免在循环中使用相同的变量名。

【讨论】:

    猜你喜欢
    • 2021-10-22
    • 2023-01-22
    • 2014-12-18
    • 2018-02-22
    • 2017-04-26
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多