Python 这可以简化吗

Python 这可以简化吗,python,Python,我已经写了这个程序,但我不确定它是否可以简化。谢谢 代码: ISBN=input('Please enter the 10 digit number: ') while len(ISBN)!= 10: print('Please make sure you have entered a number which is exactly 10 characters long.') ISBN=int(input('Please can you enter the 10 digit n

我已经写了这个程序,但我不确定它是否可以简化。谢谢

代码:

ISBN=input('Please enter the 10 digit number: ')

while len(ISBN)!= 10:
    print('Please make sure you have entered a number which is exactly 10 characters long.')
    ISBN=int(input('Please can you enter the 10 digit number: '))
    continue
else:
    Digit1=int(ISBN[0])*11
    Digit2=int(ISBN[1])*10
    Digit3=int(ISBN[2])*9
    Digit4=int(ISBN[3])*8
    Digit5=int(ISBN[4])*7
    Digit6=int(ISBN[5])*6
    Digit7=int(ISBN[6])*5
    Digit8=int(ISBN[7])*4
    Digit9=int(ISBN[8])*3
    Digit10=int(ISBN[9])*2
    Sum=(Digit1+Digit2+Digit3+Digit4+Digit5+Digit6+Digit7+Digit8+Digit9+Digit10)
    Mod=Sum%11
    Digit11=11-Mod
    if Digit11==10:
       Digit11='X'
    ISBNNumber=str(ISBN)+str(Digit11)
    print("Your final answer nuber is " + ISBNNumber)

嗯,我不确定您的算法是否正确(也不确定您使用的语言),但肯定可以使用for循环简化求和计算

sum = 0

for (i = 0; i < 10; i++) {
    sum += (ISBN[i] * (11 - i))
 }
sum=0
对于(i=0;i<10;i++){
总和+=(ISBN[i]*(11-i))
}

你想干什么?你要求用户输入一个10位数的ISBN,然后经过一些计算,在10位数的ISBN后面加上“X”或10。我理解正确了吗?如果这对你有帮助的话,我正在使用python。@菲尔,我相信学习如何在python中迭代数组是很好的。。。