【问题标题】:Python Invalid Syntax on simple Maths Program简单数学程序上的 Python 语法无效
【发布时间】:2015-11-03 19:08:09
【问题描述】:

我正在尝试创建一个随机数学问题测验,但冒号显示为无效语法。是不是因为运营商我不能使用冒号?如果我把它拿出来,它也会被视为无效语法。

这是创建“正确答案”变量的代码,因此如果输入答案的用户正确或不正确,它会让他们知道。如果需要整个代码(我敢肯定它不会,因为这可能是我缺少的一些非常愚蠢的东西)我可以发布它。

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

【问题讨论】:

  • operator==+。那看起来不对。如果没有看到您的其余代码,我不知道它应该是什么,但这是不对的。
  • 给我们更多代码,看看用户在哪里输入响应
  • 当然这是语法错误。你不能只在行尾放一个+。那是什么意思?那应该是一个字符串吗? Python 应该如何在这里知道您的意思不是“尝试添加 == 和:”或其他一些废话?
  • 我也相信如果是用户输入,它应该是if operator == "+"
  • if operator=="+": 或许?

标签: python python-2.7 syntax


【解决方案1】:

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

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

【讨论】:

  • @le_wolfl 谢谢,这是需要的语音标记,我现在已经完成了,但还是谢谢。 :)
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    回答:


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


    修正版:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多