Python字符串类型

字符串的其他内置方法

1.移除字符串收尾的指定字符 可以选择方向
name = '$$jason$$$'
  print(s1.strip('$'))  # jason    去除字符串中Jason的($)符号
  print(s1.lstrip('$'))  # jason$$$       left    左边
  print(s1.rstrip('$'))  # $$$jason       right   右边

2.大小写相关的操作
s2 = 'HelloWOrld'
  print(s2.lower())  # 将所有的英文字母变为小写 helloworld
  print(s2.upper())  # 将所有的英文字母变为大写 HELLOWORLD
  print(s2.islower())  # 判断字符串中所有的英文字母是否是纯小写  结果是布尔值
  print(s2.isupper())  # 判断字符串中所有的英文字母是否是纯大写  结果是布尔值
  '''图片验证码:一串有数字 大写字母 小写字母组成'''

code = 'JaSOn6'
  print('这是返回给用户的图片验证码:%s' % code)
  user_code = input('请输入验证码>>>:').strip()  # 去掉收尾的空格符号
  if code.lower() == user_code.lower():  # 验证码忽略大小写 只需要统一转大写或者小写即可
      prin('验证码正确')
  """这行代码直接实现了忽略验证码打大小写 统一转成大写或者小写即可"""

3.判断字符串的开头或者结尾是否是指定的字符
s3 = 'jason kevin jason tony 666'
  print(s3.startswith('j'))  # 判断是不是以"j"开头,是 结果为True  不是结果为False
  print(s3.startswith('jason'))  # 判断是不是以"jason"开头,是 结果为True 不是结果为False
  print(s3.startswith('tony'))  # 判断是不是以"tony"开头,是 结果为True  不是结果为False
  print(s3.endswith('6'))  # 判断是不是以(6)结尾,是 结果为True  不是 结果为False
  print(s3.endswith('666'))  # 判断是不是以(666)结尾,是 结果为True  不是 结果为False
  print(s3.endswith('jason'))  # 判断是不是以(jason)结尾,是 结果为True  不是 结果为False

4.格式化输出
# 方法一:占位符:%s %d
  # 方法二:format方法>>>:四种玩法
  # 玩法1:跟占位符一致  使用的{}占位符
  print('my name is {} my age is {}'.format('jason', 18))
  # 玩法2:根据索引取值  可以反复使用
  print('my name is {0} my age is {0} {1}'.format('jason', 18))
  # 玩法3:根据指名道姓的方式取值
  print('my name is {name} {name} my age is {age} {pwd}'.format(name='jason', age=18, pwd=123))
  # 玩法4:直接使用已经出现过的变量
  name = 'jason'
  age = 18
  print(f'my name is {name} my age is {age} {name} {age}')
  """python官网很久以前就说推荐使用format做格式化输出 甚至说%s要被砍掉"""

5.拼接字符串
s1 = '三月不努力 四月变垃圾'
  s2 = '年少不努力 妄为少年人'
  print(s1 + s2)  # 如果字符串很大 加号效率较低
  print(s1 * 10)  # 重复次数
  print('|'.join(s1))  # 三|月|不|努|力| |四|月|变|垃|圾
  print('$'.join(['jason', 'kevin', 'justin', 'tony']))  # jason$kevin$justin$tony
  '''join方法相当于是将括号内的元素进行for循环'''
  l1 = [11, 'jason', 'kevin']
  print('|'.join(l1))  # join的元素必须都是字符串才可以 否则报错

6.替换字符串中指定的字符
s6 = 'jason is DSB DSB DSB DSB jason jason jason'
  # 将jason替换成老刘
  print(s6.replace('jason', '老刘'))  # 默认一次性替换所有
  # 指定替换的个数
  print(s6.replace('jason', '老刘', 2))  # 还可以通过数字控制替换的个数 从左往右
                  # 替换前    替换后  替换两个2
  '''很多文本编辑器里面的替换功能 就可以使用replace完成'''

