2016-08-18 4 views

答えて

1

あなたは、あなたが同じ(タプル)あなたの関数の出力を維持したいと仮定すると、

a = input("Enter string: ") 
b = input("Enter another: ") 

def switch(x, y): 
    return y, x 

print(' '.join(switch(a, b))) 

小型ノート:スペースで区切られたタプルを印刷するには、使用joinを使用することができ、私はこの方法で、他の2行は、この場合に必要と思われなかったことから、ちょうどreturn y, xする方法を変更: )

+0

は今や理にかなっています。しかし、 '' .join関数はどのように文字を削除しますか? –

+1

ああ、実際には文字は削除されません。タプル自体を出力するだけで、括弧と引用符が追加され、文字列のタプルの文字列表現が提供されます。同じことがリストにあります... '['hello'、 'world']'として初期化されたPythonリストを出力すると、 '['hello'、 'world']'として引用符と括弧でそれがリストであることを示します(リスト内の文字列とは対照的に)。 – Karin

1

switchの戻り値は、2つの項目(1組)のタプルで、print関数に渡され、1つの引数として渡されます。 printは、それぞれの引数を暗黙的にstrの文字列に変換し、('', '')はこのタプルの文字列表現に由来します。

あなたが望むのは、ペアの各アイテムを別々に渡すことです。

これは、Python 3で、あなただけの1つの文字を追加する必要があるとして:

print(*switch(a, b)) 

*は「別々の位置引数として次のiterableの要素を渡す」という意味なので、この場合は省略形(です)for

value = switch(a, b) 
print(value[0], value[1]) 

印刷は通常、値を単一のスペースで区切って表示します。

print(*switch(a, b), sep=', ') 

最後に、あなたの例では str()が不要なようです:あなたは別のセパレータをしたい場合は、たとえば ,のために、あなたは sepキーワード引数を使用することができます。

関連する問題