day06学习 Python字符串

本文详细介绍了字符串的性质、转义字符、原始字符串、字符串运算、比较、成员运算、下标与切片等概念,并提供了多个实例演示,如字符串拼接、重复、比较、进制转换等。同时,讲解了字符串的常用方法,如`upper()`、`lower()`、`split()`、`join()`等,以及在实际应用中的案例,如敏感词过滤。此外,还涉及到了字符串在信息技术中的重要性及相关的关键词和标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串

作用:传递信息

表达式:使用单引号''''''''双引号""""""""引起来的一串符号叫字符串

性质

  1. 字符串是有序的(下标、切片)
  2. 字符串是不可变增删改)
  3. 字符串的容器符号'', "",'''''',""""""
  4. 字符串类型:str
  5. 字符串分类:普通字符转义字符原始字符串

ASCII表在这里插入图片描述

  • 转义字符

    有特殊含义的符号。原来转义字符规定使用\ + 数字表示有特殊意义的符号,现在C语言规定\ + 特定符号表示有特殊意义的符号

    \ + 指定符号可以使有特殊含义的符号变成其本身,可以让没有特殊含义的符号变的有特殊意义

    常见转移字符
    在这里插入图片描述

    print('ab\tc\nd')
    print('ab\'cd')
    print('ab\\tcd')
    
  • 原始字符串

    在字符串前面添加r或者R,能够将字符串中的转义字符变成其本身,让字符串中所有的转义字符功能消失

    print('12\t34')
    print(r'12\t34')
    print(len(r'\t'), len('\t'))
    

    一个转义字符长度始终为1,添加了原始字符串的转义字符长度是2

字符串的运算

  • 字符串的拼接(得到的是新的字符串的对象)

    print('ab' + 'cd')
    
  • 字符串的重复

    print('*' * 20)
    
  • 字符串比较大小

    比较第一对不相同元素的大小(对比的是编码值

    Python使用的编码表ASCII码表的拓展表Unicode编码表(万国码)

    print('ab' > 'c')
    print('ab。' > 'abc')
    
    • chr() - 能够将进制转换成对应的符号
    • ord() - 能够将符号转换为十进制
      • 0-9对应的范围:48-57
      • A-Z对应的范围:65-90
      • a-z对应的范围:97-122
      • 所有的中文对应的范围:\ue400-\u9fa5(十六进制)
    print(ord('。'))
    print(chr(12290))
    
    print(chr(ord('\u4e00')), chr(ord('\u9fa5')))
    print(ord('\u4e00'), ord('\u9fa5')) # 中文对应的十进制范围
    
    # 输出所有的中文
    for i in range(19968, 40870):
        print(chr(i), end='')
    

    进制转换:

    二进制:01

    A: 二进制0b01000001十进制65十六进制0x41八进制0o101

    print(chr(0b01000001), chr(65), chr(0x41), chr(0x41))
    print(hex(65))      # 0x41
    print(oct(65))      # 0o101
    
    • hex() - 将进制转换为十六进制
    • oct() - 将进制转换为八进制
  • 字符串的成员运算: innot in

    print('a' in 'abcd')    # True
    

下标和切片

str1 = """
从前有座山,
山上有座庙,
庙里有个老和尚,
老和尚对小和尚说
"""
#  获取第一个“山”,下标为5,换行有个\n
print(str1[5])
# “说”的下标
print(str1[-2])
# 注意:一个回车键代表一个\n,长度为1。

切片

# 1. 将“从前有座山”取出。

# 2. 将“庙有老”取出

# 3. 将“庙座有上山”输出

print(str1[1:6])
print(str1[15:20:2])
print(str1[12:7:-1])

一行完整的内容如何换行?靠\

num = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \
+1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
print(num)
str2 = '23546576532' \
       '4545'
print(str2)

遍历

循环(遍历)

str1 = '王者荣耀'
# 直接遍历
for i in str1:
    print(i)

# 间接遍历
for i in range(len(str1)):
    print(str1[i])

# 获取“王“、”荣”
for i in range(0, len(str1), 2):
    print(str1[i])

print(str1[::2])

练习:“abcderf” -> “ABCDERF”

str2 = 'abcderf'
str3 = ''
for i in str2:
    str3 += chr(ord(i) - 32)
print(str3)

练习:‘abcdABCD一二三四’ -> ‘ABCDabcd一二三四’

str4 = 'abcdABCD一二三四'
str5 = ''
for i in str4:
    if 'a' <= i <= 'z':
    # 97 <= ord(i) <= 122:
        str5 += chr(ord(i) - 32)
    elif 'A' <= i <= 'Z':
        str5 += chr(ord(i) + 32)
    else:
        str5 += i
print(str5)

字符串的方法和函数

  • upper() - 小写字母转大写字母

    print('abcANC3245,。;'.upper()) 		# ABCANC3245,。;
    
  • lower() - 大写字母转小写字母

    print('Abcqwed456;.b'.lower())		# abcqwed456;.b
    
  • capitalize() - 将字符串中首字母转大写,必须是以字母开头的字符串

    print('abcqweD456;.b'.capitalize())		# Abcqwed456;.b
    
  • title() - 将字符串中所有连续英文字母的子串首字母转大写

    print('abc123D456;.b'.title())		# Abc123D456;.B
    
  • split() - 切割,以指定符号为切割点,将切割点左右的字符串分开并保存到==列表==中

    result1 =', 1, 2, 3,'.split(',')    # ['', ' 1', ' 2', ' 3', '']
    print(result1)
    print('3' + '' == '3')      # True
    
  • jion() - 将一个所有元素均为字符串序列(容器)中的所有元素以指定符号拼接起来

    result2 = ','.join(result1)
    print(result2)          # , 1, 2, 3,    # <class 'str'>
    
  • strip() - 默认去掉字符串头尾的空符号(空格、\n、\等都是空符号),也可以指定去除的符号

    str1 = '\nabc\t\n'
    print('*'*20)
    print(str1)
    print('*'*20)
    print(str1.strip('\n'))
    print('*' * 20)
    print('abc*'.strip('*'))
    
  • replace('old_str', 'new_old') - 替换,将一个字符串中全部old_str替换成new_str

    replace('old_str', 'new_old', '次数') - 将一个字符串中指定数量的old_str替换为new_str

    str1 = ', 1, 2, 3,'
    print(str1.replace(',', ''))
    print(str1.replace(',', '', 2))
    

屏蔽敏感词汇应用

例如:
“你可真是个垃圾”

Python中有一个模块jieba(结巴)对主语、谓语、宾语等进行分词

[‘你’, ‘可’, ‘真是’,‘个’, ‘垃圾’]

# 现存一个词库(停用词):
# ['垃圾', '菜鸡', '辣鸡']
# 如果jieba分词之后的结果在停用词库中出现过,直接进行替换。

str1 = "你可真是个垃圾"
list1 = ['你', '可', '真是','个', '垃圾']
stop_words = ['垃圾', '菜鸡', '辣鸡']
str2 = ''
for i in list1:
    if i in stop_words:
        str2 += str1.replace(i, '*'*len(i))
print('屏蔽不文明用语之后的结果:', str2)		# 屏蔽不文明用语之后的结果: 你可真是个**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值