2017-10-26 8 views
-1

だから私は次の関数を作っ:関数内の変数間に「..」を追加するにはどうすればよいですか?

def marble_stats(a): 
big_box=a//48 
small_box=(a-big_box*48)//8 
excess=a-((big_box*48)+(small_box*8)) 
cash=26*big_box+4*small_box-excess*2 
return big_box,small_box,excess,cash 

final=marble_stats(503) 
print(final) 

私は実行すると、私が得る:(0、0、7、-14)

しかし、私は必要なものは、(0..0..7です。 -14)。変数を文字列に変換して ".."と連結しようとしましたが、カンマが消えないようです。これをどうやって回避するのですか?アウト

+1

"*私は変数を文字列に変換し、それらを '..' *と連結してみました。あなたの試み?どのようなアウトプットを得ましたか?それは正しいアプローチのように思えます。 – larsks

+0

シンプルです。 'final = '..'。join(marble_stats(503))' –

+0

これで作業が終了しました。私は最初に間違った何かをしたに違いない。しかし、返信いただきありがとうございます! – Spectre

答えて

-2
def marble_stats(a): 
    big_box=a//48 
    small_box=(a-big_box*48)//8 
    excess=a-((big_box*48)+(small_box*8)) 
    cash=26*big_box+4*small_box-excess*2 
    return str(big_box)+'..'+str(small_box)+'..'+str(excess)+'..'+str(cash) 

final=marble_stats(503) 
print(final) 

:10..2..7..254

1

ここで、あなたに選択肢を与えるために、私の意見では、それを行うための、より神託の方法である:

def marble_stats(a): 
    big_box=a//48 
    small_box=(a-big_box*48)//8 
    excess=a-((big_box*48)+(small_box*8)) 
    cash=26*big_box+4*small_box-excess*2 
    return_list = [big_box,small_box,excess,cash] 
    return '..'.join(str(x) for x in return_list) 

final=marble_stats(503) 
print(final) 

出力

10..2..7..254 
+1

合意された 'str.join'は、ここでの正しい解決策です。繰り返しの文字列連結である[Schlemiel the Painter's algorithm](https://en.wikipedia.org/wiki/Joel_Spolsky#Schlemiel_the_Painter.27s_algorithm)ではありません。オプションで、 '' .. '。join(map(str、return_list)) 'は、簡潔さやスピードのために使うことができますが、ここでもっと快適に感じられるものを使用してください。 – ShadowRanger

+0

@ShadowRanger良い点!フィードバックいただきありがとうございます。読みやすさのためにこのようにしておきますが、あなたはまったく正しいパフォーマンスを得ています。 – scharette

関連する問題