Day6

1. 字符串的运算

字符串
作用:传递信息
字符串表达式:使用单引号或双引号引起来的一串符号叫字符串。
如:’ ‘, " ", ‘’’ ‘’', “”" “”"

字符串的性质
a. 字符串是有序的(下标、切片)
b. 字符串是不可变的(没有增删改)
c. 字符串的容器符号’‘, “”, ‘’’ ‘’', “”" “”";类型:str
d. 字符串分类:普通字符、转义字符、原始字符串

1.1 转义字符

a. 有特殊含义的符号。原来转义字符规定使用 \ + 数字表示有特殊意义的符号。
b. 现在C语言规定 \ + 特定符号表示有特殊意义的符号。
c. \ + 指定符号可以使有特殊含义的符号变成其本身,可以让没有特殊含义的符号变得有特殊意义。

print('a\rb\tcd\ne')  # \t相当于insert(改写)# 运行结果
'''
b   cd
e
'''
print('ab\'cd')# 运行结果
# ab'cd
print('ab\\tcd')# 运行结果
# ab\tcd

1.2 原始字符串

a. 在字符串前面添加r或R,能将字符串中的转义字符变成其本身。
b. 一个转义字符长度始终为1,添加了原始字符串的转义字符长度是2。

print('12\t34')
# 运行结果
# 12    34
print(r'12\t34')
# 运行结果
# 12\t34
print(len(r'\t'), len('\t'))
# 运行结果
# 2 1

2. 字符串的运算

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

print('ab' + 'cd')# 运行结果
# abcd

2.2 字符串的重复

print('*' * 20)# 运行结果
# ********************

2.3 字符串比较大小

a. 比较第一对不相同元素的大小(编码值)
b. Python使用的编码表是ASCII编码表的拓展表Unicode编码表(万国码)

print('ab' > 'c')  # False
print('ab。' > 'abc')# 运行结果
# False
# True

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

print(ord('\u4e00'), ord('\u9fa5'))
for i in range(19968, 40870):print(chr(i), end='')# 运行结果
'''
一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丟丠両丢丣两严並丧丨丩个丫丬中丮丯丰丱串
(略)
齷齸齹齺齻齼齽齾齿龀龁龂龃龄龅龆龇龈龉龊龋龌龍龎龏龐龑龒龓龔龕龖龗龘龙龚龛龜龝龞龟龠龡龢龣龤龥----
'''

2.4 字符串的成员运算:in、not in

print('a' in 'abcd')# 运行结果
# True

2.5 进制转换

chr() - 能够将进制转换成对应的符号
ord() - 能够将符号转换为十进制

print(ord('。'))
print(chr(12290))# 运行结果
# 12290
# 。

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

print(chr(0b01000001), chr(65), chr(0x41), chr(0o101))# 运行结果
# A A A A

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

print(hex(65))
print(oct(65))# 运行结果
'''
0x41
0o101
'''

3. 下标和切片

3.1 下标

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

获取第一个"山",下标为5

print(str1[5])# 运行结果
# 山

根据"说"的下标获取“说”

print(str1[-3])# 运行结果
# 说
  • 注意:一个回车键代表的一个\n,长度为1

3.2 切片

1.将“从前有座山”取出。
2.将“庙有老”取出来
3.将“庙座有上山”取出

print(str1[1: 6])
print(str1[15: 21: 2])
print(str1[12: 7: -1])# 运行结果
'''
从前有座山
庙有老
庙座有上山
'''

3.3 一行完整的代码如何换行写,不影响输出结果?

输入 \ 后按enter键

num = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \
+ 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
print(num)str2 = '123456'\'7890123'
print(str2)# 运行结果
'''
72
1234567890123
'''

4. 字符串的遍历(循环)

4.1 直接遍历

str1 = '王者荣耀'
for i in str1:print(i)#运行结果
'''
王
者
荣
耀
'''

4.2 间接遍历

str1 = '王者荣耀'
for i in range(len(str1)):print(str1[i])#运行结果
'''
王
者
荣
耀
'''

获取“王荣”

str1 = '王者荣耀'
for i in range(0, len(str1), 2):  # 一定要写初始值print(str1[i])# 运行结果
'''
王
荣
'''

4.3 练习

  1. “abcdef" 转换为 “ABCDEF”
str2 = 'abcdef'
str3 = ''
# print(ord('a'))
for i in str2:str3 += chr(ord(i) - 32)
print(str3)# 运行结果
# ABCDEF
  1. 将“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)# 运行结果
# ABCDabcd一二三四

5. 字符串的方法和函数

5.1

  1. upper() - 小写字母转大写字母
print('abc'.upper())# 运行结果
# ABC
  1. lower() - 大写字母转小写字母
print('ABC'.lower())# 运行结果
# abc
  1. capitalize() - 将字符串中所有单词的首字母转大写, 必须以字母开头的字符串
print('abc12345hbvdg;.n'.capitalize())# 运行结果
# Abc12345hbvdg;.n
  1. title() - 将字符串中所有连续英文字母的字串首字母转大写
print('abc12345hbvdg;.n;,m'.title())# 运行结果
# Abc12345Hbvdg;.N;,M
  1. split() - 切割,以指定符号位切割点,将切割点左右的字符串分开后一并保存到列表中
