带数学运算符的字符串不起作用

2024-10-03 13:18:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,所以似乎无法运行以下程序

    import random
num1=0
num2=0

num1=int(random.randint(1,20))
num2=int(random.randint(1,20))
result=0
opr = ("*", "-", "+", "/")
print(random.choice(opr))
print(num1,num2)

if opr=="*":
    result = num1 * num2
if opr=="+":
    result = num1 + num2
if opr=="-":
    result = num1 - num2
if opr=="/":
    result = num1 / num2    
    print(result)

Tags: import程序ifrandomresultintprintrandint
3条回答

我已经对你的代码做了两次修改,它可以像你期望的那样工作。你知道吗

  1. 您没有将随机opr保存到新变量。你是 正在尝试使用以下命令打印随机oprprint(random.choice(opr)),它将打印随机的opr,但是 它的值一直是一个元组。

  2. 我只是将if条件改为if and elf,这样如果第一个条件匹配,它就不会检查其他条件

import random
num1=0
num2=0

num1=int(random.randint(1,20))
num2=int(random.randint(1,20))
result=0
opr = ("*", "-", "+", "/")

print(num1,num2)
new_opr = random.choice(opr)
print(new_opr)


if new_opr=="*":
    result = num1 * num2
elif new_opr=="+":
    result = num1 + num2
elif new_opr=="-":
    result = num1 - num2
elif new_opr=="/":
    result = num1 / num2    
print(result)

opr仍然引用4个运算符的整个元组-因此它不会通过任何if检查。您需要将一个新变量(甚至是opr本身)设置为random.choice(opr),并在if语句中使用它。你知道吗

opr总是操作员列表。所以你的if语句永远不会是真的。更改此项:

opr = ("*", "-", "+", "/")
print(random.choice(opr))

对此:

opr_list = ("*", "-", "+", "/")
opr = random.choice(opr_list)
print(opr)

你的代码也能用。你知道吗

相关问题 更多 >