1.字符串的特性
s[start:stop:step] 从satrt开始,到end -1结束,步长为step
s = ‘hello’ 索引:0 1 2 3 4 索引从0开始
示例:
print(s[0]) 取第0+1个字符
print(s[1]) 取第1+1个字符
print(s[4]) 取第4+1个字符
print(s[-1]) 取第最后一个字符
print(s[0:3]) 取0+1到3+1的字符
print(s[0:4:2]) 取0+1到4+1的字符,步长为2
print(s[:]) 显示所有的字符
print(s[:3]) 显示前3个字符
print(s[:-3]) 显示最后3个字符之前的字符
print(s[::-1]) 字符串的反转
print(s[3:]) 第3个字符之后的字符
print(s * 10) 重复10遍
print('hello ' + 'python')连接
成员操作符
print('he' in s) he是否在s里
print('aa' in s) aa是否在s里
print('he' not in s) he是不是不再s里
for循环遍历
s = 'worldhe'
for i in s:
print(i)
将输入字符反转
num = input('num:')
print(num[::-1])
判断输入是否以中心左右对齐
num = input('Num:')
print(num == num[::-1])
2. 字符串的常用方法
'hello'.istitle() 是否为标题
'hello'.isupper() 是否为大写
'hello'.islower() 是否为小写
'Hello'.lower() 转化为小写
a = 'Hello'.lower() 转化为小写
a = 'Hello'.upper() 转化为大写
a = 'Hello'.title() 转化为标题
filename = 'hello.loggg'
if filename.endswith('.log'): 以.log结尾
print(filename)
else:
print('error.file')
url = 'https://172.25.254.250/index.html'
if url.startswith('http://'): 以http://开头
print('爬取内容~~')
else:
print('不能爬取~~')
3.字符串的特性
注意:去除左右两边的空格,空格为广义的空格 包括:\t \n
s = ' hello'
s.lstrip() 去除左边空格
s.rstrip() 去除右边空格
s.strip() 去除左右两边空格
s = 'helloh'
s.strip('h') 去除左右‘h’
s.lstrip('h') 去除左边‘h’
s.rstrip('h') 去除右边‘h’
4.字符串的判断
[[:digit:]]数字
[[:alpha:]]字母
只要有一个元素不满足,就返回False
print('weeeqwe32131'.isdigit()) 是否为数字
print('42131321fsas'.isalpha()) 是否为字符
print('weewqeq323213'.isalnum()) 是否为数字字符
示例
变量名定义是否合法:
1.变量名可以由字母 数字 下划线组成
2.变量名只能以字母或者下划线开头
while True:
s = input('变量名:')
if s == 'exit':
print('exit')
break
if s[0].isalpha() or s[0] == '_': s[0]开头,开头为字母或者下划线
for i in s[1:]: s[1:]第一个字符之后
if not (i.isalnum() or i == '_'): 第一个字母之后不为字母数字或者下划线
print('%s变量名不合法' %(s))
break
else:
print('%s变量名合法' %(s))
else:
print('%s变量名不合法' %(s))
5.字符串的对齐
print('学生管理系统'.center(30)) 合计30个字符,居中
print('学生管理系统'.center(30,'@')) 合计30个字符,居中,空白处填充@
print('学生管理系统'.center(30,'&')) 合计30个字符,居中,空白处填充&
print('学生管理系统'.ljust(30,'#')) 合计30个字符,居左,空白处填充#
print('学生管理系统'.rjust(30,'%')) 合计30个字符,居右,空白处填充#
6.字符串的替换
find 找到子字符串,并返回最小的索引,不存在的会返回-1
s = 'hello world hello'
print(s.find('hello')) 查找字符串,返回首字母开始位
print(s.find('world'))
print(s.rfind('hello')) 从右边查找字符串,返回首字母开始位
print(s.replace('hello','redhat')) 替换字符串中的hello为redhat
7.字符串的统计
print('hello'.count('l')) 统计字符串中l的个数
print('hello'.count('ll')) 统计字符串中ll的个数
print(len('wfqfqfqfq')) 统计字符串总个数
8.字符串的分离和连接
分离:
s = '172.25.254.250'
s1 = s.split('.') 以.为分隔符打印s
print(s1)
print(s1[::-1]) 反转
date = '2019-8-28'
date1 = date.split('-') 以-为分隔符打印s
print(date1)
连接:通过指定的连接符号 连接每个字符
print(’’.join(date1)) 通过空链接字符串
print(’/’.join(date1)) 通过/链接字符串
print(’~~’.join(‘hello’)) 通过~~链接字符串
示例
小米笔试编程题目
题目描述:
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,
单词用空格分割, 单词之间只有一个空格,前>后没有空格。
比如: (1) “hello xiao mi”-> “mi xiao hello”
输入描述:
输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
输出描述:
对于每个测试示例,要求输出句子中单词反转后形成的句子
示例1:输入 hello xiao mi
输出 mi xiao hello