从函数输出中删除“()”,“和”'“.Python3

问题描述:

首先,这里是代码。 (在功能创建中还是新的)从函数输出中删除“()”,“和”'“.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会不会输出这样的代码?和更整洁?或者我应该开始以{}格式 –

你得到这个输出是因为你使用的是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

你是对的。但黑客依靠多重参数“印刷”的方式工作。 –

+0

谢谢你的{{{}}格式... –