day10-字符串作业

  1. 编写一个程序,交换指定字典的key和value。

      例如:dict1={'a':1, 'b':2, 'c':3}  -->  dict1={1:'a', 2:'b', 3:'c'}  
    
    ict1={'a':1, 'b':2, 'c':3}
    dict2={}
    for key,value in dict1.items():
        dict2[value]=key
    print(dict2)
    
  2. 编写一个程序,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串

       例如: 传入'12a&bc12d-+'   -->  'abcd'  
    
    str1='12a&bc12d-+'
    str2=''
    for i in str1:
        if i.isalpha():
            str2+=i
    print(str2)
    
  3. 写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母

      例如: 'abc' -> 'Abc'   '12asd'  --> '12asd'
    
    str = 'xbshvsxbs'
    new_str=''
    if str[0].islower():
            j=chr(ord(str[0])-32)
            new_str=j+str[1:]
    print(new_str)
    
  4. 写程序实现endswith的功能,判断一个字符串是否已指定的字符串结束

       例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True
            字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
    
    str1='abc231ab'
    str2='1ab'
    len2=len(str2)
    if str1[-len2:] == str2:
        print(True)
    else:
        print(False)
    
  5. 写程序实现isdigit的功能,判断一个字符串是否是纯数字字符串

       例如: '1234921'  结果: True
             '23函数'   结果: False
             'a2390'    结果: False
    
    str1='1234921'
    for i in str1:
        if not ('0' <= i <= '9'):
            print(True)
            break
    else:
        print(False)
    
  6. 写程序实现upper的功能,将一个字符串中所有的小写字母变成大写字母

        例如: 'abH23好rp1'   结果: 'ABH23好RP1'   
    
    str1='abH23好rp1'
    new_str1=''
    for i in str1:
        if i.islower():
            i=chr(ord(i)-32)
        new_str1+=i
    print(new_str1)
    
  7. 写程序获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值

       例如: 序列:[-7, -12, -1, -9]    结果: -1   
            序列:'abcdpzasdz'    结果: 'z'  
            序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98}   结果: 98
    
    str1 = {'小明':90, '张三': 76, '路飞':30, '小花': 98}
    max_value=str1['小明']
    if type(str1)== list or type(str1)== str:
        max_value=str1.max()
    elif type(str1) == dict:
        max_value=max(str1.values())
    print(max_value)
    
  8. 写程序实现replace函数的功能,将指定字符串中指定的旧字符串转换成指定的新字符串

        例如: 原字符串: 'how are you? and you?'   旧字符串: 'you'  新字符串:'me'  结果: 'how are me? and me?'
    
    str1='how are you? and you?'
    str2=str1.split('you')
    str3='me'.join(str2)
    print(str3)
    
  9. 写程序实现split的功能,将字符串中指定子串作为切割点对字符串进行切割

    例如:原字符串: 'how are you? and you?'   切割点: 'you'  结果: ['how are ', '? and ', '?']
    
    str1 = 'how are you? and you?'
    str2 = 'you'
    result = str1.split(str2)
    print(result)
    
  10. 用思维导图(xmind)总结四大容器:列表、字典、元组、集合

