zoukankan      html  css  js  c++  java
  • [ python ] 字符串的操作及作业题

    字符串的操作方法

    capitalize() : 首字母大写

    s1 = 'my heart will go on'
    print(s1.capitalize())  # 首字母大写
    
    # 执行结果:
    # My heart will go on
    capitalize

    upper() : 全部大写

    s1 = 'my heart will go on'
    print(s1.upper())   # 全部转为大写
    
    # 执行结果:
    # MY HEART WILL GO ON
    upper

    lower() : 全部小写

    s1 = 'my heart will go on'
    print(s1.lower())   # 全部转为小写
    
    # 执行结果:
    # my heart will go on
    lower

     这里写一个使用大小写转换的实例,验证码的比较:

    auth_code = 'KDwq'
    
    user_code = input('请输入验证码(不区分大小写):')
    if user_code.upper() == auth_code.upper():      # 将验证码和用户输入的字符统一转换为大写进行比较;
        print('验证成功.')
    else:
        print('验证失败.')
    

     swapcase() : 大小写反转

    s1 = 'MY HEART will go ON'
    print(s1.swapcase())    # 大小写反转;大写转换为小写,小写转换为大写
    
    # 执行结果:
    # my heart WILL GO on
    swapcase

     title(): 标题首字母大写

    s1 = 'MY HEART will go ON'
    print(s1.title())   # 标题首字母大写,用空格隔开的每个单词都当作一个标题处理
    # # 执行结果:
    # My Heart Will Go On
    title

     center(): 居中,默认填充空格

    s1 = 'MY HEART will go ON'
    print(s1.center(30, '#'))   # 居中显示,第一个参数是位宽int类型,第二个参数是占位符,str类型;
    
    # 执行结果:
    # #####MY HEART will go ON######
    center

     startswith(): 以什么开头,返回 bool 值

    s1 = 'nice to meeting you'
    print(s1.startswith('ni'))  # 判断以什么字符串开始,返回bool类型,正确返回 True,错误返回 False
    
    # 执行结果:
    # True
    
    print(s1.startswith('no'))
    
    # 执行结果:
    # False
    startswith

    endswith(): 以什么结尾,返回 bool 值

    s1 = 'nice to meeting you'
    print(s1.endswith('you'))   # 判断以什么字符串结尾,返回bool类型,正确返回 True,错误返回 False
    
    # 执行结果:
    # True
    
    print(s1.endswith('yyy'))
    
    # 执行结果:
    # False
    endswith

    find() 和 index() 都是通过元素找索引的方法,区别如下:

    find()方法:元素存在打印索引,元素不存在返回 -1

    index()方法:元素存在打印索引,元素不存在报错。错误信息:ValueError: substring not found

    s1 = 'nice to meeting you'
    
    print(s1.find('to'))
    
    # 执行结果:
    # 5
    
    print(s1.find('xxx'))
    
    # 执行结果:
    # -1
    
    print(s1.index('to'))
    
    # 执行结果:
    # 5
    
    # print(s1.index('xxx'))
    
    # 执行结果:
    # ValueError: substring not found
    find 和 index

    所以,在程序中应当使用 find() 来查找索引,尽量避免程序出现报错信息

    strip(): 默认去除行首和行尾的空格;
        rstrip() 从左删
        lstrip() 从右删

    s1 = '    nice to meeting you    '
    
    print(s1.strip())   # 默认去除开头和结尾的空格部分;
    
    # 执行结果:
    # nice to meeting you
    
    s1 = '#######nice to meeting you#######'
    print(s1.strip('#'))    # 第一个参数为开头和结尾要去除的字符
    
    # 执行结果:
    # nice to meeting you
    strip

    count():统计字符串出现个数

    s1 = 'adfasdfasdfasdfertadf'
    print(s1.count('a'))    # 统计字符串出现的次数
    
    # 执行结果:
    # 5
    count

    split(): 按照指定字符分隔成多个元素  str --> list

    s1 = 'nice to meeting you'
    print(s1.split())   # 默认将字符串通过空格分隔并组成列表类型
    
    # 执行结果:
    # ['nice', 'to', 'meeting', 'you']
    split

    format 有三种用法:

    print('我叫{}, 跟我念一遍:{}, 年龄:{}, 爱好:{}'.format('clot', 'clot', 20, '摄影'))
    print('我叫{0}, 跟我念一遍:{0}, 年龄:{1}, 爱好:{2}'.format('clot', 20, '摄影'))
    print('我叫{name}, 跟我念一遍:{name}, 年龄:{age}, 爱好:{hobby}'.format(name='clot', age=20, hobby='摄影'))
    
    # 执行结果:
    #
    # 我叫clot, 跟我念一遍:clot, 年龄:20, 爱好:摄影
    # 我叫clot, 跟我念一遍:clot, 年龄:20, 爱好:摄影
    # 我叫clot, 跟我念一遍:clot, 年龄:20, 爱好:摄影
    format

     replace(): 字符串替换

    s1 = 'nice to meeting you'
    print(s1.replace('meeting', 'see')) # 在字符串中,用第一个参数替换掉第二个参数,默认是匹配上则全部替换
    
    # 执行结果:
    # nice to see you
    replace

    isdigit(): 判断字符串是否全部是数字组成

    s1 = '123123123123'
    print(s1.isdigit()) # 判断字符串是否全部由数字组成,小数点无法匹配上,返回bool类型;
    
    # 执行结果:
    # True
    isdigit

    isalpha():判断字符串是否全是字母组成

    s1 = 'asdfasdf'
    
    print(s1.isalpha()) # 判断字符串是否全部由字母组成,返回bool类型;
    
    # 执行结果:
    # True
    isalpha

    isalnum():判断字符串是否由数字和字母组成

    s1 = 'asdfa234asdf'
    
    print(s1.isalnum()) # 判断字符串是否全部由字母或字母组成,返回bool类型;
    
    # 执行结果:
    # True
    isalnum

    作业题

    1. 判断下列逻辑语句的 True、False

    1) 1 > 1 or 3 > 4 or 4 > 5 and 2> 1 and 9 > 8 or 7 < 6
    2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    3) 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2

    2. 求出下列逻辑语句的值。

    1) 8 or 3 and 4 or 2 and 0 or 9 and 7
    2) 0 or 2 and 3 and 4 or 6 and 0 or 3
    3) 5 and 9 or 10 and 2 or 3 and 5 or 4 or 5

    3. 下列结果是什么?
    1) 6 or 2 > 1
    2) 3 or 2 > 1
    3) 0 or 5 < 4
    4) 5 < 4 or 3
    5) 2 > 1 or 6
    6) 3 and 2 > 1
    7) 0 and 3 > 1
    8) 2 > 1 and 3
    9) 3 > 1 and 0
    10) 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2

    4. 写代码:计算 1-2+3...+99 中除了88意外所有数的总和?

    以下 F 表示: False, T 表示:True
    
    1. 判断下列逻辑语句的 True、False
    1) 1 > 1 or 3 > 4 or 4 > 5 and 2> 1 and 9 > 8 or 7 < 6
    计算过程:
    # 1 > 1 or 3 > 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    # 1 > 1 or 3 > 4 or F and 9 > 8 or 7 < 6
    # 1 > 1 or 3 > 4 or F or 7 < 6
    # F or F or 7 < 6
    # F or 7 < 6
    # F
    
    2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    计算过程:
    # F and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    # F or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
    # F or F and 9 > 8 or 7 < 6
    # F or F or 7 < 6
    # F or 7 < 6
    # F
    
    3) 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2
    计算过程:
    # 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2
    # F or 4 > 5 and 2 > 1 or 9 < 8 and 4 > 6 or 3 < 2
    # F or F or 9 < 8 and 4 > 6 or 3 < 2
    # F or F or F or 3 < 2
    # F or F or 3 < 2
    # F or 3 < 2
    # F
    
    
    2. 求出下列逻辑语句的值。
    
    1) 8 or 3 and 4 or 2 and 0 or 9 and 7
    计算过程:
    # 8 or 3 and 4 or 2 and 0 or 9 and 7
    # 8 or 4 or 0 or 7
    # 8 or 0 or 7
    # 8 or 7
    # 8
    
    2) 0 or 2 and 3 and 4 or 6 and 0 or 3
    计算过程:
    # 0 or 2 and 3 and 4 or 6 and 0 or 3
    # 0 or 3 and 4 or 6 and 0 or 3
    # 0 or 4 or 6 and 0 or 3
    # 0 or 4 or 0 or 3
    # 4 or 0 or 3
    # 4 or 3
    # 4
    
    
    3) 5 and 9 or 10 and 2 or 3 and 5 or 4 or 5
    计算过程:
    # 5 and 9 or 10 and 2 or 3 and 5 or 4 or 5
    # 9 or 10 and 2 or 3 and 5 or 4 or 5
    # 9 or 2 or 3 and 5 or 4 or 5
    # 9 or 2 or 5 or 4 or 5
    # 9 or 5 or 4 or 5
    # 9 or 4 or 5
    # 9 or 5
    # 9
    
    3. 下列结果是什么? 
    提示:
    (1)牢记优先级:not > and > or2)and 取值
        
        从前往后,
        (a) 第一个数的bool值为 False,那就直接返回第一个数(0就返回0,False就返回False);
        (b) 如果第一个数的bool值为 True,第二个数的bool值为 False,则返回第二个数的值;
        (c) 如果两个数的bool值都为True,则返回第二个数.
        (d) 如果两个数的bool值都为False,则返回第一个数.
    
    (3)or 取值
        从前往后,
        (a) 第一个数的bool值为 False,那就直接返回第二个数;
        (b) 如果第一个数的bool值为 True,第二个数的bool值为 False,则返回第一个数的值;
        (c) 如果两个数的bool值都为True,则返回第一个数.
        (d) 如果两个数的bool值都为False,则返回第二个数.
        
    
    1) 6 or 2 > 1
    计算过程:
    print(6 or 2 > 1)
    # 6 or 2 > 1
    # 6 or T
    # 6
    
    2) 3 or 2 > 1
    计算过程:
    print(6 or 2 > 1)
    # 6 or 2 > 1
    # 6 or T
    # 6
    
    3) 0 or 5 < 4
    计算过程:
    print(0 or 5 < 4)
    # 0 or 5 < 4
    # 0 or F
    # False
    
    4) 5 < 4 or 3
    计算过程:
    print(5 < 4 or 3)
    # 5 < 4 or 3
    # F or 3
    # 3
    
    5) 2 > 1 or 6
    计算过程:
    print(2 > 1 or 6)
    # 2 > 1 or 6
    # T or 6
    # T
    
    6) 3 and 2 > 1
    计算过程:
    print(3 and 2 > 1)
    # 3 and 2 > 1
    # 3 and T
    # T
    
    7) 0 and 3 > 1
    计算过程:
    print(0 and 3 > 1)
    # 0 and 3 > 1
    # 0 and T
    # 0
    
    8) 2 > 1 and 3
    计算过程:
    print(2 > 1 and 3)
    # 2 > 1 and 3
    # T and 3
    # 3
    
    9) 3 > 1 and 0
    计算过程:
    print(3 > 1 and 0)
    # 3 > 1 and 0
    # T and 0
    # 0
    
    10) 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
    计算过程:
    print(3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2)
    # 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
    # T and 2 or 2 < 3 and 3 and 4 or 3 > 2
    # 2 or 2 < 3 and 3 and 4 or 3 > 2
    # 2 or F and 3 and 4 or 3 > 2
    # 2 or F and 4 or 3 > 2
    # 2 or F or 3 > 2
    # 2 or 3 > 2
    # 2 or T
    # 2
    
    
    
    
    4. 写代码:计算 1-2+3...+99 中除了88意外所有数的总和?
    
    num = 0
    count = 0
    while count < 100:
        count += 1      # count = count + 1 必须写在 continue 之前,否则进入死循环
        if count == 88:
            continue
        if count % 2:    # 获取奇数
            num += count
        else:
            num -= count
    print(num)
    作业题答案及分析过程
  • 相关阅读:
    Ext JS 学习笔记
    ASP中令人震撼的Debug类(VBScript)
    texttransform的使用
    综合搜索引擎代码
    做技术,切不可沉湎于技术
    站长常用广告代码的表达大全
    ASP中一个字符串处理类(加强)(VBScript)
    Asp中一些FSO方面的函数
    没有Javascript,纯CSS下拉菜单IE,FF
    ASP中一个字符串处理类(VBScript) 原版
  • 原文地址:https://www.cnblogs.com/hukey/p/9612961.html
Copyright © 2011-2022 走看看