2016-10-11 11 views
-1
import math 
def roundup(x): 
return int(math.ceil(x/10.0)) * 10 
w=0 
while w == 5: 
print("Would you like to *work out* a missing letter in a GTIN-8 code, or *check* a code?") 
response = input(":") 
if response == 'work out': 
    print("Input a 7 digit GTIN-8 code and I'll work out the 8th") 
    c1 = int(input("Enter FIRST number: ")) 
    c2 = int(input("Enter SECOND number: ")) 
    c3 = int(input("Enter THIRD number: ")) 
    c4 = int(input("Enter FOURTH number: ")) 
    c5 = int(input("Enter FIFTH number: ")) 
    c6 = int(input("Enter SIXTH number: ")) 
    c7 = int(input("Enter SEVENTH number: ")) 

    y = (c1*3+c2+c3*3+c4+c5*3+c6+c7*3) 
    ru2=roundup(y) 
    GTIN8 = ru2-y 
    print("Your GTIN8 Code would be: "+str(c1)+str(c2)+str(c3)+str(c4)+str(c5)+str(c6)+str(c7)+str(GTIN8)) 
    print("Wanna work out another?") 
if response == 'check': 
    print("Input a 8 digit GTIN-8 code and I'll check if it's correct") 
c1 = int(input("Enter FIRST number: ")) 
c2 = int(input("Enter SECOND number: ")) 
c3 = int(input("Enter THIRD number: ")) 
c4 = int(input("Enter FOURTH number: ")) 
c5 = int(input("Enter FIFTH number: ")) 
c6 = int(input("Enter SIXTH number: ")) 
c7 = int(input("Enter SEVENTH number: ")) 
c8 = int(input("Enter EIGTH number: ")) 
y = (c1*3+c2+c3*3+c4+c5*3+c6+c7*3) 
ru2=roundup(y) 
GTIN8 = ru2-y 
if GTIN8 != c8: 
    print("Nope that product code is incorrect!") 
    reply=input("Want to know the correct answer to your code? Type yes if so: ") 
if reply == 'yes': 
    print("The correct answer would have been: "+str(GTIN8)) 
if GTIN8 == c8: 
    print("That code is correct!") 

Проблема в том, что я снова и снова пробовал, чтобы сделать этот код меньше.Как отредактировать этот код, чтобы сделать его короче?

Даже путем ввода «отклика» в виде строки, чтобы позволить пользователю вводить код за один раз.

Если вы еще не указали, это код для кода продукта GTIN-8, и я знаю, что есть другие другие коды GTIN-8, но я просто не мог этого сделать, не говоря уже о копировании.

+1

Функциональный код, который вы хотите улучшить, может быть отправлен на проверку кода. Stackexchange –

+0

выполняет функцию ввода ваших 7 номеров, а затем повторно использует эту функцию для обоих случаев. для того, кому понадобится 8-й вход, либо держите линию у вас сейчас, либо у вас есть функция bool, которая означает, нужно ли ей запрашивать 8. вы можете вернуть список со всеми вашими значениями. –

+0

Предлагаю вам ознакомиться с http://codereview.stackexchange.com/ –

ответ

-1

, чтобы вы начали, вот один простой способ уменьшить количество линий

c = [int(x) for x in input("Input a 8 digit GTIN-8 code and I'll check if it's correct").split("")] 

Теперь вы можете получить доступ каждый символ с c[n].