范围值可以包含>符号吗?

时间:2019-05-12 07:04:52

标签: python python-3.x

我正在写一个主题中“通过或未通过”的代码。

n=int(input("gimme a number")
    for n in range(n>50):
        print("you have passed Friend")

我希望它问我n =值,相反,它给我打印值时出现语法错误

SyntaxError: invalid syntax

有人可以解释为什么吗?

3 个答案:

答案 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进行评估时,它可以评估为FalseTrue,由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)

由于三件事,它给您带来了错误:

  1. 意外缩进
  2. 缺少括号
  3. 建议:使用 if语句代替范围

这里有没有这些错误的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")