DAY 7
Chapter 6 字符串 STRINGS
字符串文字
四种引号
引号的作用就是将文字包裹起来,告诉python这是个字符串
单引号和双引号是最常见的两种字符串引号
三个引号的情况不太常见,但是它在一些场合有特定的作用(如函数文档 doc-strings)
我们为什么需要两种不同的引号?
#为了写出这样的句子
print("你说:'好嘞答应你'")
输出的是 你说:'好嘞答应你'
字符串中的换行符号
前面有反斜杠\的字符,叫做转义序列
比如\n代表换行,尽管它看起来像两个字符,但是python依然把它视为一个特殊的字符
可以在字符串后面使用反斜杠'\'来排除后面的换行
其他的转义序列
输出单个引号 可以这样
print("\双引号其中一个")
其他参考C语言
转义序列只作为一个字符存在
repr VS print
repr输出的是字符串的具体结构,比如有"\t",在repr()输出中会有\t本身出现
一些字符串常量
import string
print(string.ascii_letters)
abcd...xyzABCD...XYZ
print(string.ascii_letters)
abcd...xyz
print(string.ascii_uppercase)
ABCD...XYZ
print(string.digits)
0123456789
print(string.punctuation)
能打印的符号
print(string.printable)
所有能打印的单体
print(string.whitespace)
空白字符
print(repr(string.whitespace))
奇怪东西
一些字符串的运算
字符串相加---->拼接
字符串乘一个数---->这个字符串输出几遍
in 运算print("???" in "??????")会输出True 或者 False
判断前是否在后里面出现
字符串索引和切片
单个字符索引
索引可以让我们在特定位置找到一个字符
用切片来获取字符串的一部分
print(s[0:4])左闭右开
切片的默认参数
左边没参数的时候默认值是0,右边没参数的时候默认值是-1
切片的第三个参数
翻转字符串
步长如果是-1的话就是从右往左一个一个数
print(s[::-1])
可以但是不优雅
join 函数(可以把后续的列表或者说一个序列给依次添加到一个字符串里面来)
print("".join(reversed(s)))
可以但还是不够优雅
写一个函数就叫翻转字符串
def reverseString(s):
return s[::-1]
print(reverseString(s))
这个优雅
字符串的循环
用索引的for 循环
for i in range(len(s))
print(i, s[i])
其实也可以不用索引(超级好用的in)
for c in s:
print(c)
直接输出的就是s[i]
也可以使用 enumerate()获得元素的序号
for idx, c in enumerate(s):
print(idx, c)
这个与上述第一个输出内容相同,序号+实际内容
zip(a, b)可以在一次循环中,分别从a 和 b 里同时取出一个元素
for a, b in zip(s, reverseString(s)):
print(a, b)
正序倒序全部输出
for idx, (a, b) in enumerate(zip(s, reverseString(s))):
print(idx, a, b)\
比较高级了
用split()来循环
class_name.split()本身会产生一个新的叫做“列表”的东西,但是它不存储任何内容
class_name = "hi hello hi hello"
for word in class_name.split():
print(word)
会输出
hi
hello
hi
hello
用中括号括起来的叫做列表
['learn', 'python', 'the', 'smart', 'way', '2nd', 'edition']
例子:回文判断
正反读一样便是回文
如果s = reverseString(s)
又或是s[i] = s[len(s) - 1 - i]
一些跟字符串相关的内置函数
str() 和 len()
str将其他东西转成字符串
chr() 和 ord()
ord将字符转成ASCII码
chr将码转化成对应字符
eval函数用来执行字符串里的表达式,但强烈不推荐使用
推荐使用 ast.literal_eval()
inport ast
s_safe = "(3**2 + 4**2)**0.5"
s_safe_result = ast.literal_eval(s_safe)
print(s_safe_result)
print(type(s_safe_result))
s.isalnum
s.isalpha
s.isdigit
s.islower
s.isspace
s.isupper
.lower变小写
.upper变大写
.strip()可以将字符串首尾的空格删除
.replace("","")可以将前换成后
.count()可以查字符串中出现了几个括号里的东西
.startwith()是不是以括号里的东西开头
.endwith参考startwith
.find()找到匹配的子串的位置,没找到就是-1 需要考虑是不是-1 ,如果是-1写个if不执行操作
.index跟find很像,但没找到的话就会报错
用f - string 格式化字符串
x = 42
y = 99
print(f'你知道{x} + {y} 是 {x+y} 吗?')
输出 你知道 42 + 99 是 141 吗?
其他格式化字符串的方法
-
%操作
-
format()方法
字符串是不可变的
必须创建一个新的字符串
字符串和别名
s = 'data'
t = s
s += 'whale'
print(s)
print(t)
输出:
datawhale
data
基础文件操作
Open()函数
python open()函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数
open(file, mode)函数主要有 file 和 mode 两个参数, 其中 file 为需要读写文件的路径。mode为读取文件时的模式,常用的模式有以下几个:
-
r: 以字符串的形式读取文件
-
rb: 以二进制的形式读取文件
-
w: 写入文件
-
a: 追加写入文件
不同模式下返回的文件对象功能也会不同
文件对象
open 函数会返回一个文件对象,在进行文件操作前,我们首先需要了解文件对象提供了那些常用的方法:
-
close() 关闭文件
-
在 r 与 rb 模式下:
-
read()读取整个文件
-
readline()读取文件的一行
-
-
-
write()
-
writelines()
file = open('dsadwdas.txt','w')
content = '写入的内容' #创建需要写入的字符串变量
file.write()
file.close()
w模式会覆盖之前的文件内容,如果要跟着原来的内容走,就用a模式
只有close了下次才能write
如果忘记,就用this函数
import this
get(c,c)是什么意思
总结
-
单引号与双引号要适时出现,多行文本用三引号
-
字符串中可以包含转义序列
-
repr()能够显示出更多的信息
-
字符串本身包含许多内置方法,in 是一个特别好用的东西
-
字符串是不可变的常量
-
本文作者:berber288
本文链接:https://www.cnblogs.com/berber288/p/17872064.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步