Python - 从一个整数中提取一个字符
我试图在python中提出一个算法,要求您插入一个数字,然后从插入的数字打印出数百,数十和单位。Python - 从一个整数中提取一个字符
我想要做的是从与数百对应的数字中提取字符,并将其打印为数百个以及几十个单位。
举例来说,我已经试过到目前为止做的是:
number = 321
print 'Hundreds: ', number[1]
然而,当我试图运行的是,我得到的消息:
TypeError: 'int' object is not subscriptable
是不可能做我想要的东西?
尝试str(number)[1]
。您首先必须将数字转换为字符串。
请注意,这不是最优雅的解决方案。您可能想尝试使用(number // 100)%10
。因此,number
必须是int
。 //
表示整数除法。
变化
number = 321
到
number = str(321)
尝试print 'Hundreds:', str(number)[-3] if number >= 100 else '0'
要获得数百应该是'STR(数字)[0]'。 – 2012-01-27 15:05:55
@RikPoggi:是的。我想,我只是从这个问题上继承了同样的错误。实际上,如果您不知道数字中有多少数字(检查长度以确保至少有三个数字),使用'str(number)[ - 3]'可能会更好。 – 2012-01-27 15:07:45
(+1)对,这样更好! – 2012-01-27 15:24:28
你必须做出一个字符串第一,尝试...
str(number)[1]
print 'Hundereds: ', str(number // 100)[-1]
print 'Tens: ', str(number // 10)[-1]
print 'Ones: ', str(number)[-1]
你应该整数转换成字符串之前:
number = 321
s = str(number)
hundreds = s[0]
整数除法是最好的解决方案。对于数百个,除以100,然后模10(你的代码得到10个位置)。这仅适用于Python 2.x。在3.x中,除法是浮点数。 *编辑:*使它向前兼容,使用'//'运算符来代替'/'。 – FakeRainBrigand 2012-01-27 14:53:45
Humm ...这工作! 虽然我会尝试两种方式。看哪一个更好。 Thaks的帮助! XD – 2012-01-27 15:09:45
@ThiG。我想这两个工作,但通常没有字符串转换的方式应该更快。 – phimuemue 2012-01-27 15:25:46