在python中,数学运算符被归类为整数

2024-09-27 00:11:25 发布

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

在python中是一个被归类为整数的数学运算符。 例如,为什么这个代码不能工作

import random

score = 0
randomnumberforq = (random.randint(1,10))
randomoperator = (random.randint(0,2))
operator = ['*','+','-']
answer = (randomnumberforq ,operator[randomoperator], randomnumberforq)
useranswer = input(int(randomnumberforq)+int(operator[randomoperator])+      int(randomnumberforq))
if answer == useranswer:
print('correct')
else:
    print('wrong')

Tags: 代码answerimport运算符数学整数randomoperator
3条回答

那要看你想做什么。您没有给我们提供示例输入或输出,没有注释,也没有错误消息。在

看起来你在写一个简单的算术练习引擎。如果是这样,那么你的基本问题是你不理解编程中允许的操作。你不能只是把符号排成一行,然后指望计算机找出它应该如何组合它们。你对answer和useranswer的赋值语句在结构上有缺陷。第一个提供了一个字符串列表;第二个失败是因为您试图将符号(如*)转换为整数。在

对于更高级的用户,我建议使用“evaluate”操作。但对你来说。。。 当你选择随机运算符时,你需要检查你得到的是哪一个。写一个三分支的“如果”来处理这三种可能性。下面是第一个的头像:

if randomoperator == 0:
    operator = '*'
    answer = randomnumberforq * randomnumberforq
elif: ...

请注意,操作中的两个数字是相同的。如果你想要不同的号码,你必须给兰丁打两次电话。在

这能让你动起来吗。。。在一个你觉得舒服的编码级别?在

不能只将一个运算符连接到几个数字上,然后期望对其求值。您可以使用eval来计算最后一个字符串。在

answer = eval(str(randomnumberforq)
              + operator[randomoperator] 
              + str(randomnumberforq))

更好的方法是使用operator模块中的函数。通过将函数分配给列表,您可以选择随机调用哪个函数:

^{pr2}$

尝试将字符串转换为整数,但整数不是数字:

int(operator[randomoperator])

数组“operator”中的运算符是字符串,它不表示数字,也不能转换为整数值。另一方面,input()函数需要字符串作为参数值。所以写下:

^{pr2}$

+运算符可用于合并字符串。但是Python要求两边的操作数都是字符串。这就是为什么我添加了str()函数来将数字值转换为字符串。在

相关问题 更多 >

    热门问题