Python 2.7 将unicode字符转换为浮动Python

Python 2.7 将unicode字符转换为浮动Python,python-2.7,Python 2.7,我用Python 3.6编写了以下代码: u"\u2500" * 4 这给了我“────" 但是,当我在Python 2.7.15中运行代码时,会出现以下错误: TypeError:无法将序列与“float”类型的非int相乘 似乎整数4变成了浮点(4.0)。为什么会发生这种情况 我试过这个,它成功了: u"\u2500" * int(4) 谁能给我解释一下为什么整数转换成浮点数? 转换回int是解决我的问题的正确方法吗?似乎您运行的是u“\u250

我用Python 3.6编写了以下代码:

u"\u2500" * 4
这给了我“────"

但是,当我在Python 2.7.15中运行代码时,会出现以下错误:

TypeError:无法将序列与“float”类型的非int相乘

似乎整数4变成了浮点(4.0)。为什么会发生这种情况

我试过这个,它成功了:

 u"\u2500" * int(4)
谁能给我解释一下为什么整数转换成浮点数? 转换回int是解决我的问题的正确方法吗?

似乎您运行的是
u“\u2500”*4.0
,而不是
u“\u2500”*4
。然后错误就很明显了。 所以在调用之前,您应该重新检查代码。问题似乎不在这里,而是在更高的地方

您始终可以打开控制台并检查这样的行为

etoneja@ois ~ $ python2
Python 2.7.18rc1 (default, Apr  7 2020, 12:05:55)
>>> u"\u2500" * 4
u'\u2500\u2500\u2500\u2500'
>>> print u"\u2500" * 4
────
>>> print u"\u2500" * 4.0
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
etoneja@ois~$python2
Python 2.7.18rc1(默认值,2020年4月7日,12:05:55)
>>>u“\u2500”*4
u'\u2500\u2500\u2500\u2500'
>>>打印u“\u2500”*4
────
>>>打印u“\u2500”*4.0
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:无法将序列与“float”类型的非int相乘