When running this code below with input that includes both letters and numbers it prints not…
# test for both numbers and letters
def multi_test(analysis_input):
alpha_test = False
number_test = False
if analysis_input.isalpha():
alpha_test = True
if analysis_input.isnumeric():
number_test = True
if alpha_test and number_test:
print(analysis_input,'is multiple charcters')
else:
print('not')
analysis_input = input('enter your string arguement')
multi_test(analysis_input)
>Solution :
You need to check for each character:
def multi_test(analysis_input):
alpha_test = False
number_test = False
for char in analysis_input:
if char.isalpha():
alpha_test = True
if char.isnumeric():
number_test = True
if alpha_test and number_test:
print(analysis_input,'is multiple charcters')
else:
print('not')
analysis_input = input('enter your string arguement')
multi_test(analysis_input)
EDIT: a perhaps faster and nicer method is using regex
^(?=.*[a-zA-Z]+)(?=.*\d+).+
# pseudo code, i'm not sure if this code works but its something like this
return bool(re.match(analysis_input, ^(?=.*[a-zA-Z]+)(?=.*\d+).+))
Idea from https://stackoverflow.com/a/24656216/10875953