Python从入门到精通(微课精编版)
上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