字符串的应用

字符串的应用

    str0 = "abc"
    str1 = "adc"
    res = str0 + str1
    print(res)
    print(str0)
    
    
    list0 = [12, 34, 56]
    print(list0[1])
    list0[1] = 23
    print(list0)
    
    str0 = "hello nice to meet you"
    print(str0[0])
    #str0[0] = "H"  TypeError: 'str' object does not support item assignment
    print(str0)
    
    #获得序列的长度
    # 内置方法  len(序列)
    res = len(str0)
    print(res)
    
    #获得指定索引位置的字符
    # 索引的取值范围          [0, len(str0) - 1]
    # #也可以通过负值来获取 [-len(str0), -1]
    #res = str0[len(str0)] #IndexError: string index out of range
    res = str0[4]
    print(res)
    
    res = str0[-1]
    print(res)
    
    #获得子串 ---- 切片
    '''
    切片语法:
        序列[start:stop:step]
        step 值默认为1
        start 和 stop不传值  默认是从头到尾
    '''
    sub_str = str0[::]
    print(sub_str)
    
    #跳跃取值  使用步长
    sub_str = str0[::2]
    print(sub_str)
    
    
    #只传起始位置  默认是从起始位置到最后
    sub_str = str0[1::]
    print(sub_str)
    
    #不传起始位置 只传结束位置 [0, stop)
    sub_str = str0[:3:]
    print(sub_str)
    
    #[start, stop)
    sub_str = str0[1:3:]
    print(sub_str)
    
    #反转
    reverse = str0[::-1]
    print(reverse)
    
    str0 = "hello nice to meet you too"
    #获得某个子串第一次出现的位置索引  找不到返回-1
    #如果查找的是连续的字符序列 返回的是第一个字符对应的索引位置
    #从左向右找 第一次出现的位置
    index = str0.find("to")
    print(index)
    
    #指定起始位置进行查找
    index = str0.find("to", 12)
    print(index)
    
    #指定区间进行查找
    index = str0.find("to", 12, 20)
    print(index)
    
    #从右向左找 指定字符串第一次出现在整个字符串的位置
    index = str0.rfind("to")
    print(index)
    
    #类似find的方法 区别: 这个是找不到报错 ValueError: substring not found
    # index = str0.index("mo")
    # print(index)
    
    str0 = "hello nice to meet you too"
    #统计字符串中某个子串出现的次数 : 数过了不用管了 继续向下数
    num = str0.count("o")
    print(num)
    
    str0 = "kkeekkkfabckkkkk"
    num = str0.count("kk")
    print(num)
    
    #从某个位置开始数
    num = str0.count("kk", 5)
    print(num)
    
    #指定区间
    num = str0.count("kk", 5, 10)
    print(num)
    
    
    #切割字符串: 根据指定的切割符位置 对字符串进行分割  返回的是列表 来保存被分割出来的子串
    str0 = "hello nice to meet you too\nmeet you too"
    sub_list = str0.split()
    print(sub_list)
    #不指定切割符 默认以空白为切割符进行切割
    
    sub_list = str0.split("h")
    print(sub_list)
    
    
    #设置切割次数
    sub_list = str0.split(maxsplit=3)
    print(sub_list)
    
    
    def cus_count(src, sep):
        sub_list = src.split(sep)
        print(sub_list)
        return len(sub_list) - 1
    
    
    res = cus_count("kkeekkkfabckkkkk", "kk")
    print(res)
    
    # 去除掉字符串两端指定内容
    str0 = "   abc   abc    abc      "
    print(str0)
    res = str0.strip()  #不传去除的内容默认去除的是空白
    print(res)
    
    str0 = "[12, 34, 56]"
    res = str0.strip("[")
    print(res)
    res = res.strip("]")
    print(res)
    
    str0 = "123abcd123"
    res = str0.strip("123")
    print(res)
    
    #只去除左边
    res = str0.lstrip("123")
    print(res)
    
    #只去除右边
    res = str0.rstrip("123")
    print(res)
    
    
    '''
    字符串格式化:
        2 ---> 02
        3.14 ---> 3.1
    '''
    res = "%02d %.1f" % (2, 3.14)
    print(res)
    
    '''
    转义符 \
        \n ----> 换行
    想显示\的原本状态  就\进行转义 转义成本身的含义
    
    -(-10) = 10
    '''
    res = "m\\nn\\t\\r"
    print(res)
    
    #r的修饰 可以保持字符串内容的本意
    res = r"m\nn\t\r"
    print(res)
    
    res = r"c:\Documents\讲课内容\BJ_Python1811\day05\notes"
    print(res)
    
    #想显示的字符串内容 你好 ---> "hello"
    res = '你好 ---> "hello"'
    print(res)
    
    res = "你好 ---> \"hello\""
    print(res)
    
    #判断的方式
    str0 = "testpngAV"
    #1. 查看字符串是否以指定内容开头
    res = str0.startswith("t")
    print(res)
    
    #2.查看字符串是否以指定内容结尾
    res = str0.endswith("test.png")
    print(res)
    
    #3. 判断字符串的内容是否是纯英文字母
    res = str0.isalpha()
    print(res)
    
    #4. 判断字符串的内容是否是纯数字
    str0 = "10"
    res = str0.isdigit()
    print(res)
    
    #转换的操作
    str0 = "testpngAV12"
    #1. 将小写字母转换为大写字母
    res = str0.upper()
    print(res)
    
    #2. 将大写英文字母转换为小写
    res = str0.lower()
    print(res)
    
    #3. 将字符串中大写转化为小写 小写转换为大写  其他保持不变
    res = str0.swapcase()
    print(res)
    
    #4. 将首字母转化为大写
    res = str0.capitalize()
    print(res)
    
    #5. 将每个单词的首字母转换为大写 [单词和单词之间使用空格隔开]
    str0 = "Hello nice to Meet you"
    res = str0.title()
    print(res)
    
    
    #替换
    str0 = "box boxes boxes Boss"
    res = str0.replace("b", "B", 2)
    print(res)
    
    
    #拼接  以指定拼接符拼接序列中的内容
    list0 = ["10", "20", "30", "40"]
    # 10-20-30-40
    res = "-".join(list0)
    print(res)
    
    #对字符串进行编码和解码
    # 编码: 按照指定的编码方式 获得字符所占用的字节数据  b''-- 表示字节数据
    #  解码: 按照指定的解码方式 获得字符数据对应的字符
    
    res = "你好".encode("utf-8")
    print(res)
    #将字节数据解码成对应的字符
    res = b'\xe4\xbd\xa0'.decode("utf-8")
    print(res)
    
    
    res = "你好".encode("gbk")
    print(res)
    #将字节数据解码成对应的字符
    res = b'\xc4\xe3'.decode("gbk")
    print(res)

    '''
    在指定字符串中 查找某个字符第一次出现的位置
    
    '''
    # def cus_find_single(src, ch):
    #     for i in range(len(src)):
    #         if src[i] == ch:
    #             return i
    #
    #     return -1
    
    #从指定位置开始在指定的字符串中查找某个字符第一次出现的位置
    # def cus_find_single(src, ch, start = None, end = None):
    #     #None ---> 0  not None --> start
    #     cus_index = 0 if start == None else start
    #     cus_end = len(src) if end == None else end
    #     for i in range(cus_index, cus_end):
    #         if src[i] == ch:
    #             return i
    #
    #     return -1
    #
    # index = cus_find_single("hello nice", "e", 2, 4)
    # print(index)
    
    
    '''
    在指定字符串中 查找某个字串第一次出现的位置
    
    '''
    # for i in src:
    #     pass  # 空白站位符 被包含语句中如果没有代码  先可以使用pass站位
    # def cus_find(src, key, start = None, end = None):
    #     #记录位置的索引
    #     index = 0 if start == None else start
    #     end_index = len(src) if end == None else end
    #     while True:
    #         #根据索引和子串的长度 从头开始一段一段的提取
    #         sub = src[index:index + len(key)]
    #         if sub != key:
    #             #继续找
    #             index += 1
    #             if index > (end_index - len(key)):
    #                 return -1
    #         else:
    #             return index
    #
    #
    # res = cus_find("hello nice to meet you too", "to", 12, 20)
    # print(res)
    
    # for i in "abcdefgefgabcdefg":
    #     print(i)
    '''
    abcdefgefgabcdefg
    
    efg
    
    a ~ c  [0, len("efg"))  --> [0, 3)
    0 : len("efg")   abc
    
    bcd
    123
        [1,  4)
    cde
    234
        [2, 5)
    def
        [3, 6)
    efg
        [4, 7)
        
    efg
    abcmopq
    [0, 3)
    [1, 4)
    [2, 5)
    [3, 6)
    [4, 7)
    [5, 8)
    index > len(src) - len(key)
    '''
    
    def cus_upper(src):
        new_str = ""
        for i in src:
            value = ord(i)
            if value >= 97 and value <= 122:
                upper_ch = chr(value - 32)
                new_str += upper_ch
            else:
                new_str += i
        return new_str
    
    
    res = cus_upper("abchelloOK")
    print(res)
    
    
    def cus_capitalize(src):
        new_str = ""
        for i in range(len(src)):
            value = ord(src[i])
            if i == 0 :
                if value >= 97 and value <= 122:
                    new_str += chr(value - 32)
                else:
                    new_str += src[i]
            else:
                if value >= 65 and value <= 90:
                    new_str += chr(value + 32)
                else:
                    ord(i[0])
        return new_str
    
    res = cus_capitalize("abceTEST")
    print(res)
    
    
    def cus_title(src):
        sub_list = src.split()
        new_str = ""
        # 遍历列表
        for i in range(len(sub_list)):
            if i != len(sub_list) - 1:
                new_str += cus_capitalize(sub_list[i])
                new_str += " "
            else:
                new_str += cus_capitalize(sub_list[i])
        return new_str
    
    
    
    
    res = cus_title("Hello nice to Meet you")
    print(res)
    

