我正在编写一个程序,计算ISBN号码的校验位。我必须将用户的输入(一个ISBN的9位数字)读取到一个整数变量中,然后将最后一位数字乘以2,将最后一位数字乘以3,依此类推。我如何将整数“拆分”为其组成位数?由于这是一项基本的家庭作业,因此我不应该使用列表。
只是用它创建一个字符串。
myinteger = 212345 number_string = str(myinteger)
够了 现在您可以对其进行迭代:
for ch in number_string: print ch # will print each digit in order
或者您可以将其切片:
print number_string[:2] # first two digits print number_string[-3:] # last three digits print number_string[3] # forth digit
或更妙的是,不要将用户的输入转换为整数(用户键入字符串)
isbn = raw_input() for pos, ch in enumerate(reversed(isbn)): print "%d * %d is %d" % pos + 2, int(ch), int(ch) * (pos + 2)
有关更多信息,请阅读教程。