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
用Python中的字符串和整数生成字符串_Python_Python 3.x - Fatal编程技术网

用Python中的字符串和整数生成字符串

用Python中的字符串和整数生成字符串,python,python-3.x,Python,Python 3.x,当我尝试获取一个整数并在其前面加上“b”时,将其转换为字符串时,会出现此错误: File "program.py", line 19, in getname name = "b" + num TypeError: Can't convert 'int' object to str implicitly 这与此功能相关: num = random.randint(1,25) name = "b" + num 或 正如S.Lott所指出的,Python3及更高版本不推荐使用混合运算符

当我尝试获取一个整数并在其前面加上“b”时,将其转换为字符串时,会出现此错误:

  File "program.py", line 19, in getname
    name = "b" + num
TypeError: Can't convert 'int' object to str implicitly
这与此功能相关:

num = random.randint(1,25)
name = "b" + num


正如S.Lott所指出的,Python3及更高版本不推荐使用混合运算符“%”。我偷了“mingle”这个名字,但这就是我谈论它的方式,我想看到它至少有一次在印刷品中出现——就像渡渡鸟一样——它从地球上消失了。

是的,python没有隐式的int到string的转换


请尝试
str(num)
而不是Python不会像JavaScript或PHP等语言那样自动转换类型

您必须将其转换为字符串,或使用格式化方法

name="b"+str(num)
或printf样式的格式(在python3中已被弃用)

或者新的.format字符串方法

name="b{0}".format(num)

已经给出了正确的答案,但我想插话说,每当您打算将var用作字符串时,都应该始终使用str(var),无论您是否知道它是字符串

安全总比抱歉好。

Python 3.6提供了一个无需使用
格式即可直接放置变量名的功能:

>>> num=12
>>> f"b{num}"
'b12'

Python 3中不推荐使用%。可能要删除那个。我现在似乎无法编辑它,所以这里注意到%已被弃用。另外值得一提的是.format在Python2.6之前是不可用的。Python3中不推荐使用%。可能需要删除该选项。@S.Lott我必须在一些使用python的系统上工作@S.Lott%在Python3中不受欢迎。明确提到新系统不会与现有字符串格式化技术的任何方法名称发生冲突,因此这两个系统可以共存,直到弃用旧系统。但是,最糟糕的情况是什么?打字错误?说明了为什么Python不像Javascript那样将
+
的RHS转换为
str
。这让我有点惊讶,但这个答案很好地解释了这一点。
name="b%s" % (num,)
name="b{0}".format(num)
name = "b{0:d}".format( num )
>>> num=12
>>> f"b{num}"
'b12'