我正在写一个主题中“通过或未通过”的代码。
n=int(input("gimme a number")
for n in range(n>50):
print("you have passed Friend")
我希望它问我n =值,相反,它给我打印值时出现语法错误
SyntaxError: invalid syntax
有人可以解释为什么吗?
答案 0 :(得分:3)
如前所述,语法错误是由于第一行中缺少)
,如果加上这一点,代码会意外地巧合地工作,并且布尔值如何解释为整数
n=int(input("gimme a number"))
for n in range(n>50):
print("you have passed Friend")
可能的输出是
gimme a number50
gimme a number51
you have passed Friend
之所以可行,是因为在n>50
中对range
进行评估时,它可以评估为False
或True
,由0
表示和1
。
因此,当您提供n < 50
时,for循环将不会运行,因为它的值为range(0)
,范围从0
开始和结束,但对于n>50
循环将在计算为range(1)
时运行一次,范围从0
开始,在1
结束
但这不是range的正确用法,请使用if
条件进行检查
n=int(input("gimme a number"))
#If condition
if n > 50:
print("you have passed Friend")
答案 1 :(得分:1)
由于三件事,它给您带来了错误:
这里有没有这些错误的python代码:
n = int(input("gimme a number"))
if n > 50:
print("you have passed Friend")
此方法非常简单, if语句会评估 n > 50,然后打印“您已通过朋友” < / strong>。
如果要使用范围,而不是使用 if语句,则可以。消息一旦出现,for循环便会打印的原因是因为 true 和 false 被评估为 0 (false)或 1 (true),因此如果 n> 50 为true,则 for循环将运行1次。
如果您想将 for循环与 range 一起使用,则这里具有所需的代码:
n=int(input("gimme a number")) #fixed missing parenthesis
for n in range(n>50): #fixed unnecessary indentation
print("you have passed Friend")
答案 2 :(得分:-1)
由于语法不正确,导致出现语法错误。
**Quick Fix:**
n=int(input("gimme a number"))
for n in range(n>50):
print("you have passed Friend")