2014-01-30 7 views
0

이 프로그램을 작성했지만 단순화 할 수 있는지 확신 할 수 없습니다. 감사합니다,간단해질 수 있습니까?

코드 :

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) 
+2

당신은 무엇을해야합니까? 사용자에게 10 자리 ISBN을 입력하도록 요청한 다음 계산 후 10 자리 ISBN에 'X'또는 10을 추가합니다. 나는 정확하게 이해 했는가? – Incognito

+0

파이썬을 사용하고 있습니다. –

답변

0

글쎄, 난 당신 너 한테 올바른 (당신이 사용하고있는 언어에 대해 확실하지)하지만, 합계 계산은 확실히 단순화 할 수 있는지 확실하지 않습니다 for 루프

sum = 0 

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

도움이된다면 Python을 사용하고 있습니다. –

+0

@ Phil 그리고 파이썬에서 배열을 반복하는 법을 배우는 것이 좋을 것이라고 확신합니다 ... –