比较运算符

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)

多字符字符串比较规则

第一个字符开始逐个对比,遇到第一个不一样的字符,就以这个字符的大小作为整体结果,后面字符不再看。

  1. 如果前面全部字符都一样,短字符串更小。
>>> "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)

总结

  1. 数字直接用> < >= <= == !=比较,结果是布尔值True/False
  2. 字符串比较按照ASCII编码,大写字母全部小于小写字母;逐位字符对比
  3. lower()upper()生成新字符串,不改原数据,需要保存结果要重新赋值
  4. 写字符串一定要用英文引号直接报错
  5. 忽略大小写比较:两边同时调用.lower()或者.upper()再做判断。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注