2016-12-02 9 views
-2

私は最近Pythonを使いましたが、このエラーを関数の作成時に見つけました。私はそれを修正するように見えることはできません:(CODE:Pythonはこう言っています: "インデントされたブロックが期待されました"

Pythonの

#Python 

choice = input('Append Or Write?')  
    if choice == "write": 
    def write(): 
    pass 
     text_file = open('WrittenTXT.txt', "w") 
     type_user = input('Type: ') 
     text_file.write(type_user) 
     text_file.close() 

if choice == "append": 
    def append(): 
# Making a txt file 
#Append 
pass 
text_file = open('WrittenTXT.txt', "a") 
user_int = input('Enter An Integer: ') 
space = "\n" * 2 
lines = [space, "Hi\n", "Hallo\n", "Bonjour\n", user_int] 
text_file.writelines(lines) 
text_file.close() 
+0

は関数のこの部分ですか?伝えるのは難しい。 Pythonで覚えておいて、インデントはスコープを定義します。あなたの最初の行( 'choice'で始まる)は、その直下の行に揃えていません。 StackOverlowであなたのフォーマットかもしれないが、私はそれを疑う。あなたのコードに戻り、同じスコープの行が一直線に並んでいることを確認してください。 –

+3

フォーマットコードが間違っています。わかりにくい質問をする前にPythonの基本についてお読みください。 – dannyxn

答えて

1

あなたが定義され、あなたの関数を呼び出すのを忘れpassもにあなたの関数でステートメントを引き起こす可能性があります。無視passを削除

をあなたのコードを再フォーマットます:。

#Python 

def append(): 
     # Making a txt file 
     #Append 
     # pass 
     text_file = open('WrittenTXT.txt', "a") 
     user_int = input('Enter An Integer: ') 
     space = "\n" * 2 
     lines = [space, "Hi\n", "Hallo\n", "Bonjour\n", user_int] 
     text_file.writelines(lines) 
     text_file.close() 


def write(): 
    # pass 
    text_file = open('WrittenTXT.txt', "w") 
    type_user = input('Type: ') 
    text_file.write(type_user) 
    text_file.close() 

choice = input('Append Or Write?') 

if choice == "write": 
    write() 
if choice == "append": 
    append() 
+0

私は、このレイアウトが関数がオンザフライで定義されるべきであると間違って解釈される可能性があるので、 'if'ブロックの外に関数を定義することが賢明であると思う(OPが考えていたと思うもの) – roganjosh

+1

OPのオリジナルに近いコードを試してみる傾向がありますが、それがベストプラクティスの誤解を招く可能性があります。更新されます、ありがとう – davedwards

+0

助けてくれてありがとう、あなたのおかげですべてが完全にうまく支えられています。私はあなたの助けに十分に感謝することはできません - 私は今、 "こんにちは"と言うだけでなく、働くプログラムを持っています。どうもありがとう、 –

関連する問題