单双引号的区别:
字符串内有单引号时,单引号+转义字符:a=‘what\'s’="what's"
1 字符串的特性
1.1 索引
从0开始:
s='hello'
print(s[0])
print(s[4])
print(s[-1])
结果是:
h
o
o
1.2 切片
切片:s[start:stop:step] 从start到stop-1结束,step:步长
s='hello'
print(s[1:])#除了第一个
print(s[1:3])
print(s[1:4:2])
print(s[:1])#显示前一个
print(s[::-1])
print(s[:])#显示所有
结果是:
ello
el
el
h
olleh
hello
1.3 重复
s='hello'
print(s*3)
结果是:
hellohellohello
1.4 连接
同类型才可连接
s='hello'
s1='world'
print(s+s1)
print('nihao'+'shijie')
结果是:
helloworld
nihaoshijie
1.5 成员操作符
字符串中有这个元素就返回Ture,无返回False。
s='hello'
print('ll' in s)
print('jj' not in s)
结果是:
True True
1.6 循环遍历
s='hello'
for i in s:
print(i)
结果是;
h
e
l
l
o
不换行:
s='hello'
for i in s:
print(i,end='')
结果是:
hello
1.7 枚举
返回索引值与对应的value值
for i, v in enumerate('hello'):
print(str(i) + '====' + v)
结果是:
0====h
1====e
2====l
3====l
4====o
1.8 zip压缩
s1='hellopython'
s2='12345678'
for i in zip(s1,s2):
print(i)
结果是:
('h', '1')
('e', '2')
('l', '3')
('l', '4')
('o', '5')
('p', '6')
('y', '7')
('t', '8')
2 字符串的常用方法
2.1 字符串的判断
s.istitle():是否是标题
s.isupper():是否为大写
s.islower():是否为小写
s.isdight():是否为数字
s.isalpha():是否为字母
s.isalnum():是否为数字和字母的结合
print('hello'.isalnum())
print('hello'.isalpha())
print('hello'.isupper())
print('hello'.istitle())
print('hello'.isdigit())
结果是:
True
True
False
False
False
2.2 字符串的开始结束
s.startwith(xxx):是否以xxx开始
s.endswith(xxx):是否以xxx结尾
filename = 'hello.log'
if filename.endswith('.log'):
print(filename)
else:
print('error.file')
结果是:
hello.log
2.3 字符串的转换
s.lower() 转换为小写字母
s.upper() 转换为大写字母
s.title() 转换为标题
print('hello'.lower())
print('hello'.upper())
print('hello'.title())
结果是;
hello
HELLO
Hello
2.4 空格的去除
s=' hello \t \n '
print(s)
print(s.rstrip())#去除右边空格(空格为广义的空格,包括(\t \n)
print(s.lstrip())#去除左边空格
print(s.strip())#去除两边空格
s1='helloh'
print(s1.strip('h'))#去除字符串中所有的h
print(s1.lstrip('h'))#去除最左边的h
print(s1.rstrip('h'))#去除最右边的h
结果是:
hello
hello
hello
hello
ello
elloh
hello
2.5 字符串的对齐
print('你好世界'.center(30))
print('你好世界'.center(30,'$'))
print('你好世界'.ljust(30,'$'))
print('你好世界'.rjust(30,'$'))#字符串位于右边,其他单元格用$补齐
结果是:`
$$$$$$$$$$$$$你好世界$$$$$$$$$$$$$
你好世界$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$你好世界
2.6 字符库的查找、替换、统计
s='hello world hello python'
print(s.find('hello'))
print(s.rfind('hello'))
print(s.find('python'))
print(s.replace('world','jjj'))
print(s.count('hel'))
结果是:
0
12
18
hello jjj hello python
2
2.7 字符串的分离和连接
s = 'hello world hello python'
s1 = s.split(' ')
print(s1)
s = '172.25.254.100'
print(s.split('.'))
print('/'.join(s1))
print('@'.join('hello'))
结果是:
['hello', 'world', 'hello', 'python']
['172', '25', '254', '100']
hello/world/hello/python
h@e@l@l@o
3 字符串的练习
练习1:
判断是否为回文数
while True:
s=(input('请输入数字:'))
if s ==s[::-1]:
print('%s是回文数'%(s))
else:
print('%s不是回文数' % (s))
结果是;
15不是回文数
请输入数字:45
45不是回文数
请输入数字:525
525是回文数
或;
while True:
s = input('请输入数字:')
print(s == s[::-1])
结果是:
False
请输入数字:45
False
请输入数字:121
True
练习2:
变量名是否合法:
while True:
s = input('变量名是:')
if s == 'exit':
print('exit')
break
if s[0].isalpha() or s[0]=='_':
for i in s[1:]:
if not (i.isalpha() or i.isdigit() or i=='_'):
print('%s变量名不合法'%(s))
break
else:
print('%s变量名合法'%(s))
else:
print('%s变量名不合法'%(s))
结果是:
变量名是:ij
ij变量名合法
变量名是:78
78变量名不合法
练习3:
给定一个句子(只包含字母和空格),将句子的单词位置反转。
s = input('请输入句子:')
s1 = s.split(' ')
s2 = s1[::-1]
print(' '.join(s2))
结果是;
请输入句子:hello xiao mi
mi xiao hello