Python 简单数学程序的语法无效

Python Invalid Syntax on simple Maths Program

我正在尝试创建随机数学问题测验,但冒号作为无效语法出现。是不是因为运算符我不能使用冒号?如果我把它拿出来,它也被视为无效语法。

这是创建 'correct_answer' 变量的代码,因此如果用户输入的答案正确或不正确,它会让他们知道。如果需要整个代码(我相信它不会,因为这可能是我遗漏的一些非常愚蠢的东西)我可以 post 它。

if operator==+:
    correct_answer=random_number1+number2
elif operator==-:
    correct_answer=random_number1-number2
else:
    correct_answer=random_number1*number2

完整代码:

import random

name=raw_input("Hi what's your name?")
print "Alrighty lets go, "+name+"!"

for i in range(10):
    operator_list=('+','-','x')
    operator=random.choice(operator_list)
    random_number1=random.randint(1,12)
    random_number2=random.randint(1,10)

question=1
print random_number1, operator, random_number2

if operator==+:
    correct_answer=random_number1+number2
elif operator==-:
    correct_answer=random_number1-number2
else:
    correct_answer=random_number1*number2


answer = eval(str(int(raw_input("What is the answer?"))))


if answer==correct_answer:
    print "Great job!"
else:
    print"Unlucky pal! It was " +correct_answer+ "
question+1

我假设 +- 是字符串。如果是这样,您需要在它们周围加上引号。 space 输出代码以使其更易读也是一种很好的做法。

if operator == '+':
    correct_answer = random_number1 + number2
elif operator == '-':
    correct_answer = random_number1 - number2
else:
    correct_answer = random_number1 * number2

答案:所需要的只是操作员周围的语音标记。

if operator == "+":
    correct_answer=random_number1+number2
elif operator == "-":
    correct_answer=random_number1-number2
else:
    correct_answer=random_number1*number2

Ans:


当您编写 + 和 - 时,python 将其视为整数运算符的实数并给出错误,因为没有数字。添加" "会定义为字符串,应该不会报错。


更正版本:

if operator == "+":
    correct_answer=random_number1+number2
elif operator == "-":
    correct_answer=random_number1-number2
else:
    correct_answer=random_number1*number2