这是一个非常简单的想法,你输入你的测试分数,如果你超过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")
我在编程方面非常糟糕,如果我在这里真的很蠢,那就很抱歉。
答案 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?"))
然后至少有两个解决方案来修复最后一行代码。一种方法是使用+
分隔您的文字字符串,并使用str
将wrong
转换为字符串格式:
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)
score
必须是int
。因此,您需要使用int()
函数来执行此操作。if
不需要()
,只需删除它们。print("You can get"(wrong)"% back with text corrections")
,您应该在这里使用+
或,
或.format()
等。请记住使用str()
将其转换为字符串。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))