2016-08-24 10 views
1

に私は、Pythonに新たなんだ、とばかり遊んで、このコードの異なる特徴を学ぶことを得る。(注意をお読みください)のPython 3、変数はループ

less = ["science", "maths"] 

for i in range(0,len(less)): 
    a = ("You have got; " + (less[i])) 
    b = (a) 
    #By putting in print here I figured out that it added science first then maths overrides it. 
    print(b) 

print (b) 

あなたは文字列を印刷する瞬間現時点では、それは言う:

は「あなたが持っている、数学の」

しかし、私はそれを言うために取得しようとしていた。

「あなたが持っている、科学の数学」

基本的には、変数に追加する方法を見つけようとしています。もう一方を上書きしないようにしています。最後に印刷すると、科学と数学の両方があります。私は、リストの長さを持っている必要が理由であるそれに展開するつもりです

がループ等

+2

すべての反復で 'a'の値を上書きしていますが、何を期待しましたか?あなたは文字列を連結する方法を知っています、確かにこれを理解することができますか? –

+0

あなたが「それを見つけ出す」ことができれば、このウェブサイトには何の指摘もありません。 2つの無意味なコメント後者は、Pythonを使い始める人にとっては非常に複雑です。 – d1ll1nger

答えて

1

であるあなたは、リストに単にオブジェクトを反復処理するとprint文が行を終了しないことができます。これを実現するために

less = ["science", "maths"] 

print ("You have got; ", end="") 
for i in less: 
    print (i, end=" ") 
0

、使用join

>>> less = ["science", "maths"] 
>>> print("You have got; %s" % ' '.join(less)) 
You have got; science maths 

説明:joinはあなたに必要な文字列の末尾に追加することができ、単一のstringとして、リスト内の要素を結合し

+1

文字列の連結を避けて 'print( 'You have got;'、 '.join(less))'を使用してください。 –

+0

文字列を連結しないで印刷するのはなぜですか? – syntonym

+0

私の答えをチェックしてください:http://stackoverflow.com/questions/39117991/python-3-variables-in-loops/39118066#39118066それは文字列が不変であり、次の連結がメモリ内に新しいオブジェクトを生成するからです。 – turkus

1
less = ["science", "maths"] 
print ('You have got; {}'.format(' '.join(less)))