Table of Contents
Issue
I am learning to create functions. The whole program basically prints only the even digits of a number, but I need to create a function that, in case the number has no even digits, will print that it doesn’t have any, but I have no idea on how to make the condition.
Thanks in advance.
So far this is the code without the function I need:
def imprimirPares (num):
while num != 0:
resultado = 0
i = 1
digito = num % 10
if digito % 2 == 0:
resultado += digito * i
i *= 10
num // 10
return resultado
def ingresarEyS (num):
print ("Nuevo numero con los valores pares de la cifra: ")
num = ()
print ("El nuevo numero es ",imprimirPares(num),".")
Solution
Using your already existing function this is fairly easy. One error you have made is that you do not assign the result of num // 10
to num
though.
def has_even_digit(num):
while num != 0:
result = 0
i = 1
digit = num % 10
if digit % 2 == 0:
# even digit found
return True
else:
result += digit * i
i *= 10
num = num // 10
return False
print(has_even_digit(45))
print(has_even_digit(13))
print(has_even_digit(1579315))
print(has_even_digit(780278452))
Expected output:
True
False
False
True
EDIT
As @Sash Sinha pointed out this solution only works for positive integers. Adjusting it for all integers is easy though using num = abs(num)
before starting the while loop.
If you need this to work for float
or complex
a solution using str
will be easier to implement and cleaner as demonstrated in @Sash Sinha’s answer below.
Answered By – Mushroomator
Answer Checked By – Robin (BugsFixing Admin)