我想表达" 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]
我错过了什么?谢谢!
编辑:我的意思是我试图将它打印成没有括号的字符串。忘了把它包括在内。
答案 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]