2017-03-12 30 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

ここにいくつかの問題があります。

関数を定義するとき、その中のすべてがその定義から1つのタブをインデントする必要があります。ここでは、あなたのif文が関数定義の外にあるので、何かを返すのは意味をなさない。

continueはforループまたはwhileループから抜け出すのに使用されますが、ループ内に配置していません。

ifステートメントは同じ行にある必要があるため、そこに改行を入れることはできません。

また、print文の前に2つのタブインデントがあるように見えます。

それはまだあなたはそれが何をしたいのかしないだろうが、それはコンパイラに意味をなさないよ、このインデントをチェックアウト:

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

コードを適切なインデントで再フォーマットしても機能しました。

ただし、値のエラーを入力するものを入力すると、メッセージが2回印刷されます。

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