2017-01-13 5 views
0

ユーザーの入力からリストに項目を追加するのに問題があります。ここで何をしようとしているのか分かりますアイテムをリストに追加し、その後に表示させることができます。条件:FORループと何らかの形式のデータ検証が含まれている必要があります。pythonでリストを追加する+入力したデータを検証する

def main(): 
    num=int(input("How many values would you like in your list?")) 
    for x in range(num) 
     myList=[] 
     newValue=input("Enter the text you would like to add") 
     myList.append(newValue) 
    print(myList) 
+5

、あなたの質問は何ですか? 1つの明白な問題は、myListを内側ではなくループの前に定義する必要があることですが、何を求めていますか? –

答えて

0

試してみてください!

def main(): 
    num=int(raw_input("How many values would you like in your list? ")) 
    myList=[] 
    for x in range(num): 
     newValue = raw_input("Enter the text you would like to add ") 
     myList.append(newValue) 
    print(myList) 
0

あなたのコードの1つの問題は、ニーズのためのものです。最後にあります。

しかし主なのは、各繰り返しの開始時にmyListを空リストにリセットするということです。その結果、入力したものは空のリストに追加されます(したがって、単一値リスト)。

1

問題

あなたがリストにループ内myList = []としてたびに初期化されています。追加したデータはすべて失われます。

またrange(num)の後に:がありません。

ソリューション

単純にループの外にそれを初期化します。

def main(): 
    num=int(input("How many values would you like in your list?")) 
    myList=[] # This needs to be initialized outside the loop 
    for x in range(num): 
     newValue=input("Enter the text you would like to add") 
     myList.append(newValue) 
    print(myList) 

if __name__ == '__main__': 
    main() 
0

さて、あなたは複数のミスを持っている:

  • あなたは空のリストにforループのすべての単一の反復をmyListを再割り当てするので、あなたはforループ

  • にコロンが不足していますリストには最後に1つの値しかありません

機能を呼び出す必要がありますこのように、コードは次のようになります。だから、

def main(): 
    num=int(input("How many values would you like in your list?")) 
    myList = []    # Create the list here instead 
    for x in range(num):  # Colon is needed 
     newValue = raw_input("Enter the text you would like to add: ") 
     myList.append(newValue) 
    print(myList) 

main()      # Call the function 
関連する問題