Nov-05-2018, 05:46 PM
Changed code to
def digit_sum(LIST): for i in range(len(LIST)): value = str(LIST[i]) digits = [int(x) for x in value] credit_card.append(sum(digits)) def checker(s): list_of_numbers=[] string_to_use="" if("-" in s): list_of_numbers=s.split("-") for character in list_of_numbers: string_to_use+=character string_return=string_to_use string_to_use="" return string_return if(" " in s): list_of_numbers=s.split(" ") for character in list_of_numbers: string_to_use+=character string_return=string_to_use string_to_use="" return string_return if("," in s): list_of_numbers=s.split(",") for character in list_of_numbers: string_to_use+=character string_return=string_to_use string_to_use="" return string_return if("*" in s): list_of_numbers=s.split("*") for character in list_of_numbers: string_to_use+=character string_return=string_to_use string_to_use="" return string_return if("." in s): list_of_numbers=s.split(".") for character in list_of_numbers: string_to_use+=character string_return=string_to_use string_to_use="" return string_return else:return s credit_card=[] credit_card_sum=[] credit_card_sum_digit=[] credit_digits_sum=0 user1_input=input() user_input=checker(user1_input) while user1_input!="end" and user1_input!="END": user_input=checker(user1_input) if( not user_input.isdigit()): print("False") elif(user_input.isdigit() and len(user_input)>16): print("False") else: credit_card_int=[int(x) for x in user_input] if credit_card_int[0]<4 or credit_card_int[0]>=7: print ("False") else: for i in range(0,len(credit_card_int),2): credit_card_int[i] = credit_card_int[i]*2 digit_sum(credit_card_int) for i in range(len(credit_card)): credit_digits_sum=credit_digits_sum+credit_card[i] if credit_digits_sum %10 ==0: print ("True") else: print ("False") user1_input=input()but outputs wrong bool with input 54 97357 170632 130