数字方法

    '''
    函数可以当做值被进行传递
    '''
    a = 10
    print(a)
    
    #将函数当做值来进行传递时 不要函数明后面添加小括号
    '''
    添加上小括号之后 相当于调用函数 把函数的运行结果赋予给执行的变量
    所以只需赋予函数名即可  这样的话 对应的变量也具有函数的功能
    '''
    f = print
    
    print(10)
    f(100)
    
    #abs -- 求绝对值
    res = abs(-100)
    print(res)
    
    #忽略正负的情况下获得最大值
    '''
    key接受的是一个函数
        将每一个数据传入到函数中 返回进行比较大小的那种数据
    '''
    
    def cus_abs(num):
        if num < 0:
            return -num
        else:
            return num
    
    res = max(-10, -55, 77, 99, -101, key=cus_abs)
    print(res)
    
    # 求最小值
    res = min(-10, 22, 33, -8, 99, 45)
    print(res)
    
    # 四舍五入
    help(round)
    res = round(3.5415926)
    print(res) #这种情况下 默认是不保留小数的
    
    res = round(3.5415926, 3)
    print(res)
    
    # 求幂数  x的y次方
    res = 10 ** 2
    print(res)
    
    res = pow(10, 2)
    print(res)
    
    
    # 导入模块  如果导入时 显示红色下划线  在file-settings-project - project interpreter -- 开发环境
    import math
    print(math.pi)
    
    #向上求整 -- 大于等于数据的最接近的整数
    res = math.ceil(18.1)
    print(res)
    
    #向下求整 -- 小于等于数据的最接近的整数
    res = math.floor(18.9)
    print(res)
    
    #开平方
    res = math.sqrt(8)
    print(res)
    
    

 

转载于:https://www.cnblogs.com/wenqiangblog/p/9508115.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值