result1 = '1, 2, 3, a'.split(',')
print(result1)
print('3' + '' == '3')# 运行结果
'''
['1', ' 2', ' 3', ' a']
True
'''
  1. join() - 将一个所有元素均为字符串的序列(容器)中的所有元素以指定符号拼接起来
result1 = ['1', ' 2', ' 3', ' a']
result2 = ','.join(result1)
print(result2)# 运行结果
# 1, 2, 3, a
  1. strip() - 默认去掉字符串头尾的空字符号(空格、\n、\t等都是空符号),也可以指定去掉的符号

如:

str1 = '\nabc \t\n'
print('----------')
print(str1)
print('----------')# 运行结果
'''
----------abc   ----------
'''
str1 = '\nabc \t\n'
print('----------')
print(str1)
print('----------')print(str1.strip())
print('----------')print(str1.strip('\n'))
print('----------')print('abc*'.strip('*'))# 运行结果
'''
----------abc   ----------
abc
----------
abc
----------
abc
'''
  1. 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))# 运行结果
'''
123
12,3,
'''

5.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)# 运行结果
# 屏蔽不文明用语之后的结果: 你可真是个**

Day6 over!

学习Python的 第六天Day6, 今天你get了吗❤相关推荐

  1. 《Python编程从入门到实践》——学习python的第六天

    Python学习的第六天 前言 if语句的补充 字典 前言 今天是学习python的第六天,太忙了,所以更新有点推迟了,话不多说咱们直接上干货吧. if语句的补充 省略else代码块 为什么要省略el ...

  2. 学习python的第六天

    一. 元组操作: # 定义一个元组 tuple 元组是不可改变数据类型 是不能更改的 但是使用 t1 = (10, 24, 57) print(t1, type(t1))# 定义只有一个元组的元素 必 ...

  3. 学习python的第六天(元组、字典和集合操作)

    # 定义一个元组 t1 = (10, 12, 13) print(t1, type(t1))# 只有一个元素的元组,后面必须要一个逗号 t2 = (12,) print(t2, type(t2))# ...

  4. 十一Python之路,Day6 - 面向对象学习

    本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你 ...

  5. 自学python需要的软件-学习Python,从入门到精通,其实只需要两个月就够了

    毫无疑问,Python 是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事.其实,只要掌握了科学的学习方法并制定了合理的学习计划, ...

  6. python自学-学习Python,从入门到精通,其实只需要两个月就够了

    毫无疑问,Python 是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事.其实,只要掌握了科学的学习方法并制定了合理的学习计划, ...

  7. 学习python需要多长时间?

    前言 毫无疑问,Python 是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事.其实,只要掌握了科学的学习方法并制定了合理的学习 ...

  8. 学习 Python 需要花多久时间?

    选自Medium 作者:Jhankar Mahbub 机器之心编译 参与:王子嘉.Geek AI 毫无疑问,Python 是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地 ...

  9. 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

最新文章

  1. shardingjdbc全局表_Sharding-JDBC 分库分表概述
  2. 不关闭seLinux解决vsftpd服务本地用户不能登录问题(500 OOPS: cannot change directory:/home/***
  3. HttpServlet的doGet()和doPost()方法
  4. linux系统下的mysqlgt;aborted_MySQL令人头疼的Aborted告警案例分析
  5. php 赋予最高权限,为PHP执行赋予root权限(一)
  6. qml入门学习(四):附加信号Component.onCompleted和Component.onDestruction
  7. java fx 多个窗口_JavaFX Scene Builder(窗口各种设置)
  8. python培训价目表-python培训班费用在多少?
  9. 【个人笔记】OpenCV4 C++ 快速入门 05课
  10. 苹果核 - iOS端Mock GPS定位 —— 测试、开发、玩游戏、发朋友圈等等,你都用得上...
  11. 论文《基于FPGA 的CFAR 设计与实现》复现
  12. 硬盘服务器哪个好用吗,服务器用固态硬盘好还是机械硬盘好
  13. 【电力电子技术DC-DC】Boost升压式变换器Simulink仿真
  14. 时间加减计算器_财政局刚刚回应丨禁止携带计算器,否则成绩无效!
  15. 微信小程序抽奖插件分享
  16. python_split()函数使用方法
  17. 小火狐进化_《乐贝星空》宠物大全 解析小火狐三阶进化
  18. Mybatis 主键插入回显
  19. Windows 11 安装 Android 13版本的安卓子系统(带 Google Play 商店和 Magisk) 2210.40000.10.0
  20. FPGA三人表决器问题总结

热门文章

  1. 李宏毅机器学习——Why Deep总结
  2. jdk8两个List取交集、差集、并集(不去重)、并集(去重)
  3. centos java 指令_linux(centos7)中systemctl命令的使用
  4. Chinese Text in the Wild (CTW data)
  5. 14(高级)CSS动画之:旋转星球
  6. 网络图可视化工具
  7. python 随机padding_PyTorch中的padding(边缘填充)操作方式
  8. 算法框架专辑80分版本
  9. RNN循环神经网络图解概念及从零开始实现
  10. Vue2.0教程(二) vue指令学习