将整数拆分为数字以计算ISBN校验和

发布于 2021-01-29 19:34:49

我正在编写一个程序,计算ISBN号码的校验位。我必须将用户的输入(一个ISBN的9位数字)读取到一个整数变量中,然后将最后一位数字乘以2,将最后一位数字乘以3,依此类推。我如何将整数“拆分”为其组成位数?由于这是一项基本的家庭作业,因此我不应该使用列表。

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    只是用它创建一个字符串。

    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)
    

    有关更多信息,请阅读教程



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看