【问题标题】:wondering why the result of these two is different?想知道为什么这两个的结果不同?
【发布时间】:2018-06-06 00:56:37
【问题描述】:

我想知道为什么这两个的结果不同?

import random
secretNumber = random.randint(1, 20)
for i in range(7):
  print(secretNumber)

import random
for i in range(7):
  print(random.randint(1, 20))

但是对方这两个的结果是一样的:

number = range(1,7)
for i in number: print(i)

for i in range(1,7): print(i)

【问题讨论】:

    标签: python for-loop random range


    【解决方案1】:

    第一个设置为变量,这意味着该值将是常量/相同。第二个在每个循环上获得不同的值,因为您在每个循环上生成不同的随机数。

    import random
    secretNumber = random.randint(1, 20)
    for i in range(7):
      print(secretNumber) # secretNumber will always be the same
    
    import random
    for i in range(7):
      print(random.randint(1, 20)) # will generate random number every loop
    

    【讨论】:

    • 好的谢谢。我想明白你的意思,但困惑是为什么这两个的结果是相同的: number = range(1,7) for i in number: print(i) for i in range(1,7): print(i)
    • 我编辑了我的问题,以明确我的困惑是什么。
    • 看到了,第一个你将它设置为一个变量。第二个不在循环内,这就是它具有相同值的原因。这就像第一个,但你没有把它放在一个变量中。
    【解决方案2】:

    我在代码中添加了一些 cmets,以便您可以破译正在发生的事情。

    import random
    
    # run random.randint(1,20) method 1 time and store the value in variable secretNumber
    secretNumber = random.randint(1, 20)
    
    for i in range(7):
      # Print the variable secretNumber 7 times (value is some integer)
      print(secretNumber) 
    
    # Do whatever is in this loop 7 times
    for i in range(7):
      # Print the value returned by random.randint(1,20)
      print(random.randint(1, 20))
    
    # store range object (which is merely an iterator) in variable number
    number = range(1,7)
    
    # for loop will iterate the object stored in variable number
    for i in number:
        print(i)
    
    # range(1,7) will always return the same object so number === range(1,7)
    for i in range(1,7):
        print(i)
    

    更多关于范围如何在 Python 3 vs 2 中工作的信息Assign a range to a variable (Python)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-18
      • 2021-12-10
      • 2014-02-03
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 2013-01-31
      • 2019-12-11
      相关资源
      最近更新 更多