Как насчет этого:
def is_alnum(z):
i=1
abcnum = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z'] + [str(i) for i in range(10)]
while True:
try:
chr = z[i-1].lower()
except IndexError:
return True
try:
idx = abcnum.index(chr)
except ValueError as e:
return False
i += 1
Это приведет к:
print(is_alnum("Yeah!!"))
-> Ложь (из-за !!)
print(is_alnum("thisistrue"))
-> Верно