上QQ阅读APP看书,第一时间看更新
3.4 关系运算
3.4.1 大小关系
大小关系包含4个运算符,说明如表3.4所示。用于比较两个相同类型的操作数。所有比较运算符返回1表示True,返回0表示False。
操作数可以是字符串或数字。如果是数字,则直接比较大小;如果是字符串,则根据每个字符编码的大小,从左到右按顺序逐个比较。字符比较区分大小写,一般小写字符大于大写字符。如果不区分大小写,可以使用upper()或lower()方法统一字符串的大小写形式。如果操作数是布尔值,则先转换为数字,True为1,False为0,再进行比较。
表3.4 Python大小关系运算符
【示例1】要求输入字符串,将小写字符转换为大写字符,将大写字符转换为小写字符。
str = input("请输入字符:") # 接收一个字符串 str1 = '' # 定义一个空字符串,用于存储转换后的结果 for cha in str: # 循环遍历字符串 if "a" <= cha <= "z": # 判断字符是否是小写 cha1 = ord(cha) - 32 # 将字符转为ASCII值,该值减去32变为大写 elif "A" <= cha <= "Z": # 判断字符是否是大写 cha1 = ord(cha) + 32 # 转换为小写字符对应的ASCII值 str1 += chr(cha1) # 将ASCII值转为字符型 print(str1) # 打印转换后的结果
【示例2】要求用户输入3个字符串,并比较3个字符串的大小。2个字符串进行大小比较时,是按照从左到右的顺序,依次比较相应位置字符的ASCII码值的大小。
str1 = input('input string:') # 接收字符串 str2 = input('input string:') str3 = input('input string:') print('before sorted:',str1, str2, str3) # 打印排序前的字符串的顺序 if str1 > str2: # 判断两个字符的大小 str1, str2 = str2, str1 # 交换两个字符串(第5章中元组解包方式交换) if str1 > str3: str1, str3 = str3, str1 if str2 > str3: str2, str3 = str3, str2 print('after sorted:',str1, str2, str3) # 打印排序后的字符串顺序
3.4.2 相等关系
相等关系包括2个运算符,说明如表3.5所示。
表3.5 Python相等关系运算符
相等关系的两个操作数没有类型限制。如果类型不同,则不相等,直接返回False;如果类型相同,再比较值是否相同,如果相同,则返回True,否则返回False。如果操作数是布尔值,则先转换为数字,True为1,False为0,再进行比较。
【示例】假设有一筐鸡蛋,准备取出,如果:1个1个拿,正好拿完;2个2个拿,还剩1个;3个3个拿,正好拿完;4个4个拿,还剩1个;5个5个拿,还剩1个;6个6个拿,还剩3个;7个7个拿,正好拿完;8个8个拿,还剩1个;9个9个拿,正好拿完。问框里最少有多少个鸡蛋。
for i in range(1, 1000): # 测试1000以内有没有符合条件的 if i % 2 == 1 and i % 3 == 0 and i % 4 == 1 and i % 5 == 1 and i % 6 == 3 and i % 7 == 0 and i % 8 == 1 and i % 9 == 0: # 设置限制条件 print(i) # 输出为 441