为了账号安全,请及时绑定邮箱和手机立即绑定

当用户必须输入随机数的值时程序显示错误

当用户必须输入随机数的值时程序显示错误

茅侃侃 2024-01-24 20:49:08
我被要求让程序生成 15 个随机整数的数组,然后要求用户输入数组中的数字并显示一条消息,说明它在数组中,但是,我收到错误反而。import numpy as nyrandnums = ny.random.randint(1,101,15)print(randnums)target = int(input("Please pick a random number: "))for counter in range(0,15):  while target != randnums:    print("This number is not in the list")    target = int(input("Please pick a random number: "))  else:   if target == randnums:      print("The number" , target , "has been found in the list.")输出:Traceback (most recent call last):  File "python", line 9, in <module>ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

问题在于 != 和 == 运算符。

“randnums”是元素列表。您无法将单个值与整个列表进行比较。相反,您想要检查该值是否在列表中。

您可以使用“in”和“not in”运算符来做到这一点,因此您的代码将如下所示:


import numpy as ny

randnums = ny.random.randint(1,101,15)


print(randnums)


target = int(input("Please pick a random number: "))


for counter in range(0,15):

  while target not in randnums:

    print("This number is not in the list")

    target = int(input("Please pick a random number: "))

  else:

   if target in randnums:

      print("The number" , target , "has been found in the list.")


查看完整回答
反对 回复 2024-01-24
?
萧十郎

TA贡献1815条经验 获得超12个赞

较短的版本:


import numpy as ny


randnums = ny.random.randint(1, 101, 15)


while True:

    target = int(input('Please pick a random number: '))

    if target in randnums:

        print(f'The number {target} has been found in the list')

        break

    else:

        print('This number is not in the list')


查看完整回答
反对 回复 2024-01-24
?
万千封印

TA贡献1891条经验 获得超3个赞

正如所提供的输出所解释的,问题出在代码的第 9 行。

 while target != randnums: 这将检查target变量是否不等于 randnums 变量(一个 numpy 数组)。

你真正想要的是这个

while target not in randnums:randnums如果变量的值target是 numpy 数组中的值之一 ,它将迭代变量并返回一个布尔值randnums


查看完整回答
反对 回复 2024-01-24
  • 3 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信