我有一个任务要写一个python程序,要求用户输入一个字符,然后检查它是字母数字(不是特殊字符(还是数字,或者两者都不带,并打印它是什么。
出于好奇,我测试了下面的方法,认为它会返回错误或打印无效输入。但你瞧,它确实很完美,但我不知道为什么。
c = input("Enter a character: ")
if 'a' <= c.lower() <= 'z' and len(c) == 1: # .lower() in case the input is either capital or lowercase
print('Your character', "'" + c + "'", 'is an alphabetical letter')
elif '0' <= c <= '9' and len(c) == 1:
print('Your character', "'" + c + "'", 'is a digit')
else:
print('Invalid input')
根据价值比较文档:
字符串(
str
的实例(使用其字符的数字Unicode代码点(内置函数ord()
的结果(进行字典比较。
它将字符的ASCII值与'a'&'的ASCII值进行比较z’,数字也是一样的,因为它们是以字符的形式存在的。