7.判断字符串是否是纯数字
s7 = 'jason123'
  print(s7.isdigit())  # False
  print('123'.isdigit())  # True
  print('123.21'.isdigit())  # False
  score = input('score>>>:')
  if score.isdigit():
      score = int(score)
      print('牛逼')
  else:
      print('你他喵的能不能好好写')

#####################了解的操作#####################

# 1.查找指定字符对应的索引值
     s1 = 'jason justin kevin tony'
     print(s1.find('s'))  # 从左往右查找 查找一个就结束
     print(s1.find('k', 1, 9))  # -1 意思是没有 找不到
     print(s1.index('s'))
     print(s1.index('k', 1, 9))  # 找不到直接报错 不推荐使用

    # 2.文本位置改变
     name = 'tony'
     print(name.center(30, '-'))  # -------------tony-------------
     print(name.ljust(30, '*'))  # tony**************************
     print(name.rjust(30, '$'))  # $$$$$$$$$$$$$$$$$$$$$$$$$$tony
     print(name.zfill(50))  # zero 零  0000000000000000000000000000000000000000000000tony

    # 3.特殊符号:斜杠与一些英文字母的组合会产生特殊的含义
     print('ja\tson\nke\avin')
    '''如果想取消它们的特殊含义 可以在字符串的前面加一个字母r'''
     print(r'ja\tson\nke\avin')

    # 4.captalize,swapcase,title
    # 4.1 captalize:首字母大写
     message = 'hello everyone nice to meet you!'
     message.capitalize()
     Hello everyone nice to meet you!

    # 4.2 swapcase:大小写翻转
     message1 = 'Hi girl, I want make friends with you!'
     message1.swapcase()
     hI GIRL, i WANT MAKE FRIENDS WITH YOU!

    #4.3 title:每个单词的首字母大写
     msg = 'dear my friend i miss you very much'
     msg.title()
     Dear My Friend I Miss You Very Much

列表内置方法

