2017-09-10 7 views
0

リストは各番号の2乗を取ることになっています。私はそれを行うことができたが、私はシーケンスの最後のカンマを削除する必要があります。整数リストの最後のカンマを削除するには?

私はこのコードを使用する場合:

def multiplicator(): 
     for a in range(3, 20): 
      b = (a*a) 
      print(b, end=",") 

multiplicator() 

を私が手:

9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361, 

答えて

-1

あなたのループを維持し、条件を追加することができます。

def multiplicator(): 
    for a in range(3, 20): 
     b = (a*a) 
     print(b, end="") 
     if a<19: # if not the last element 
      print(end=",") # print "," 
    print() # print new line after everything 

multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361 

ます。また、コードを短くする三元状態を使用することができます。

def multiplicator(): 
    for a in range(3, 20): 
     b = (a*a) 
     print(b, end="," if a<19 else "") 

    print() # print new line after everything 
multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361 
+0

ありがとうございますdown-votingなぜならコメントしなくても正解です。 –

+2

私は投票しませんでしたが、他の回答を見ると、あなた自身ですべてを把握できるはずです...答えが「うまくいく」ことが自動的にはうまくいかないからです。 – martineau

+0

@martineau私はそれをよりうまくできました。私は結合を使う方法を知っています。私は意図的にコードをそのまま残しました。私はOPが初心者であり、彼のコードを可能な限り近づけたいと思っています。彼は私の答えを受け入れ、他の人は受け入れなかった。これはおそらく割り当てであるため、参加を許可することさえできません。 –

6

あなたが最後に余分なものを追加しないで処理する文字列の間の区切り文字を追加するためにstr.joinを使用することができます。

>>> ','.join(str(a*a) for a in range(3, 20)) 
'9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361' 
0

簡単なオプションは次のようになります。

def multiplicator(): 
    for a in range(3, 19): 
     print(a*a, end=',') # directly a*a, no need for an intermediate variable 
    print(19*19) 

汎用ソルチオNは次のようになります。

def multiplicator(n): 
    for a in range(3, n-1): 
     print(a*a, end=',') 
    print((n-1)*(n-1)) 

出力:

>>> multiplicator(20) 
9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361 

注:

これは何をしようとすると、シンプルで同様のアプローチですが、あなたは間違いなく行くべき@CoryKramer'sの回答を使用してstr.join()

関連する問題