为什么 <= 在 Python 中计算字符串的字符范围?



我有一个任务要写一个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’,数字也是一样的,因为它们是以字符的形式存在的。

最新更新