​ 四大容器:

  1. 列表(str)

    • 列表的标志:[]

    • 列表的特点:a.有序性(支持下标操作,支持索引);b.可变性(支持增删改操作)

    • 列表的增、删、改、查

      • 增:a、列表.append(元素) ——在列表的最后添加元素;

        ​ b、列表.insert(下标,数据) —— 在列表指定元素前添加元素。

      • 删:a、del 列表[下标] —— 删除列表中指定下标对应的元素;

        ​ b、列表.remove(元素) —— 删除列表中指定元素。

        ​ c、列表.pop() —— 取出列表最后一个元素;

        ​ 列表.pop(下标) —— 取出列表指定下标对应的元素。

      • 改: 列表[下标]=新元素 —— 修改列表中指定下标对应的元素为新元素。

      • 查:a、查单个 —— 列表[下标] - 获取指定列表中指定下标对应的元素。

        ​ b、切片 —— 列表[开始下标:结束下标:步长] - 根据下标和步长获取指定列表中的部分元素。

        ​ c、遍历 —— 获取列表中所有的元素。

        ​ (1)for 变量 in 列表:

        ​ (2)for 变量 in range(len(列表)):

        ​ (3)for 变量1,变量2 in enumerate(列表):

    • 列表相关函数:a、sum(列表);b、max(列表)、min(列表);c、sorted(列表)、sorted(列表,reverse) —— 降序 ;

      ​ d、len(列表); e、list(序列)

    • 列表相关方法:a、列表.clear() —— 清空列表;b、列表.copy() ; c、列表.count(数据); d、列表.extend(序列) —— 将序列中所有的元素全 部添加到列表的最后; e、列表.index(数据) ;f、列表.reverse();g、列表.sort();

    • 列表推导式:a、[表达式 for 变量 in 序列];b、[表达式 for 变量 in 序列 if 条件语句]。

    • 列表相关操作:a、支持数学运算符:+、*;b、支持in和not in操作。

  2. 字典(dict)

    • 字典的标志:{}

    • 字典的特点:a、可变性(支持增删改操作);b、无序性。

    • 字典的增、删、改、查

      • 增:a、字典[键] = 值

        ​ b、字典.setdefault(键,值) —— 在字典中添加指定的键值对;如果键存在,会保留原来的值。

      • 删:a、del 字典[键] —— 删除字典中指定键对应的键值对。

        ​ b、字典.pop(键) —— 取出字典中指定键对应的值。

      • 改:字典[键] = 值 —— 将字典中指定键对应的值修改成指定的新值。

      • 查:

        a、查单个:(1)字典[键];

        ​ (2)字典.get(键) —— 获取字典中指定键对应的值,如果键不存在不报错,并且返回None;字典.get(键,默认值) —— 获取 字典中指定键对应的值,如果键不存在不报错,并且返回默认值。

        b、遍历:(1)for 键 in 字典: (2)for 键,值 in 字典.items():

    • 字典的相关函数:a、len(字典) —— 获取字典中键值对的数量;

      ​ b、dict(数据) —— 将指定的数据转换为字典。

    • 字典的相关方法:a、字典.clear() ;b、字典.copy() ; c、字典.keys() —— 获取字典所有的键,返回一个序列;d、字典.values() —— 获取字典所有的值,返回一个序列;e、字典.items() —— 将字典转换为一个序列,并且将每一个键值对转换成一个元组。

    • 字典相关操作:a、不支持+、*、>、<、>=、<= 的操作;b、支持in 和 not in。

  3. 元组(tuple)

    • 元组的标志:()

    • 元组的特点:a、有序性(支持下标、索引操作);b、不可变性(不支持增删改操作)。

      注意:只有一个元素的元组在表示的时候,唯一的元素后面必须添加逗号。

    • 元组的查操作:a、查单个:元组[下标];

      ​ b、切片:元组[开始下标:结束下标:步长] (左闭右开区间);

      ​ c、遍历:

      ​ (1)for 变量 in 元组:

      ​ (2)for 变量 in range(len(元组)):

      ​ (3)for 变量1,变量2 in enumerate(元组):

    • 元组相关方法:元组.count()、元组.index()。

    • 元组相关函数:len()、max()、min()、sorted()、sum()、tuple()—>转换为元组类型。

    • 元组就是不可变的列表,列表中与可变无关的操作,元组都支持。

  4. 字符串

    • 字符串的标志:’ ’ 和" "。

    • 字符串的特点:a、有序性(支持下标操作);b、不可变性(不支持增删改操作)。

    • 元素:字符串的元素叫做字符。

      注意:a、字符串的元素(字符)分为两种:普通字符、转义字符;b、字符串不可变,所有可变操作都是在创建对应的新字符串。

      常见转义字符:a、\n:换行 ;b、\t:水平制表符(相当于按Tab键);c、\ ':表示一个普通的单引号;d、\ ":表示一个普通的双引号。
      e、\ :表示一个普通的反斜杠。

      r字符串:让字符串中所有的转义字符功能消失。

    • 字符串的查操作:字符串获取元素和列表获取元素的语法一模一样。

    • 字符串相关方法:

      a、字符串.join(序列) —— 将序列中的元素用指定的字符串拼接在一起,形成一个新的字符串。

      b、字符串1.split(字符串2) ;

      ​ 字符串1.split(字符串2,N) —— 将字符串1中前n个字符串2作为切割点对字符串1进行切割。

      c、字符串1.replace(字符串2,字符串3);

      ​ 字符串1.replace(字符串2,字符串3,n)。

      d、字符串.strip() —— 删除字符串左右两端的空白字符;

      ​ 字符串.rstrip() —— 删除字符串右两端的空白字符;

      ​ 字符串.lstrip() —— 删除字符串左两端的空白字符;

      e、字符串1.find(字符串2,开始下标,结束下标) ;

      ​ 字符串1.index(字符串2,开始下标,结束下标)

    • 字符串格式化:

      a、字符串拼接;

      b、字符串格式化:格式字符串:包含一个或多个格式占位符的字符串 %(数据1,数据2,数据3,…)。

      ​ 常用的字符串占位符: %s(字符串占位符);%d(整数占位符); %f(浮点数占位符,默认保留6位小数); %.Nf(保留n位小数)。

      c、f-string:

      • 基本用法:f’ {表达式}’

      • f-string参数:{提供数据的表达式:参数}:

        (1)控制小数位数:{提供数据的表达式:参数.nf}(.nf代表保留的小数位数);

        (2)大数据逗号分隔:{提供数据的表达式:,};

        (3)控制小数位数和大数据逗号分隔合用:{提供数据的表达式:,.nf};

        (4)小数显示成百分比:{提供数据的表达式:.n%} —— n代表保留几位小数

        (5)控制填充长度:{提供数据的表达式:字符>长度}、{提供数据的表达式:字符<长度}、{提供数据的表达式:字符^长度}。

  5. 集合

    • 集合(set)是一个无序的不重复元素序列。

    • 集合的创建:可以使用大括号 { } 或者 set() 函数创建集合。

      注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    • 集合的特点:a、无序性;b、互异性(唯一性)—— 元素不能重复;c、确定性 —— 给定一个集合和任意元素,该元素要么属于集合,要么不属于集合。

      注意:1、创建集合可以使用 {} 字面量语法,{}中需要至少一个元素,因为没有元素的{},并不是空集合,而是空字典,创建空集合可以使用set{}。

      ​ 2、集合中的元素通常不可变,集合本身是可变的,所以集合不能作为集合的元素。

    • 集合的运算:

      a、成员运算;

      b、并、交、差运算

      • 交集:(1)使用 & 运算符;(2)使用intersection方法。
      • 并集:(1)使用 | 运算符;(2)使用union 方法。
      • 差集:(1)使用 - 运算符;(2)使用difference方法。
      • 对称差:(1)使用 ^ 运算符;(2)使用 symmetric_difference 方法;(3)对称差相当于两个集合的并集减去交集。

      c、比较运算:== 、!=

    • 子集和超集:

      超集:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集,反过来也可以称为B是A的超集。

      a、< 运算符表示真子集,<= 运算符表示子集;

      b、通过issubset方法也能进行自己判断;

      c、反过来也可以用issuperset 或 > 运算符进行超集判断;

    • 集合的方法:

      a、定义空集合的方法:set();

      b、添加元素:(1)集合.add();(2)集合.update() —— 将其他集合合并到当前集合。

      c、删除元素:

      (1)集合.discard() —— 若元素不存在,不响应;

      (2)集合.remove() —— 若元素不存在,报错;

      (3)集合.pop() —— 从集合中随机删除一个元素并返回该元素。

    • 不可变集合:frozenset()

      注意:set() 和 frozenset的区别就如同列表跟元组。frozenset集合不能进行增、删,但可以求并交差运算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值