学习python的第六天

字符串

作用:传递信息。
字符串表达式:使用单引号、双引号引起来的一串符号叫字符串

字符串的性质:

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

一、转义字符

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

print('ab\tc\nd')
print("ab'cd")
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() - 能够将符号转换成十进制。

print(ord('。'))
print(chr(12290))

0-9范围:48-57
A-Z范围:65-90
a-z范围:97-122
所有的中文范围:\u4e00-\u9fa5(19968-40869)

print(chr(ord('\u4e00')), chr(ord('\u9fa5')))
for i in range(19968, 40870):
    print(chr(i), end='')
for i in range(4352, 4608):
    print(chr(i), end='')

四.字符串的成员运算:in,not in

print('a' in 'abcd')

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

print(chr(0b01000001), chr(65), chr(0x41), chr(0o101))

hex() - 将进制转换为十六进制
oct() - 将进制转换为八进制

print(hex(65))
print(oct(65))

字符串的切片

str1 = """
从前有座山,
山上有座庙,
庙里有个老和尚,
老和尚对小和尚说
"""

获取第一个“山”,下标为5

print(str1[5])

获取“说”的下标

print(str1[-2])

注意:一个回车键代表一个\n,长度为1.

切片

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

print(str1[1:6])

2.将“庙有老”取出

print(str1[15:20:2])

3.将“庙座有上山”

print(str1[12:7:-1])

一行完整的内容如何换行?(回车会自动出现’\‘)

num = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \
      + 1 + 2 + 3 + 4 + 5 + 6 + 7
print(num)
str2 = 'cdniewcska' \
       'vnwrtcdsab'
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])
练习1:“abcderf” -> “ABCDERF”
str_1 = 'abcderf'
str_2 = ''
for i in str_1:
    if 'a' <= i <= 'z':
        str_2 += chr(ord(i) - 32)  # 拼接
print(str_2)
练习2:‘abcdABCD一二三四’ -> ‘ABCDabcd一二三四’
str4 = 'abcdABCD一二三四'
str5 = ''
for i in str4:
    if 'a' <= i <= 'z':
        str5 += chr(ord(i) - 32)
    elif 'A' <= i <= 'Z':
        str5 += chr(ord(i) + 32)
    else:
        str5 += i
print(str5)

字符串的方法和函数

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

print('abcANC3425'.upper())

lower() - 大写字母转小写字母

print('abcANC3425'.lower())

capitalize() - 将字符串中首字母转大写, 必须是以字母开头的字符串

print('abc123C456;.b'.capitalize())

title() - 将字符串中所以连续英文字母的子串首字母转大写

print('abc123C456;.b'.title())

split() - 切割,以指定符号为切割点,将切割点左右的字符串分开并保存到列表中

result1 = ',1, 2, 3,'.split(',')
print(result1)
print('3' + '' == '3')

join() - 将一个所有元素均为字符串的序列(容器)中的所有元素以指定符号拼接起来

result2 = ','.join(result1)
print(result2)

strip() - 默认去掉字符串头尾的空符号(空格、\n、\t等都是空符号),也可以指定去除的符号

str1 = '\nabc \t\n'
print('*' * 20)
print(str1)
print('*' * 20)
print(str1.strip())
print('*' * 20)
print(str1.strip('\n'))
print('*' * 20)
print('abcd*'.strip('*'))

replace(‘old_str’,‘new_str’) - 替换,将一个字符串中的全部old_str替换成new_str
replace(‘old_str’,‘new_str’,‘次数’) - 将一个字符串中指定数量的old_str替换成
new_str

str1 = ',1,2,3,'
print(str1.replace(',', ''))  # 123
print(str1.replace(',', '', 2))  # 12,3, 替换了前两个,
例如:
"你可真是个垃圾"

语句中有主语、谓语、宾语等
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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值