Python 比较运算符(大小比较、字符串比较)
1. 数值大小比较运算符
| 符号 | 含义 |
|---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 判断相等 |
!= | 判断不相等 |
运算结果只会返回2种布尔值:True(成立)、False(不成立)
>>> 3==3
True
>>> 3!=4
True
>>> 3!=3
False
>>> 5>4
True
>>> 10<2
False
>>> 10<11
TrueCode language: PHP (php)
2. 字符串大小比较
重点:字符串必须加引号,不加引号会被识别成变量名,报
NameError错误。
# 错误写法,a A被当成变量
>>> a<A
NameError: name 'A' is not defined
# 正确写法,带上单/双引号
>>> 'a'<'A'
FalseCode language: PHP (php)
ASCII字符排序规则
大写A ~ Z 小于 小写a ~ z
顺序:A < Z < a < z
示例:
>>> "a">"b"
False
>>> "A">"b"
False
>>> "a">"Z"
TrueCode language: PHP (php)
多字符字符串比较规则
从第一个字符开始逐个对比,遇到第一个不一样的字符,就以这个字符的大小作为整体结果,后面字符不再看。
- 如果前面全部字符都一样,短字符串更小。
>>> "APPLE" < "APPLE"
False
>>> "APPLE" > "APPLE"
False
>>> "APPLE" > "APPLEA"
False
>>> "APPLE" > "BPPLE"
False
>>> "apple" < "bpple"
True
>>> "apple" > "apble"
TrueCode language: PHP (php)
练习题:
>>> "take">"token"
>>> "zoo"<"can"Code language: JavaScript (javascript)
3. 忽略大小写比较 lower() / upper()
.lower():全部转为小写,返回新字符串,不会修改原变量.upper():全部转为大写,返回新字符串,不会修改原变量
想要忽略大小写对比,把两边同时转小写/大写再比较。
# 大小写不一样直接对比返回False
>>> "AD3z" == "Ad3z"
False
# 两边同时转小写
>>> "AD3z".lower()
'ad3z'
>>> "Ad3z".lower()
'ad3z'
>>> "Pumpkin"=="pumpkin"
False
>>> "Pumpkin".lower()=="pumpkin".lower()
True
>>> "Pumpkin".upper()=="pumpkin".upper()
TrueCode language: PHP (php)
lower()、upper()不会修改原字符串
字符串是不可变类型,调用方法只会返回新字符串,原变量内容不变。
word = "Zoom"
print(word.lower()) # zoom,输出转小写后的新字符串
print(word) # Zoom,原来的变量没有变化!Code language: PHP (php)
如果想要保存转换后的结果,必须重新赋值:word = word.lower()
示例代码
#数值比较
print(5 > 4)
print(10 < 2)
print(10 < 11)
#单字符字符串比较
print('a' < 'A')
print('a' > 'Z')
#多字符字符串比较
print("apple" < "bpple")
print("apple" > "apble")
#大小写转换
word = "Zoom"
print(word.lower())
print(word)
#忽略大小写对比
s1 = "Pumpkin"
s2 = "PUMPKIN"
print(s1.lower() == s2.lower())
print(s1.upper() == s2.upper())Code language: PHP (php)
总结
- 数字直接用
> < >= <= == !=比较,结果是布尔值True/False - 字符串比较按照ASCII编码,大写字母全部小于小写字母;逐位字符对比
lower()、upper()生成新字符串,不改原数据,需要保存结果要重新赋值- 写字符串一定要用英文引号直接报错
- 忽略大小写比较:两边同时调用
.lower()或者.upper()再做判断。