Python:无效的语法错误

时间:2017-03-12 15:19:51

标签: python

我是python的初学者,我正在学习它。但是,我在下面生成的代码给出了错误(无效语法)。我认为ValueError行是问题所在。有人可以帮我解决这个问题,因为它非常令人沮丧。感谢

def get_integer():
    while True:
        try:
            seven_integer = int(input("Please enter a seven digit integer: "))
            except ValueError:
                         print("Please enter a seven digit integer")
    continue
if 1000000 <= seven_integer
<= 9999999:
    return seven_integer

2 个答案:

答案 0 :(得分:2)

所以这里有一些问题。

定义函数时,其中的所有内容都需要从定义中缩进一个选项卡。这里你的if语句超出了你的函数定义,所以返回一些东西毫无意义。

continue用于打破for或while循环,但是你没有把它放在一个循环中。

if语句需要在同一行,因此不能在那里换行。

在print语句之前,您似乎也有两个制表符缩进,只应该有一个。

看看这个缩进,它仍然不会做你想做的事情,但它对编译器有意义:

def get_integer():
    while True:
        try:
            seven_integer = int(input("Please enter a seven digit integer: "))
        except ValueError:
             print("Please enter a seven digit integer")
        continue
    if 1000000 <= seven_integer <= 9999999:
        return seven_integer

如果您希望从用户那里获得一个7位数的整数,那么这样的事情可能会更像您所追求的:

def get_integer():
    while True:
        try:
            user_input = input("Please enter a seven digit integer: ")
            seven_integer = int(user_input)
            if 1000000 <= seven_integer <= 9999999:
                return seven_integer
            else:
                print("That's not 7 digits...")
        except:
            print("That's not an integer...")

a = get_integer()
print(a)

答案 1 :(得分:0)

我使用适当的缩进重新格式化了代码,并且它有效。

但是,如果输入的值会产生值错误,则会打印两次消息。

Please enter a seven digit integer: a
Please enter a seven digit integer
Please enter a seven digit integer: 

我认为下面的代码修复了您的主要问题。但是,当我将其粘贴到答案框中时,浏览器会将其格式化为您的格式。 :)我不得不努力重新格式化它。

顺便说一句,我使用的是Python 3.6

def get_integer():
    while True:
        try:
            seven_integer = int(input("Please enter a seven digit integer: "))
        except ValueError:
            print("Please enter a seven digit integer")
            continue
        if 1000000 <= seven_integer <= 9999999:
            return seven_integer