2017-06-02 4 views
-3

趣味を入力すると、たとえばgamingと入力すると、同じ趣味を複数回入力するとどうやってプロンプトが表示されますか?特定の趣味がすでに入力されているかどうかを確認するためにpythonの入力機能と同じ回答を以下のように入力したときにプロンプ​​トを表示する方法

hobbies = [] 

chance=3 
while chance>0: 
    hobbie= input("What's your hobbie\n") 
    chance=chance-1 
    hobbies.append(hobbie) 

print (hobbies) 
+3

問題ではなく、外部サイトへのリンクであなたのコードを投稿してください。 –

+2

そして画像ではなく_テキスト_として投稿してください。コードブロックを強調表示してCtrl + Kを押すか、 '{}'ボタンをクリックして4つのスペースをインデントすると、スタックオーバーフローによってコードとしてレンダリングされます。 – Chris

+0

それを指摘してくれてありがとう。 –

答えて

1

だけ使用し、if文:私はそれが

マイコードを重複趣味を受け入れたくありません。それがリストに追加されず、ループカウンターは更新されません。これらの2つの行を置き換えるには、次の行をループに入れます。

hobbie = input("what's your hobbi\n") 
if hobbie not in hobbies: 
    chance -= 1 
    hobbies.append(hobbie) 
else: 
    print("Hobby already entered.") 
0

別のwhile文を追加

hobbies = [] 

# Add your code below! 
change = 3 

while change > 0: 
    hobbie = raw_input("What's your hobbie\n") 
    while hobbie in hobbies: 
     hobbie = raw_input("Hobbie already in list. What's your hobbie\n") 
    change -=1 
    hobbies.append(hobbie) 

print hobbies 
+0

これは正しいがO(n)の複雑さを2倍にする?なぜ、余分なループの代わりにループ内の条件を使用しないのですか? – Jeremy

+0

私は条件が間違っている間にあなたの第2を考えます。複雑さも倍増するとは思わない。あなたはまた、それが割り当てられる前にホビーを参照します。 –

+0

@ MarkBeilfussバグが2つありました –

-1

セットに趣味を保管してください。趣味を入力したら、それがinキーワードでセットに含まれているかどうかを確認します。

例:

hobbies = set() 
done = False 
while not done: 
    hobby = input('What is your hobby? ') 
    if hobby.lower() not in hobbies: 
     hobbies.add(hobby.lower()) 
     done = True 
    else: 
     print('You've already entered that hobby! Try again.') 
+0

あなたは私の答えをdownvoteしようとしている場合、少なくともそれが役に立たない理由を言うために礼儀を持っています。 @MehulChaturvediはデータに重複を望まないと言っているので、セットを使うことはこれを達成する最も簡単で効果的な方法です。 –

関連する問題