if

时间:2015-10-13 22:23:07

标签: python if-statement syntax-error

这是一个非常简单的想法,你输入你的测试分数,如果你超过70%(35/50)你可以做1 pt的校正,基本上给你一个100%。如果你的得分低于70%,那么你可以在1/2点之前进行修正。

这给了我一个无效的语法,并将光标放在最后的“和”

之间
score = input("How many problems did you get right on the test?")
maxscore = 50
passscore = 35
wrong = (maxscore - score)

if (score > passscore):
    print ("You will get a 100%")


if (score < passscore):
    print("You can get"(wrong)"% back  with text corrections")

我在编程方面非常糟糕,如果我在这里真的很蠢,那就很抱歉。

6 个答案:

答案 0 :(得分:3)

问题在于:

print("You can get"(wrong)"% back  with text corrections")

这不是将变量插入字符串的正确方法。您有几种选择:

print("You can get " + str(wrong) + "% back with text corrections")

或者:

print("You can get %d%% back with text corrections" % wrong)

或者:

print("You can get {}% back with text corrections".format(wrong))

或者:

print("You can get ", wrong, "% back with text corrections", sep='')

另外,如果您使用的是Python 3,则需要score = int(input(...将您收到的字符串转换为整数。

答案 1 :(得分:2)

每个人都必须从某个地方开始(我自己还不熟悉Python)!

您的第一个问题是,您需要将score定义为int

score = int(input("How many problems did you get right on the test?"))

然后至少有两个解决方案来修复最后一行代码。一种方法是使用+分隔您的文字字符串,并使用strwrong转换为字符串格式:

print("You can get " + str(wrong) + "% back  with text corrections")

或者你可以使用.format方法,这更像是“Pythonic”:

print("You can get {0}% back  with text corrections".format(wrong))

答案 2 :(得分:1)

你可以用逗号分隔多个参数。

s

答案 3 :(得分:1)

在您担心语法错误之前,您需要将b转换为a,因为wrong会将用户输入作为int类型返回。

input()

如果您没有并且用户输入字符串,则表达式为:

str

将引发score = int(input("How many problems did you get right on the test?")) ,这实际上意味着您无法从类型wrong = (maxscore - score) (最大分数)的值中减去类型TypeError(得分)的值。

至于你的句法错误。

str

在语法上无效。您需要在int来电中使用print("You can get"(wrong)"% back with text corrections") 对其进行转换,将wrong作为字符串添加:

str()

你可以看到,不同类型之间的转换,取决于操作可能会一团糟,直到你得到它们。

答案 4 :(得分:1)

如果要连接字符串,则需要在变量名和字符串之间添加+。用以下代码替换第二个打印行:

print("You can get " + str(wrong) + "% back  with text corrections")

答案 5 :(得分:1)

  1. 首先,score必须是int。因此,您需要使用int()函数来执行此操作。
  2. if不需要(),只需删除它们。
  3. 然后,问题是关于print("You can get"(wrong)"% back with text corrections"),您应该在这里使用+,.format()等。请记住使用str()将其转换为字符串。
  4. score = int(input("How many problems did you get right on the test?"))
    maxscore = 50
    passscore = 35
    wrong = (maxscore - score)
    
    if score > passscore:
        print("You will get a 100%")
    
    
    if score < passscore:
        print("You can get "+str(wrong)+"% back with text corrections")
    

    这是最简单的方法,但使用.format()会更加清晰:

    print("You can get {0}% back  with text corrections".format(wrong)) 
    

    或者像这样:

    print("You can get {wrong}% back  with text corrections".format(wrong=wrong))