【问题标题】:How to use while loop and range in python? [closed]如何在python中使用while循环和范围? [关闭]
【发布时间】:2019-07-01 13:37:28
【问题描述】:

我正在学习 Python,并且我有一些没有帮助就无法完成的作业。 这是作业:

定义一个变量并将其设置为整数10000 使用 while 循环来倒数这个数字,直到它达到 0 循环的每次迭代都必须将数字减少 100 到 10 的值,如果我们还没有达到零,请重复此操作 显示变量的每个新值 当变量达到零或低于零时,程序将结束 永远不要让负值显示给用户。 我不知道如何使用while循环来做到这一点。我已经用 for 循环做到了这一点。 谢谢!

我尝试过的:

x=int(10000) 
while x > 0: 
    print (x) 
    x-=100

【问题讨论】:

  • 请你告诉我们你尝试了什么?
  • 这是我的作业,这是我们的规则stackoverflow.com/help/how-to-ask
  • 如果您发布您的工作代码尝试,您会得到答案,但不幸的是,stackoverflow 不是一个代码编写服务,它的存在是为了帮助人们让他们的代码工作。由于问题中没有代码,除非您对其进行编辑,否则您可能会发现它已关闭。
  • @Boki_Moki 我已经在您的问题中编辑了您的代码,您认为这种方法有什么问题?它与您想要的输出有何不同?
  • @Boki_Moki 如果你想让 100 之后的数字减 10 那么应该是 90,80,70

标签: python while-loop


【解决方案1】:

尝试执行以下代码。如果大于 10000,此代码将减少 100,如果小于 100,则减少 1-10 之间的随机数。

from random import randint


number = 10000
while (number > 0):
    print(number)
    if number > 100:
        number = number - 100
    else:
        number = number - randint(1,10)

从这里你会得到你想要的输出..if number >= 100

9900
9800
9700
....
300
200
100

if number < 100 你会得到

95
90
83
..
15
12
2
1

【讨论】:

  • 他提到了display each new value of the variable。这里变量 number 在number=number-100 之后得到它的新值。
【解决方案2】:

这样的事情有什么问题?

val = 10000
while val > 0:
        print(val)
        val = val - 100
print(0)

您可以减去 10 到 100 之间的随机数:

import random
val = 10000
while val > 0:
        print(val)
        val = val - random.randint(10, 100)
print(0)

【讨论】:

    【解决方案3】:

    这是我能解释的代码

    #Declare the first variable
    a=10000
    while a > 0:
        print (a)
        if a <= 100:
            a -= 10
        else:
            a -= 100   
    print(a)
    #This is the while loop which you should use to display all the numbers
    

    如果您需要更多信息,请告诉我。

    【讨论】:

      【解决方案4】:
      1. 您无需在第 1 行中转换 int

      改变这个:

      x=int(10000) 
      

      到这里:

      x = 10000
      
      1. 您的代码很好,如果打算打印循环内的原始值和迭代后的最后一个值,即 0,则需要在之后打印当前值。

        print(x)

      因此:

      x=10000
      while x > 0:
          print (x)
          x -= 100
      
      print(x)
      

      输出:

      10000
      9900
      9800
      9700
      9600
      .
      .
      .
      300
      200
      100
      0
      

      编辑:

      OP:我需要将 100 之后的数字减 10。

      您需要一个 if-else 条件来处理 100 之后的数字。

      类似:

      if x <= 100:
          x -= 10
      else:
          x -= 100
      

      因此:

      x=10000
      while x > 0:
          print (x)
          if x <= 100:
              x -= 10
          else:
              x -= 100   
      print(x)
      

      输出:

      10000
      9900
      9800
      9700
      .
      .
      .
      300
      200
      100
      90
      .
      .
      30
      20
      10
      0
      

      【讨论】:

      • 这是解决方案。谢谢你。我需要 if else 100 之后的数字。再次感谢
      • @Boki_Moki 不客气,请阅读此stackoverflow.com/help/how-to-ask 下次问一个格式更好的问题,干杯!
      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 2019-04-07
      • 2018-07-30
      • 2019-03-17
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      相关资源
      最近更新 更多