题 在Python中将整数转换为字符串?


我想在Python中将整数转换为字符串。我是徒劳地捣蛋:

t=raw_input()
c=[]
for j in range(0,int(t)):
    n=raw_input()
    a=[]
    a,b= (int(i) for i in n.split(' '))
    d=pow(a,b)
    d.str()
    c.append(d[0])
for j in c:
    print j

当我尝试将其转换为字符串时,它显示的错误就像 int 没有任何属性调用 str


994
2018-06-07 10:22


起源


所以,你试过d2 = str(d)c.append(d2 [0])是你想要的吗? - nik
使用str(d)获取整数的字符串形式。 - Arnab Ghosal
blog.amir.rachum.com/post/48428590088/... - Amir Rachum


答案:


>>> str(10)
'10'
>>> int('10')
10

文档链接:

问题似乎来自这条线: d.str()

转换为字符串是使用内置函数完成的 str() 功能,基本上叫做 __str__() 其参数的方法。

此外,没有必要打电话 pow()。尝试使用 ** 运营商。


1569
2018-06-07 10:24



为什么str(012)返回'10'? - Aryaveer
@Aryaveer:因为0是Python 2中八进制表示的前缀,就像0x是十六进制的那样(在Python 3中它是八进制的“0o”)。因此对于 str()通过 012 和传球一样 10。 - Bastien Léonard
@Aryaveer你听到这个笑话“为什么计算机程序员会把万圣节与圣诞节混为一谈?”因为10月31日= 12月25日。在C和许多其他语言中,以0开头的数字也是八进制数 - phuclv
只是一个说明。这不会再发生了。 str(012)给出SyntaxError:无效的令牌。 - Bayko
惊讶,我将检查类型为false-true:UnicodeEncodeError:'ascii'编解码器无法编码位置332-333中的字符:序数不在范围内(128) - nerkn


尝试这个:

str(i)

81
2018-06-07 10:23



我喜欢这样的答案。根据提问者的知识正确回答问题。谢谢。 - quemeful


Python中没有类型转换和类型强制。您必须以明确的方式转换变量。

要转换字符串中的对象,请使用 str() 功能。它适用于任何具有调用方法的对象 __str__() 定义。事实上

str(a)

相当于

a.__str__()

如果要将某些内容转换为int,float等,则相同。


43
2018-06-07 10:30





a = 2

您可以使用 str(a) 它给你一个字符串对象 int(2)


20
2018-02-10 18:47



为什么这会得到投票?它刚刚复制了4年前的原始答案! - Rambatino
为什么人们购买Windows?它只是复制了苹果4年前所做的事情 - quemeful
点击Rambatino的个人资料 噢!他是一个iOS人:) - quemeful


要管理非整数输入:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0

好的,如果我使用你的最新代码并重写一下以使其与Python一起使用:

t=raw_input()
c=[]
for j in range(0,int(t)):
    n=raw_input()
    a=[]
    a,b= (int(i) for i in n.split(' '))
    d=pow(a,b)
    d2=str(d)
    c.append(d2[0])
for j in c:
    print j

它给了我类似的东西:

>>> 2
>>> 8 2
>>> 2 3
6
8

这是字符串结果的第一个字符 pow(a,b)。 我们在这里做什么?


14
2018-06-07 10:32





>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5

12
2018-06-07 10:24





在我看来,最体面的方式是``。

i = 32   -->    `i` == '32'

6
2018-05-05 21:55



请注意,这相当于 repr(i),所以对多头来说会很奇怪。 (尝试 i = `2 ** 32`; print i)
这已在python 2中弃用,并在python 3中完全删除,所以我不建议再使用它了。 docs.python.org/3.0/whatsnew/3.0.html#removed-syntax - teeks99


可以使用 %s 要么 .format

>>> "%s" % 10
'10'
>>>

(要么)

>>> '{}'.format(10)
'10'
>>>

3
2017-12-11 10:57





对于想要将int转换为特定数字字符串的人,建议使用以下方法。

month = "{0:04d}".format(localtime[1])

有关更多详细信息,请参阅Stack Overflow问题 显示前导零的数字


1
2018-02-09 01:57





在Python => 3.6中你可以使用 f 格式:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>

0
2017-07-20 13:55