一、python字符串(str)概念
- 字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变 量分配一个值即可。
a = 'hello world'
b = "abcdefg"
print(type(a))
print(type(b))
注意:控制台显示结果为
<class 'str'>
, 即数据类型为str(字符串)。
1.1 字符串特征
- 一对引号字符串
name1 = 'Tom'
name2 = "Rose"
- 三引号字符串
name3 = ''' Tom '''
name4 = """ Rose """
a = ''' i am Tom,
nice to meet you! '''
b = """ i am Rose,
nice to meet you! """
注意:三引号形式的字符串支持换行。
思考:如果创建一个字符串
I'm Tom
?
c = "I'm Tom"
d = 'I\'m Tom'
1.2 字符串输出
print('hello world')
name = 'Tom'
print('我的名字是%s' % name)
print(f'我的名字是{name}')
1.3 字符串输入
在Python中,使用input()
接收用户输入。
- 代码
name = input('请输入您的名字:')
print(f'您输入的名字是{name}')
print(type(name))
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
print(type(password))
- 输出结果
E:\python\python38\python.exe E:/python/PycharmProjects/python_code/练习.py
请输入您的名字:1
您输入的名字是1
<class 'str'>
请输入您的密码:1
您输入的密码是1
二、转义字符
2.1 什么是转义字符
转义字符是一个计算机专业词汇。
具体的转义字符有:
转义字符 | 描述 |
---|---|
(在行尾时) | 续行符 |
\ | 反斜杠符号 |
’ | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
2.2 转义字符的实际应用
2.2.1单引号,双引号在字符串里
- python当中,定义一个字符串可以使用单引号,比如s = ‘abcd’,那么如何在这样的字符串里写一个单引号呢?比如你需要定义一个字符串 it’s a book
s = 'it's a book'
-
如果你是这样实现的,编辑器就会报错,因为这个字符串是用单引号括起来的,可是中间又出现一个单引号,到底哪两个单引号构成一个字符串呢?这里面就出现了歧义,而计算机最怕的就是歧义。
-
这种情况下,你就需要使用转义字符了
s = 'it\'s a book'
- 单引号的你学会了,双引号的也是相同的道理
s = "使用\"创建字符串"
- 如果要在字符串里使用 \ 呢,则需要写成 \
s = "换行符是\\n"
print(s)
- 执行代码,输出结果为
换行符是\n
2.2.2写文件时使用换行符
lst = ['book', 'python', 'good']
- 现在要求你将列表里的单词写入到文件中,每个单词一行,写文件要用write方法,但是这个方法是不会主动添加换行符的,因此我们必须主动加上
lst = ['book', 'python', 'good']
with open('data', 'w')as f:
for word in lst:
f.write(word + "\n")
- 如果你把代码里的f.write(word + “\n”) 修改成f.write(word),文件里最终只有一行数据
2.2.3读取文件时,要去掉换行符
- 读取文件时,不论是是用readline,还是readlines,每一行的末尾的换行符也会被读取,但这个换行符是没有什么作用的,因此需要删除
with open('data', 'r')as f:
for line in f:
print(line.strip())
- 程序输出结果是
book
python
good
-
字符串的strip方法可以移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
-
如果你把print(line.strip())这行代码改成print(line),不去除末尾的换行符,程序最终输出结果就会变成
book
python
good
- 输出的内容不是紧挨着的,这是因为读取到的line末尾有一个换行符,print输出原本就是换行输出的,再加上line带的换行,就会导致这样的结果。
三、python字符串格式化
3.1 % 格式化字符串
- 在交互式解释器里跟随我操作
>>> '我喜欢 %s 色' % '红'
'我喜欢 红 色'
>>> a = '我是%s, 今年%d 岁'
>>> b = a % ('小明', 14)
>>> b
'我是小明, 今年14 岁'
-
你应当注意到,字符串a当中有一些内容用了一些特殊表示形式,%s, %d ,这样做的目的是为了通过格式化字符串来填充这部分内容,以便于生成想要的字符串内容。
-
python提供了很多字符串格式化符号,用以格式生成不同类型的数据
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
- 使用% 虽然可以格式化,但并不推荐用这种方法,因为这样写出来的代码可阅读性较差,更加友好的方式是使用字符串的format方法<