Kenneth Ajagba
Kenneth Ajagba

Reputation: 13

Checksum of seven-digit number input through keyboard

I am trying to get the checksum of a seven-digit number input through the keyboard. The input would be restricted to exactly 7 digits. I already have this code below but can't get to restrict it to only 7 digits.

n = int(input("Enter number")) 
total = 0 

while n > 0: 
    newNum = n % 10
    total = total + newNum 
    n = n // 10 

print(total)

If I enter 4 digits, the code will still run. I just want to restrict it to only 7 digits.

Upvotes: 0

Views: 704

Answers (4)

Kenneth Ajagba
Kenneth Ajagba

Reputation: 13

num = str(input("Enter a seven-digit number: "))
if len(num) !=7:
    print("Please Enter a seven-digit number!")
else:
    sumNum = 0
    m = int(num)
    while m>0:
        newnum = m%10
        sumNum = sumNum + newnum
        m = m//10
    print("The sum of its digits is: ",sumNum)

Upvotes: 1

Thunder Coder
Thunder Coder

Reputation: 102

Check the length of the input before turning it into a int. Since strings can be iterated over, like list, their length can be checked in the same way as lists with the len() function. as so:

if len(n) != 7:
    print("input must be seven digits long")
    n = input("Enter number")

Upvotes: 0

Aru
Aru

Reputation: 352

Instead of instantly converting the input to an integer, keep it as a string, so you can make a condition for the length of the input.

something like:

n = input("Enter number ")
m = int(n)
total = 0

while m > 0 and len(n)==7: 
    newNum = m%10
    total = total + newNum 
    m = m//10

print(total)

Upvotes: 2

Arne
Arne

Reputation: 10545

You could keep the input number as a string, so that you have an easy way to count and sum over the digits:

s = ''

while len(s) != 7:
    s = input("Enter a 7-digit number")

total = sum(int(char) for char in s)    
print(total)

Upvotes: 1

Related Questions