疯狂Python讲义之变量和简单类型--深入使用字符串笔记4
目录
1. 转义字符
2. 字符串格式化
3. 序列相关方法
4. 大小写相关方法
5. 查找、替换相关方法
6. 分割、连接方法
1. 转义字符
在字符串中可以使用反斜线进行转义;如果字符串本身包含反斜线,则需要使用 “\\” 表示,“\\” 就是转义字符。
s = 'Hello\n\world'
print(s)
2. 字符串格式化
Python 提供了“%”对各种类型的数据进行格式化输出
# 实例代码
price = 123
print("The book's price is %s" % price)
这行代码中的print 函数包含三个部分,第一部分是格式化字符串(它相当于字符串模板),该格式化字符串中包含一个“ %s ”占位符,它会被第三部分的变量或表达式的值代替; 第二部分固定使用“%”作为分隔符。
格式化字符串中的“ %s ”被称为转换说明符( Conversion Specifier ),其作用相当于一个占位符, 它会被后面的变量或表达式的值代替。“ %s '’指定将变量或值使用str() 函数转换为字符串。
如果格式化字符串中包含多个“ %s ”占位符,第三部分也应该对应地提供多个变量,并且使用圆括号将这些变量括起来.
在默认情况下, 转换出来的字符串总是右对齐的,不够宽度时左边补充空格。Python 也允许在最小宽度之前添加一个标志来改变这种行为, Python 支持如下标志。
- : 指定左对齐。
- : 表示数值总要带着符号(正数带“+” ,负数带“ _,, )。
- :表示不补充空格, 而是补充0 。
对于转换浮点数, Python 还允许指定小数点后的数字位数:如果转换的是字符串, Python 允许指定转换后的字符串的最大字符数。这个标志被称为精度值,该精度值被放在最小宽度之后,中间用点( . )隔开。
price = 108
print("the book's price is %x" % price)
user = "Charli"
age = 8
# 格式化字符串有两个占位符,第三部分提供2个变量
print("%s is a %s years old boy" % (user , age))
num = -28
print("num is: %6i" % num)
print("num is: %6d" % num)
print("num is: %6o" % num)
print("num is: %6x" % num)
print("num is: %6X" % num)
print("num is: %6s" % num)
num2 = 30
# 最小宽度为0,左边补0
print("num2 is: %06d" % num2)
# 最小宽度为6,左边补0,总带上符号
print("num2 is: %+06d" % num2)
# 最小宽度为6,右对齐
print("num2 is: %-6d" % num2)
my_value = 3.001415926535
# 最小宽度为8,小数点后保留3位
print("my_value is: %8.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0
print("my_value is: %08.3f" % my_value)
# 最小宽度为8,小数点后保留3位,左边补0,始终带符号
print("my_value is: %+08.3f" % my_value)
the_name = "Charlie"
# 只保留3个字符
print("the name is: %.3s" % the_name) # 输出Cha
# 只保留2个字符,最小宽度10
print("the name is: %10.2s" % the_name)
3. 序列相关方法
字符串本质上就是由多个字符组成的,因此程序允许通过索引来操作字符。
Python 字符串直接在方括号( [])中使用索引即可获取对应的字符, 字符串中第一个字符的索引为0 、第二个字符的索引为1,后面各字符依此类推。此外, Python 也允许从后面开始计算索引,最后一个字符的索引为-1,倒数第二个字符的索引为-2······依此类推。
除可获取单个字符之外,也可在方括号中使用范围来获取字符串的中间“一段”(被称为子串)。
允许省略起始索引或结束索引。如果省略起始索引,相当于从字符串开始处开始截取;如果省略结束索引,相当于截取到字符串的结束处。
Python 字符串还支持用in 运算符判断是否包含某个子串。
如果要获取字符串的长度,则可调用Python 内置的len()函
使用全局内置的min()和max()函数获取字符串中最小字符和最大字符
s = 'crazyit.org is very good'
# 获取s中索引2处的字符
print(s[2]) # 输出a
# 获取s中从右边开始,索引4处的字符
print(s[-4]) # 输出g
# 获取s中从索引3处到索引5处(不包含)的子串
print(s[3: 5]) # 输出zy
# 获取s中从索引3处到倒数第5个字符的子串
print(s[3: -5]) # 输出zyit.org is very
# 获取s中从倒数第6个字符到倒数第3个字符的子串
print(s[-6: -3]) # 输出y g
# 获取s中从索引5处到结束的子串
print(s[5: ]) # 输出it.org is very good
# 获取s中从倒数第6个字符到结束的子串
print(s[-6: ]) # 输出y good
# 获取s中从开始到索引5处的子串
print(s[: 5]) # 输出crazy
# 获取s中从开始到倒数第6个字符的子串
print(s[: -6]) #输出crazyit.org is ver
# 判断s是否包含'very'子串
print('very' in s) # True
print('fkit' in s) # False
# 输出s的长度
print(len(s)) # 24
# 输出'test'的长度
print(len('test')) # 4
# 输出s字符串中最大的字符
print(max(s)) # z
# 输出s字符串中最大的字符
print(min(s)) # 空格
4. 大小写相关方法
Python 是“自带文档”的。此处需要读者简单掌握两个帮助函数。
- dir() : 列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)。
- help() : 查看某个函数或方法的帮助文档。
a = 'our domain is crazyit.org'
# 每个单词首字母大写
print(a.title())
# 每个单词首字母小写
print(a.lower())
# 每个单词首字母大写
print(a.upper())
5. 删除空白
str 还提供了如下常用的方法来删除空白。
- strip () : 删除字符串前后的空白。
- lstrip() : 删除字符串前面(左边)的空白。
- rstrip () : 删除字符串后面(右边)的空白。
需要说明的是, Python 的str 是不可变的(不可变的意思是指,字符串一旦形成,它所包含的字符序列就不能发生任何改变),因此这三个方法只是返回字符串前面或后面空白被删除之后的副本, 并没有真正改变字符串本身。
lstrip () 方法默认删除字符串左边的空白,但如果为该方法传入指定参数,则可删除该字符串左边的指定字符。
s = ' this is a puppy '
# 删除左边的空白
print(s.lstrip())
# 删除右边的空白
print(s.rstrip())
# 删除两边的空白
print(s.strip())
# 再次输出s,将会看到s并没有改变
print(s)
s2 = 'i think it is a scarecrow'
# 删除左边的i、t、o、w字符
print(s2.lstrip('itow'))
# 删除右边的i、t、o、w字符
print(s2.rstrip('itow'))
# 删除两边的i、t、o、w字符
print(s2.strip('itow'))
5. 查找、替换相关方法
str 还提供了如下常用的执行查找、替换等操作的方法。
- startswith():判断字符串是否以指定子串开头。
- endswith ():判断字符串是否以指定子串结尾。
- find (): 查找指定子串在字符串中出现的位置,如果没有找到指定子串,则返回- I 。
- index () : 查找指定子串在字符串中出现的位置,如果没有找到指定子串,则引发ValueError错误。
- replace(): 使用指定子串替换字符串中的目标子串。
- translate (): 使用指定的翻译映射表对字符串执行替换。
s = 'crazyit.org is a good site'
# 判断s是否以crazyit开头
print(s.startswith('crazyit'))
# 判断s是否以site结尾
print(s.endswith('site'))
# 查找s中'org'的出现位置
print(s.find('org')) # 8
# 查找s中'org'的出现位置
print(s.index('org')) # 8
# 从索引为9处开始查找'org'的出现位置
#print(s.find('org', 9)) # -1
# 从索引为9处开始查找'org'的出现位置
# print(s.index('org', 9)) # 引发错误
# 将字符串中所有it替换成xxxx
print(s.replace('it', 'xxxx'))
# 将字符串中1个it替换成xxxx
print(s.replace('it', 'xxxx', 1))
# 定义替换表:97(a)->945(α),98(b)->945(β),116(t)->964(τ),
table = {97: 945, 98: 946, 116: 964}
print(s.translate(table)) # crαzyit.org is α good site
从上面程序可以看出, str 的trans l a te ()方法需要根据翻译映射表对字符串进行查找、替换。在上面程序中我们自己定义了一个翻译映射表,这种方式需要开发者能记住所有字符的编码,这显然不太可能。为此, Pyth on 为由类提供了一个maketra ns()方法,通过该方法可以非常方便地创建翻译映射表。
假如定义a -> 1 、b ->2、c->3 的映射, 程序只要将需要映射的所有字符作为maketrans () 方法的第一个参数,将所有映射的目标字符作为maketrans () 方法的第二个参数即可。
6. 分割、连接方法
Python 还为str 提供了分割和连接方法。
- split(): 将字符串按指定分割符分割成多个短语。
- join ():将多个短语连接成字符串。
str 的split()和join () 方法互为逆操作一 split () 方法用于将字符串分割成多个短语:而join () 方法则用于将多个短语连接成字符串。
s = 'crazyit.org is a good site'
# 使用空白对字符串进行分割
print(s.split()) # 输出 ['crazyit.org', 'is', 'a', 'good', 'site']
# 使用空白对字符串进行分割,最多只分割前2个单词
print(s.split(None, 2)) # 输出 ['crazyit.org', 'is', 'a good site']
# 使用点进行分割
print(s.split('.')) # 输出 ['crazyit', 'org is a good site']
mylist = s.split()
# 使用'/'为分割符,将mylist连接成字符串
print('/'.join(mylist)) # 输出 crazyit.org/is/a/good/site
# 使用','为分割符,将mylist连接成字符串
print(','.join(mylist)) # 输出 crazyit.org,is,a,good,site
疯狂Python讲义之变量和简单类型--深入使用字符串笔记4相关推荐
- python中︿是什么意思_Python learning notes-0003-注释、变量、简单类型、运算符,学习,笔记...
一.注释 1.单行注释使用# 2.多行注释使用三个单引号或三个双引号'''注释'''或"""注释""" 在python的*.py文件中可以直 ...
- 疯狂Python讲义学习日志01——变量和简单类型
1.变量和简单类型 1.1python脚本注释 python提供了两种脚本注释的方式: 当行脚本的注释: 对于单行的python的脚本而言,可以在该行脚本所在的左侧添加"#"字符的 ...
- python中的变量是动态类型的什么意思_Python零基础入门(一):对Python的简单认识...
点击蓝字 关注浅韵 一起划水 写在前面 期末考试告一段落之后,这个公众号又活了. 漫长的假期,想玩也是肯定的,但是发现自己想学的东西也很多,想写的东西也很多,所以给自己来了一个假期整活计划. 在这个假 ...
- 疯狂python讲义视频 百度云-疯狂Python讲义 PDF 含源码工具版
给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于Python编程.Python语法方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小124.3 MB,李刚编写,目前豆瓣.亚 ...
- 疯狂python讲义视频 百度云-疯狂Python讲义 PDF高清版附源码
内容简介 本书全面,深入地介绍了Python编程的相关内容,大致可分为四个部分.*系统部分介绍了Python的基本语法结构,函数编程,类和对象,模块和包,异常处理等: 第二部分主要介绍Python常用 ...
- 疯狂python讲义学习笔记——中十章完结
#第十一章 thinker import tkinter as tk print(help(tk.Button.__init__))#以按扭为例查看有什么属性 class myApplication( ...
- 李刚 疯狂Python讲义 读书笔记
疯狂Python讲义 李刚 这不一定是最好的python入门书,我买它纯粹是因为遇到公众号的推销.对入门教材不需要太纠结,基础知识部分大家都是互相借鉴的,买最近出版的就行. 我是经历了很长时间的碎片化 ...
- 疯狂Python讲义学习笔记(含习题)之 常见模块
一.sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息. >>> import sys >>> [e for e in di ...
- 疯狂Python讲义学习笔记(含习题)之 类和对象
Python支持面向对象的三大特征:封装.继承和多态. 一.类和对象 可以把类当成一种自定义类型,可以使用类来定义变量,也可以使用类来创建对象. (一)定义类 类是某一批对象的抽象,可以把类理解成某种 ...
最新文章
- Exception loading sessions from persistent storage
- Spring Boot 添加拦截器的配置方式
- openresty luarocks 安装以及openssl 问题处理
- iPhone OS框架 介绍
- 404页面自动跳转javascript
- 使用delphi 开发多层应用(十六)使用XMLRPC 实现basic4android 远程调用RTC服务
- CA与数字证书的自结
- 动手学深度学习Pytorch Task06
- 病历管理系统设计与实现
- 英文站变现赚美金的7种方式
- 【网络编程--UDP、TCP】
- 樊登读书会-《关键对话》
- Problem H. Curious (莫比乌斯反演)
- IDA7.0提示Oops! internal error 1491 occured.解决办法
- Kafka之sync、async以及oneway
- 复习整合Mysql指令操作
- 程序员的密码管理之道
- 申请CVE的姿势总结
- i512500h和r76800hs对比 i5 12500h和r7 6800hs选哪个好
- 一种简单、安全的Dota全图新思路 作者:LC