# 1.类型转换
     print(list(11))  # 不行
     print(list(11.11))  # 不行
     print(list('jason'))  # ['j', 'a', 's', 'o', 'n']
     print(list({'name': 'jason', 'pwd': 123}))  # ['name', 'pwd']
     print(list((11,22,33,44,55)))  # [11, 22, 33, 44, 55]
     print(list({1, 2, 3, 4, 5}))  # [1, 2, 3, 4, 5]
     print(list(True))
    """
    list可以转换支持for循环的数据类型
        可以被for循环的数据类型
            字符串 列表 字典 元组 集合
    """
 
    # 2.常见操作
    	name_list = ['jason', 'kevin', 'tony', 'tom', 'jerry']
    # 1.索引取值
     print(name_list[0])
     print(name_list[-1])

    # 2.切片操作
     print(name_list[1:4])  # ['kevin', 'tony', 'tom']
     print(name_list[-4:-1])  # ['kevin', 'tony', 'tom']
     print(name_list[-1:-4:-1])  # ['jerry', 'tom', 'tony']

    # 3.间隔
     print(name_list[0:4:1])  # ['jason', 'kevin', 'tony', 'tom']
     print(name_list[0:4:2])  # ['jason', 'tony']
     print(name_list[-1:-4:-1])  # ['jerry', 'tom', 'tony']

    # 4.统计列表中元素的个数
     print(len(name_list))  # 5

    # 5.成员运算 最小判断单位是元素不是元素里面的单个字符
     print('j' in name_list)  # False
     print('jason' in name_list)  # True

    # 6.列表添加元素的方式
    # 6.1.尾部追加'单个'元素
     name_list.append('小李')
     print(name_list)
     name_list.append([11, 22, 33, 44])
     print(name_list)

    # 6.2.指定位置插入'单个'元素
     name_list.insert(0, 123)
     name_list.insert(2, '可不可以插个队')
     name_list.insert(1, [11, 22, 33])
     print(name_list)

    # 6.3.合并列表
     name_list.extend([11, 22, 33, 44, 55])
     print(name_list)
    '''extend其实可以看成是for循环+append'''
     for i in [11, 22, 33, 44, 55]:
         name_list.append(i)
     print(name_list)
     name_list += [11, 22, 33, 44, 55]
     print(name_list)  # 加号的效率不高

    # 7.删除元素
    # 7.1 通用的删除方式
     del name_list[0]
     print(name_list)

    # 7.2 就地删除  # 指名道姓的直接删除某个元素
     print(name_list.remove('jerry'))  # None
     print(name_list)

    # 7.3 延迟删除
     print(name_list.pop())  # 默认是尾部弹出    jerry
     print(name_list)
     print(name_list.pop(2))  # 还可以指定索引值   tony
     print(name_list)

    # 8.修改列表元素
     print(id(name_list[0]))  # 2614038082368
     name_list[0] = 'jasonDSB'
     print(id(name_list[0]))  # 2614038926320
     print(name_list)

    # 9.排序
     ss = [44, 77, 99, 11, 22, 33, 88, 66]
     ss.sort()  # 默认是升序
     print(ss)  # [11, 22, 33, 44, 66, 77, 88, 99]
     ss.sort(reverse=True)  # 可以修改尾降序
     print(ss)  # [99, 88, 77, 66, 44, 33, 22, 11]

    # 10.翻转
     ss = [44, 77, 99, 11, 22, 33, 88, 66]
     ss.reverse()  # 前后颠倒
     print(ss)

    # 11.比较运算
     s1 = [11, 22, 33]
     s2 = [1, 2, 3, 4, 5, 6, 7, 8]
     print(s1 > s2)  # True
    """列表在做比较的时候 其实比的是对应索引位置上的元素"""
     s1 = ['A', 'B', 'C']  # A>>>65
     s2 = ['a']  # a>>>97
     print(s1 > s2)  # False
     ss = [44, 77, 99, 11, 22, 33, 88, 66]
     print(ss.index(99))

    # 12.统计列表中某个元素出现的次数
    l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33]
    print(l1.count(11))  # 统计元素11出现的次数
    l1.clear()  # 清空列表
    print(l1)

可变类型与不可变类型

ss1 = '$$$jason$$$'
     print(ss1.strip('$'))  # jason  本身并没有修改 是产生了新的结果
     print(ss1)  # $$$jason$$$

     ss = [1, 2, 3]
     print(ss.extend([11, 22, 33, 44, 55]))  # None 空
     print(ss)  # [1, 2, 3, 11, 22, 33, 44, 55]
    """
    可变类型与不可变类型
        可变类型     列表
            值改变 内存地址不变 修改的是本身
        不可变类型   字符串
            值改变 内存地址肯定遍 修改过程产生了新的值
    如何查看变量的'内存地址'
    """
    # s2 = [1, 2, 3]
     print(id(s2))  # 2171184953160
     s2.append(11111111)
     print(id(s2))  # 2171184953160

     sss1 = '  jason  '
     print(id(sss1))
     res = sss1.strip()
     print(res)
     print(sss1, id(sss1))

队列与堆栈

队列
  	先进先出
      	eg:超市排队结账 符合队列的特征
    堆栈
  	先进后出
      	eg:叠衣服 符合堆栈的特征
  # 使用列表模拟出队列与堆栈的特征
  	# 队列
   new_list = []
   # 先进
   new_list.append(111)
   new_list.append(222)
   new_list.append(333)
   先出
   for i in new_list:
       print(i)
   print(new_list.pop(0))
   print(new_list.pop(0))
   print(new_list.pop(0))

  # 堆栈
  newm_list = []
  # 先进
  newm_list.append(111)
  newm_list.append(222)
  newm_list.append(333)

  # 后出
  print(newm_list.pop())
  print(newm_list.pop())
  print(newm_list.pop())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lamb!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值