版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
Python 中有六种标准数据类型:String(字符串)
Number(数字)
List(列表)
Tuple(元组)
Sets(集合)
Dictionary(字典)
今天讲一下字符串。
字符串是什么呢?
书本上说,字符串就是放在引号里面的一系列字符。我觉得用人话不严谨的说,就是标点符号和字母文字组成的那些单词、句子,比如:
‘hello’
‘My favourite number is 23’
但记住一定要用引号引起来,不然就是变量名了对吧。
引号只是告诉 Python,引号中间的内容是字符串而已,引号本身并不会真正显示出来,只有引号中的字符会显示出来。
单引号和双引号都可以,但是必须前后匹配,不能开始用单引号,结束用双引号。 为什么单双引号都可以呢?是为了方便很多特殊情况:比如:
'What's your name?' #这样写是不对的,会报错
上面这句话中有三个单引号,第二个应该被显示出来,但Python 以为第二个代表字符串结束了,以为第三个单引号代表新的字符串开始,但没找到结束的单引号,所以报错。正确写法是:
"What's your name?"
第一个和第三个双引号匹配,中间的单引号就会被 Python 认为是正常的字符显示出来了。
字符串是可以合并的 比如:
name = 'ZackGuo510' #这是用变量储存了一段字符串
print('Hello ' + name)
Hello ZackGuo510
可以用加号,把多个字符串连成一个。注意 hello 的o后面有个空格,否则连接的字符串,Hello 和ZackGuo510之间就没有空格了。 不过据说这种方法很占内存,不建议使用。
转义字符
在需要在字符中使用特殊字符时,Python用反斜杠()转义字符,比如:
\n 代表换行
name = 'Zack\nGUO\n510'
print(name)
Zack
GUO
\加单引号 可以显示单引号,还是刚才那个例子,这样做也行:
print('What\'s your name?')
What's your name?
\t 横向制表符(也叫进格符),相当于按 tab 键的效果,可以产生空格:
name = 'Jack\tRose'
print(name)
Jack Rose
注意,它产生的并不是一个空格,那么用 \t 跟直接按空格键制造空格有什么区别呢?书上没说,我查了好久才找到一个说得清楚的资料,分享一下:《与孩子一起学编程》第21章打印格式化与字符串之水平间隔-制表符|中国少儿编程网www.kidscode.cn
原始字符串
有时候,你就是想写一个普通的\,并不想把它当做转义字符用,你可以使用“原始字符串”,方法是在第一个引号前面加上一个 r:
print('C:\some\name') #这里的 \n 正好跟换行符一样,于是悲剧了
C:\some
ame
print(r'C:\some\name') #前面加一个r,就不会把 \n 当换行符了
C:\some\name
转义字符还有很多,不再列举。
用index 拿字符中的一部分
index 就是一个位置顺序、索引,比如:
name = 'zack'
共4个字母,从第1个到第4个依次是z,a,c,k。但是 index 是从0开始数,所以 z 的index 是0,a 的index 是1,以此类推。
比如我们只想打印 ac:
name = 'zackguo'
print(name[1:3])
ac
1代表开始的 index,包含这一位,3代表结束的 index,不包含这一位,所以[1:3] 就是取 index 是1和2的字符,也就是 ac。
负数可以表示从后往前数,-1代表最后一个字母,但不包含最后一个字母:
name = 'zackguo'
print(name[1:-1])
ackgu
只填一个 index 就只拿这个字符:
name = 'zackguo'
print(name[2])
c
字符串的方法
方法,也叫函数,是Python 对数据执行的操作,不同类型的数据,对应有不同的方法。
我用人话翻译翻译,你可以这么想,水果对应的有搅拌机,能把水果变成果汁;纸对应的有粉碎机,把纸变成纸屑。字符串对应的也有很多方法,比如把字符变成大写的等等:
upper() 方法,把字符串变大写:
name = 'jack'
print(name.upper())
JACK
lower() 方法,把字符串变小写:
name = 'JACK'
print(name.lower())
jack
title() 方法,把字符串中每个单词变首字母大写:
name = 'apple pie'
print(name.title())
Apple Pie
strip() 方法,删掉字符前后多余的指定字符,不填的话默认删掉空格(大家知道 strip 这个词的意思吧,还真是贴切呢^_^):
name = ' jack '
print(name.strip())
jack
find() 方法,查找某字符在不在字符串从start到end的范围中,如果存在的话返回index,不存在返回-1。也可以不指定范围,就全文查找。
str1 = "Hello world!"
>>> str1.find('llo')
>>> str1.find('llo',3,8)
join(seq) 把字符插入到要连接的元素序列、字符串、元组、字典中,形成一个新的字符串(如果你现在不知道元组、字典是什么没关系,以后会知道的)
list1 = ['a', 'b', 'c']
new_list = "-".join(list1)
print(new_list)
a-b-c
string1 = 'zack'
new_string = ":".join(string1)
print(new_string)
z:a:c:k
count() 方法,统计字符在字符串中出现的次数
a ='hello world'
print(a.count('l'))
len() 方法,得到字符创长度。这个不是字符串的内建方法,而是全局方法
name = 'za ck'
print(len(name))
5 #空格也是字符
字符串的方法很多,不一一列举了。
in 和not in
in 查询某字符在不在字符串中
'z' in 'zack'
True
not in
'w' not in 'word'
False
True 和False 是布尔值,代表对或错、真或假、有或无
格式化字符串
在字符串中插入变量
.format()
name = 'Jack'
age = 18
print('My name is{}and I am{}'.format(name, age))
'My name is Jack and I am 18'
f-strings 这种方法是 Python 3.6 之后才有的,我在一个英文博客偶然看到的,感觉简洁很多。但是百度居然搜不到,大家都不用吗?有知道的原因求教。
name = 'Jack'
age = 18
print(f'My name is{name}and I am{age}')
'My name is Jack and I am 18'
三引号的作用(单双引号都可以)
1、在三引号中的字符串,可以保留格式,比如直接换行而不比使用 \n
2、作为多行注释
'''大家好,我是注释我是给人看的不是给机器执行的'''
names = """ jackrosetom"""
print(names)
jack
rose
tom
上篇回顾:ZackGuo510:变量是什么 — Python 基础zhuanlan.zhihu.com
初学笔记难免有谬误,欢迎您指出,感谢。
欢迎关注我的微信号“我想会编程”,微信号“ZackGuo510”。