在python中将数字转换为字符串

时间:2014-03-02 20:32:26

标签: python string

我想表达" funct"的结果。作为一个字符串,但我没有尝试过任何工作。

def funct(y):   
    rad = [2+y]
    return rad
z = 1;
a = funct(z);
print a
print str(a)
b = str(a);
print b
c = repr(a);
print c

这是我的输出:

[3]
[3]
[3]
[3]

我错过了什么?谢谢!

编辑:我的意思是我试图将它打印成没有括号的字符串。忘了把它包括在内。

2 个答案:

答案 0 :(得分:2)

您可能不希望rad成为列表。

尝试使用()代替[]

rad = (2+y)

你的功能会这样:

def funct(y):   
    rad = (2 + y)
    return rad
z = 1;
a = funct(z);
print a 
#=> "3"

答案 1 :(得分:0)

根据您问题的标题,您不希望更改funct本身,也不希望将funct的输出转换为字符串。如果要将数字更改为字符串,则需要更改funct列表输出中的值。问题是您将列表本身的repr转换为字符串,但未将值转换为列表:

>>> repr([5])
'[5]'
>>> repr(["5"])
"['5']"

您实际上想要在列表中强制转换值:

>>> repr(list(map(str, [5]))) # say `funct(3)` for example
"['5']"
>>> repr(list(str(i) for i in [5]))
"['5']"

现在,如果您真的只想将funct的输出转换为字符串,那么您已经这样做了。 Python只是不打印列表字符串表示的引号,因为它正在打印它。

>>> repr([5]); print([5])
'[5]'
[5]