Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将数字转换为字符串_Python_String - Fatal编程技术网

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

在python中将数字转换为字符串,python,string,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] 我错过了什么?谢谢 编辑:我的意思是,我试图将其打印为一个没有括号的字符串。忘了把它包括进去。你可能不希望

我试图将“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]
我错过了什么?谢谢


编辑:我的意思是,我试图将其打印为一个没有括号的字符串。忘了把它包括进去。

你可能不希望
rad
成为一个列表

尝试使用
()
而不是
[]

rad = (2+y)
您的功能将按如下方式工作:

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

根据问题的标题,您不想更改
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']"
实际上,您希望在列表中强制转换值:

>>> 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]

你想要什么结果<代码>3
[“3”]
?您的第一个
print
隐式调用
str
,第二个和第三个
print
执行的操作完全相同。第四个
print
使用
repr
,这恰好相当于带有整数的列表的
str
。如果您只想
funct
返回
2+4
,请使用
rad=(2+y)
或只使用
rad=2+y
,因为
[2+y]
创建了一个包含一个元素的列表。
str(a)
是一个字符串,有什么问题吗?只需使用切片表示法访问它:即
a[0]
生成
“3”
这是一个完美的复制品。谢谢