2017-03-12 37 views
-2

我是一名Python初學者,我正在學習它。但是,我在下面產生的代碼給了我錯誤(無效語法)。我認爲ValueError線是問題。有人能爲我解決這個問題,因爲它非常令人沮喪。謝謝Python:語法錯誤erroe

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 
+1

是壓痕是否正確? – Afaq

+0

顯示的縮進絕對不正確。 –

回答

2

所以這裏有幾個問題。

當定義一個函數時,需要從定義中縮進一個選項卡。這裏您的if語句不在您的函數定義中,所以返回一些東西是沒有意義的。

continue是用來打破的支持或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) 
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