下面,我插入了一些明显错误的代码,除了最新的Python用户之外。
人们会非常友好地建议对代码进行一些新手改进吗?如逻辑变量名,添加注释等。
根据问题中的请求,我们也会感谢对代码中错误的更正。
我遇到了让下面的循环工作的问题。有没有人对错误有什么建议?目前我被问到这个问题,然后代码显示错误。
应该发生的是我被问到一个问题,然后有3次机会正确回答。
a = input("What is the opposite to night?")
for xx in range(0,3)
if a == Night:
print("That's right! Well done")
else:
print("Sorry, try again")
答案 0 :(得分:4)
请参阅下面的更正:
a = input("What is the opposite to night?")
for x in range(0,3): # must have colons at the end of for statement
if a.lower() == "night": # we should accept all cases
print("That's right! Well done") # indentation required in if statement
else:
print("Sorry, try again") # indentation required also
答案 1 :(得分:4)
我认为问什么是正确的更有价值:
input(..)
只被调用一次而不在循环中; for
循环结尾处有无冒号; "Night"
; "day"
进行比较,因为这是正确答案; "try again"
如果是最后一次机会; break
;和所以修复就是:
for xx in range(0,3): # colon
a = input("What is the opposite of night?") # input in the loop
if a.lower() != "day": # comparing against "day" (string)
if xx < 2: #only print try again if it is not the last chance
print("Sorry, try again") #indentation
else:
print("Too bad, well goodbye.")
else:
print("That's right! Well done") # indentation
break # break if correct
其他建议:您可以使用range(3)
代替更短的range(0,3)
。
答案 2 :(得分:1)
Compare
并非所有答案都会有所帮助,即使它们产生了“正确”的答案
&安培;
如果您从StackOverflow“借用”代码,您可能会被发现。
答案 3 :(得分:-2)
for xx in range(0,3)
应该是
for x in range(0,3):
并且还可以通过
进行优化(尽管范围很小,范围很小)for x in xrange(3)
最后,Night需要包含在引号中,所以:
if a == "Night"