Originally written in C (which was abysmal, you may check here if you want), I rewrote my simple credit card validation program using Python

```
def main():
# Prompts user for card number
nums = int(input("Number: "))
if len(str(nums)) > 16 or len(str(nums)) < 12:
print("INVALID")
else:
card_classify(card_luhn(nums), nums)
# Luhn's Algorithm
def card_luhn(nums):
tmp = str(nums)
digit_sum = 0
# Loops through the digits that needs to be multiplied by 2
for i in range(2, len(tmp) + 1, 2):
digits = 2 * int(tmp(-i))
# Condition if resulting product has 2 digits
if_sum = 0
if len(str(digits)) == 2:
for digit in str(digits):
if_sum += int(digit)
digits = 0
if_sum += digits
digit_sum += if_sum
# Loops through the digits that does not need to be multiplied by 2
for i in range(1, len(tmp) + 1, 2):
digits = int(tmp(-i))
digit_sum += digits
if digit_sum % 10 == 0:
return 0
else:
return 1
# Classifies the card whether AMEX, VISA, or MASTERCARD
def card_classify(check, nums):
num = int(str(nums)(:2))
if check != 0:
print("INVALID")
# AMEX condition (first two digits from left are either 37 or 34)
elif num == 37 or num == 34:
print("AMEX")
# VISA condition (first digit from left is 4)
elif str(num)(:1) == "4":
print("VISA")
# MASTERCARD condition (first two digits from left are between 50 and 56)
elif num > 50 and num < 56:
print("MASTERCARD")
else:
print("INVALID")
if __name__ == "__main__":
main()
```

Could someone please review my code if it follows good practice and style? I want to be more Pythonic as I continue to learn.

I also think that my implementation of Luhn’s Algorithm could be improved, considering I looped over the card number twice.