2017-10-25 12 views
1

これまでのところ、私はPythonの入力方法に4つの単語や文を作るために「空白を埋める」

def attack(words): 
    words = ['noun', 'verb', 'adjective', 'place'] 
    print('Use your', words[2], words[0], 'and', words[1], 'towards the', words[3]+'!') 

を持っている私が入力したいのリスト:

attack([shiny, broom, jump, sky]) 

ので文がすべき読んで:あなたの光沢のあるほうきを使用し、空に向かってジャンプ!

それは印刷されています:あなたの形容詞の名詞と動詞を使用してください。

アイデアは何ですか?

+0

あなたは何かが欠けていないが、いくつかの余分な '言葉= [「名詞」、「動詞」、「形容詞」、「場所」]は常にattack''内側にあなたの 'words'のPARAMを上書きします'ありメソッド – ZdaR

答えて

4

たぶん、入力リストにあなたのインデックスが必要な単語の種類に基づいて、このような何か?

def attack(words): 
    noun, verb, adjective, place = 0, 1, 2, 3 
    print('Use your', words[adjective], words[noun], 'and', words[verb], 'towards the', words[place]+'!') 
+0

あなたのやり方もうまくいく、鉱山はタイピングが少ない。 – Aystealthy

+1

読みやすくするために重要ではありません。 –

+1

@Reblochon Masqueは読みやすさを考慮してupvoteしなければならなかった。 いつもPythonのZen: の可読性が重要です。 – Jebby

2

words = ["noun", "verb", "adjective", "place"]を削除します。

あなたはattack()機能のwordsパラメータとして[shiny, broom, jump, sky]を受け入れ、すぐに同じ名前の変数に["noun", "verb", "adjective", "place"]を割り当てることによって、その値をオーバーライドしています。また、[shiny, broom, jump, sky]の要素には、変数で文字列ではない場合を除き、引用符がありません。

あなたのコードは次のようになります。

def attack(words): 

    print("Use your", words[2], words[0], "and", words[1], "towards the", words[3] + "!") 

attack(["shiny", "broom", "jump", "sky"]) 
+0

私は攻撃を受けています([光沢、ほうき、ジャンプ、空]) NameError:名前 '光沢'が定義されていません – Aystealthy

+0

私の最後の編集を参照してください。 'shiny'、' broom'、 'jump'、' sky'が変数でない限り、引用符で囲む必要があります: '' shiny ''、 "broom"、 "jump"、 "sky" ''。 –

+0

うわー..私は完全に大丈夫だと忘れてしまった。 – Aystealthy

関連する問題