Python 带数学运算符的字符串在此处不起作用
我是Python新手,所以我似乎无法运行以下程序Python 带数学运算符的字符串在此处不起作用,python,math,Python,Math,我是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=="+":
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)
opr
仍然引用4个运算符的整个元组-因此如果检查,它将不会通过任何。您需要将新变量(甚至是opr
本身)设置为random.choice(opr)
,并在if
语句中使用该变量。opr始终是运算符列表。因此,if语句的计算结果永远不会为真。更改此项:
opr = ("*", "-", "+", "/")
print(random.choice(opr))
为此:
opr_list = ("*", "-", "+", "/")
opr = random.choice(opr_list)
print(opr)
您的代码将正常工作。代码中有几点:
首先,不需要初始化变量就可以直接影响后面的值。您可以更改:
num1=0
num2=0
num1=int(random.randint(1,20))
num2=int(random.randint(1,20))
到
num1=int(random.randint(1,20))
num2=int(random.randint(1,20))
(实际上,我会将名称num1
和num2
更改为不同的名称,因为它们的含义相当广泛)
第二次,您使用元组
初始化opr
,只打印随机选择,不影响它
而不是:
opr=(“*”、“-”、“+”、“/”)
打印(随机选择(opr))
你应该做:
opr=(“*”、“-”、“+”、“/”)
选择的\运算符=随机选择(opr)
打印(所选的_运算符)
实际上,你可以这样做:
selected_操作符=随机选择(“*”、“-”、“+”、“/”)
打印(所选的_运算符)
最后,仅在选择了/
的情况下打印结果:
如果opr==“*”:
结果=num1*num2
如果opr==“+”:
结果=num1+num2
如果opr==“-”:
结果=num1-num2
如果opr==“/”:
结果=num1/num2
打印(结果)
这应更改为:
这段代码应该可以做到这一点
import random
num1=0
num2=0
num1=int(random.randint(1,20))
num2=int(random.randint(1,20))
result=0
opr = ("*", "-", "+", "/")
print(num1,num2)
newOpr = random.choice(opr)
print(newOpr)
if newOpr=="*":
result = num1 * num2
if newOpr=="+":
result = num1 + num2
if newOpr=="-":
result = num1 - num2
if newOpr=="/":
result = num1 / num2
print(result)
出现问题的原因是random.choice(opr)
没有将opr
设置为元组中的随机值。它只生成一个,而不处理它。将其分配给变量允许您比较/更改其值等。我已对您的代码进行了两次更改,其工作方式与您预期的一样
您没有将随机opr
保存到新变量。你是
尝试使用此选项打印随机opr
print(random.choice(opr))
,它将打印随机opr
,但是
它的值始终是一个元组
我只是将if条件改为if和elf,这样,如果第一个条件匹配,它就不会检查其他条件
您错过了缩进:
...
if opr=="/":
result = num1 / num2
print(result)
应成为:
if opr=="/":
result = num1 / num2
print(result) # !!!
import python
至少应该从第1列开始。您得到的错误是什么?在条件说明问题所在之前,先执行一点print(opr)
。
...
if opr=="/":
result = num1 / num2
print(result)
if opr=="/":
result = num1 / num2
print(result) # !!!