收纳空白1321 发表于 2022-3-30 22:47:50

random.randint 的取值疑问

本帖最后由 收纳空白1321 于 2022-3-30 22:53 编辑

我在 x = random.randint(2,3) 时得到的全是 反
我在 x = random.randint(2,4)时得到的全是 正

我没有看出来代码有问题
这个取值是怎么取值的
在哪里找知识点呢
求助各位大佬{:5_111:}

n = int(input("请输入抛硬币的次数: "))
import random
x = random.randint(2,3)

while n > 0:
    if x % 2 == 0:
      print("正")
    else:
      print("反")
    n -= 1

大马强 发表于 2022-3-30 23:16:45

根据左闭右开的原理 [x,y)
x = random.randint(2,3) x 一直 2
x = random.randint(2,4) x 有 2 3 两个可能

你代码的问题是没有把随机数的选取放到循环里,所以x再循环里一直都不变,导致一直都是正或一直都是负
import random
n = int(input("请输入抛硬币的次数: "))


while n > 0:
    x = random.randint(2, 4)
    if x % 2 == 0:
      print("正")
    else:
      print("反")
    n -= 1

大马强 发表于 2022-3-30 23:19:36

大马强 发表于 2022-3-30 23:16
根据左闭右开的原理 [x,y)
x = random.randint(2,3) x 一直 2
x = random.randint(2,4) x 有 2 3 两个可 ...

前面是我说错了
x = random.randint(2,3) x取 2 3
x = random.randint(2,4) x取 2 3 4
没想到它不是左闭右开区间{:10_266:}

ncx0331 发表于 2022-3-31 16:20:34

n = input()
import random

While n > 0:
    x = random.randint(2,4)
    if x%2 == 0:
      print('正')
    else:
      print('反')
    n-=1


这里要把x的赋值放在循环里面,不然每一次循环过后不会重新生成新的x

收纳空白1321 发表于 2022-3-31 19:23:58

大马强 发表于 2022-3-30 23:16
根据左闭右开的原理 [x,y)
x = random.randint(2,3) x 一直 2
x = random.randint(2,4) x 有 2 3 两个可 ...

感谢大佬的帮助{:5_111:} 助大佬生活愉快万事如意

收纳空白1321 发表于 2022-3-31 19:25:03

ncx0331 发表于 2022-3-31 16:20
这里要把x的赋值放在循环里面,不然每一次循环过后不会重新生成新的x

感谢大佬的帮助{:5_111:} 祝大佬生活愉快万事如意
页: [1]
查看完整版本: random.randint 的取值疑问