2016-11-17 13 views
1

まずはコードを示します。 (関数作成時にまだ新機能)関数出力から "()" ""、 "'"を削除します。Python3

機能テスト!

def UserInfo(name, age, birth): 
    """Read this by doing UserInfo__doc__""" 
    print("Name:",name) 
    print("Age:",age) 
    print("Birth:",birth) 
    return 

n_input=input("Name?>> ") 
a_input=int(input("Age?>> ")) 
b_input=input("Birth date?(MM DD YYYY)>> ") 

UserInfo(n_input, a_input, b_input) 

CodeOutput

('name:', 'Jaymz') 
('age:', 25) 
('birth:', '02 26 1991') 

コード出力のINT部分なし "' "(私は知っていた)が、それでもと "()" と"、" ... 文字列の部分を出力私の出力を囲むことを望まないすべてのもの... あなたのコードでそれをどのように取り除くことができますか?(私は人々がそれをする方法について他のコードを最初に見ることによって学びます)

ps Brainfart?....私は出力コードで "フォーマット"をしなければならないのですか?または数字のみの形式ですか?

+0

おそらくPython 2.xでコードを実行しています。ここで、 'print'はキーワードであり、関数ではありません。かっこはタプルの作成と解釈され、このタプルが出力されます。 – jojonas

+0

はい、ありがとう、私は、ええ、私はPy2を使用している気付いた...ありがとう。 py3はそのようなコードを出力しませんか?もっときれい?または、ちょうど{}形式の下の答えを使用して開始する必要があります –

答えて

0

この出力は、Python 2.xを使用しているために表示されます。 Python 2はあなたがtupleを印刷していると思っています。 Python 3はあなたが望むものを発行します。

jojonasが示唆しているように、from __future__ import print_functionはすべてのバージョンで使用できます。あなたはそれをインポートした後に括弧なしでprintを使用することができません。これは最高です。すべてのケースを処理するために

しかし...

、(挿入するために文字列の位置を示すために{}を使用して)代わりにformatを使用します。

def UserInfo(name, age, birth): 
    """Read this by doing UserInfo__doc__""" 
    print("Name: {}".format(name)) 
    print("Age: {}".format(age)) 
    print("Birth: {}".format(birth)) 

注:これも動作しますが、通りではありません強力な:

print("Name: "+name) # would need `str` for integer, ex `str(age)` 
print("Name: %s" % name) # old-style formatting 
+0

このソリューションは少しハッキリです。はい、それはすべてのバージョンで動作しますが、 'from __future__ import print_function'のようなものはよりクリーンな方法で同じ結果を達成します。 – jojonas

+0

あなたはそれについて正しいです。しかし、ハックは多項式の 'print'が動作する方法に依存することです。 –

+0

easy {}フォーマットをありがとうございました... –

関連する問題