文章目录
Python基础-字符串
1. 什么是字符串
- 用引号引起来的内容
- 可以用引号来创建字符串
- 单引号
- 双引号
- 三单引号
- 三双引号-
2.字符串的基本操作
2.1创建字符串
创建字符串
name = 'Hangzhou'
area = "拱墅"
history = """2000"""
famous_person ="""苏轼,岳飞,白居易"""
capticalof ='''吴越,南宋'''
print(type(name),type(area),type(history),type(famous_person),type(capticalof))
注意点:单引号双引号使用时要注意匹配,且不能换行,三引号支持换行
2.2拼接:使用+号(只要是同一种数据类型皆可使用+号进行拼接)
x='hel'
y='lo'
print(x+y)
#输出为 hello
2.3重复
x='nice!'
print(x*3)
#输出为 nice!nice!nice!
2.4索引(偏移):[n]n个数从0开始到n-1结束
sr='world'
print(sr[0],sr[4])
#输出为w d
利用len()函数得到字符串长度,可以通过循环遍历字符串
sr='world'
for i in range(len(sr)):
print(sr[i],end=' ')
#输出为 w o r l d
或者直接遍历字符串
sr='world'
for i in sr:
print(i,end=' ')
#输出为 w o r l d
2.5切片:从字符串中取出某一部分,不改变原字符串
str[x:y:z]:以z为步长,x为起始点,z为终止点(取不到),从str中截取一段字符串
#切片 0123456789
sr = 'Life is short,you need Python'
print(len(sr))
print(sr[1:4])#取前不取后第四个取不到
print(sr[1:5:2])
'''输出为
ife
ie'''
2.6大小写转换函数
函数名 | 描述 |
---|---|
lower() | 转小写 |
upper() | 转大写 |
swapcase() | 大小写互换 |
title() | 转为标题形式 |
capitalize() | 首字母大写,其余小写 |
sr = 'Life is short,you need Python'
print(sr.lower())
print(sr.upper())
print(sr.swapcase())
print(sr.title())
print(sr.capitalize())
'''输出为:
life is short,you need python
LIFE IS SHORT,YOU NEED PYTHON
lIFE IS SHORT,YOU NEED pYTHON
Life Is Short,You Need Python
Life is short,you need python'''
2.7字符串格式输出对齐
函数名 | 描述 |
---|---|
center([len].[填充符号]) | 输出一个len长 填充填充符号的居中对齐字符串 |
ljust([len].[填充符号]) | 输出一个len长 填充填充符号的居左对齐字符串 |
rjust([len].[填充符号]) | 输出一个len长 填充填充符号的居左对齐字符串 |
zfill([len]) | 输出一个len长 填充0的居右对齐字符串 |
sr = 'Life is short,you need Python'
print(sr.center(41,"*"))
print(sr.ljust(41,"*"))
print(sr.rjust(41,"*"))
print(sr.zfill(41,))
'''******Life is short,you need Python******
Life is short,you need Python************
************Life is short,you need Python
000000000000Life is short,you need Python'''
2.8删除指定字符
函数名 | 描述 |
---|---|
strip(char) | 删除字符串头尾char |
lstrip(char) | 删除字符串头char |
rstrip(char) | 删除字符串尾char |
2.9计数
count(‘str’,m,n)函数:计算字符串sr中的第[m,n)内的str出现次数
demo:
sr = '\n\t******Life is short,you need Python******'
print(sr.count('s'))
#输出为2
2.10字符串搜索和定位
函数名 | 描述 |
---|---|
find(‘str’,m,n) | 返回sr中[m,n)中第一次出现字符str的索引,检索不到返回-1 |
index() | 检索不到报错(substring not found) |
rindex() | 从右往左查找 |
replace(x,y,n) | 将n个x(左到右)替换为y,n默认为所有 |
demo:
sr = 'Life is short,you need Python'
print(sr.find('e'))
print(sr.index('e'))
print(sr.rindex('e'))
print(sr.replace('e','a'))
print(sr.replace('e','o',1))
print(sr.replace('e','o',3))
'''
3
3
20
Lifa is short,you naad Python
Life is shArt,you need Python
Life is shArt,yAu need Python'''
2.11字符串条件判断:返回True/Fasle
函数名 | 描述 |
---|---|
isalnum() | 判断字符串由字母或者数字组成 |
isalpha() | 判断字符串是否仅有字母组成 |
isalgit() | 判断字符串是否仅有数字组成 |
2.12字符串的分割与变幻
函数名 | 描述 |
---|---|
join() | 将指定字符插入到元素之间,返回为字符串 |
split() | 以指定字符分割字符串并去除该字符 返回值为列表 |
partition() | 以指定字符分割并保留该字符 返回值为元组 |
demo:
sr = 'Life is short,you need Python'
print('o'.join(sr))
li=["i","like",'apple']
print(''.join(li)) # 将列表转换为字符串
print(sr.split('o'))
print(sr.partition('s'))
'''
Loiofoeo oioso osohoooroto,oyooouo onoeoeodo oPoyotohooon
ilikeapple
['Life is sh', 'rt,y', 'u need Pyth', 'n']
('Life i', 's', ' short,you need Python')
'''
2.13ASCII码和字符转化
函数名 | 描述 |
---|---|
chr() | dighit–>alpha |
ord() | alpha–>dighit 只能传单个字符 |
demo:打印a-z
for i in range(ord('a'),ord('z')+1):
print(chr(i),end=' ')
#输出:a b c d e f g h i j k l m n o p q r s t u v w x y z
其他
1.倒序遍历
三种反向反向遍历的写法
sr='world'
#1.
for i in range(len(sr)-1,-1,-1):
print(a[i], end=" ")
#2.
for i in a[::-1]:
print(i, end=" ")
#3.
for i in reversed(sr):
print(i, end=" ")
#输出为 d l r o w
2.string库
import string
print(string.printable)
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase)
print(string.capwords)
print(string.digits)
print(string.hexdigits)
print(string.octdigits)
print(string.punctuation)
print(string.whitespace)
'''
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
<function capwords at 0x000000000222AB70>
0123456789
0123456789abcdefABCDEF
01234567
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'''
3.进制转换与遍历
print('%o'%17)#将17转换为8进制
print('%x'%23)#将23转换为16进制
'''21
17'''
遍历
for i in range(8):
print(oct(i),end=' ')
print()
for i in range(16):
print(hex(i),end=' ')
'''0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf '''