目录
字符串
一.什么是字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符;它是编程语言中表示文本的数据类型;Python程序中的字符串在计算机内存中,统一使用unicode编码,当需要保存到硬盘或者需要传输的时候,就转化为UTF-8编码。
二.字符串中常用函数和方法
str.upper() :转换字符串中所有的字母为大写
str.lower():转换字符串中所有的字母为小写
str.strip():在字符串上删除字符串开头和结尾的字符
str.split():通过指定的分隔符对字符串进行切片,返回列表类型的数据
str.split():num=string.split(str))以str为分隔符截取字符串将字符串分割为列表
str.join(seq):以指定字符串为分隔符,将seq中所有的元素合并为一个新的字符串
str.find():检测字符串中是否包含子字符串str,返回下标
str.replace(str1,str2):把字符串中的str1替换成str2
isdigit():如果字符串只包含数字则返回True,否则返回Flase
三.字符串拼接
方法一:使用“+”连接字符串
方法二:使用逗号连接字符串
方法三:使用%连接字符串
方法四:使用join函数连接字符串
四.字符串的查找方法
使用index或find查找:
strs = 'hello world'
print(strs.index('o'))
print(strs.find('o'))
得出结果:
4
4
区别:找不到指定字符的话,index返回报错,find找不到返回-1
五.列表合并字符串
lists = ['hello','world','python']
print(','.join(lists))
print('|'.join(lists))
得出结果:
hello,world,python
hello|world|python
六.字符串替换
strs = 'jkcksjfjshfjsncjsbd qw l \n;hdaj;g'
print(strs.replace('j','s'))
得出结果(把j替换成s):
skckssfsshfssncssbd qw l
;hdas;g
七.字符串判断是否存在
strs = 'hello world'
if 'h' in strs:
print(123)
得出结果:
123
判断字符串中是否存在某些字母,不存在则打印不出来。
八.字符串去重
思路:通常先转为集合,再转回到字符串
strs = 'hello world'
print(set(strs))
得出结果:
{'h', 'l', 'w', 'd', 'o', ' ', 'r', 'e'}
缺点:因为集合没有顺序,所以即便去了重,拼接回去之后也不是原来的字符串了
转回字符串可以使用第五步的列表合并字符串
得出结果:
el hdrow
九.统计某元素出现的次数
strs = 'hello world'
print(strs.count('h'))
得出结果:
1
十.字符串拆分
print('1,2,3,4,5'.split(',')) 拆分
print(','.join(['1', '2', '3', '4', '5'])) 还原
得出结果:
['1', '2', '3', '4', '5']
1,2,3,4,5
列表
一.增
lists = [1,2,3,4,5]
方法一:
lists = [1,2,3,4,5]
lists.append(6)
print(lists)
得出结果:
[1, 2, 3, 4, 5, 6]
改变内存空间,新的值加到尾部
方法二:
lists.insert(2,'hello')
print(lists)
得出结果:
[1, 2, 'hello', 3, 4, 5]
方法三:
print(lists+[6])
得出结果:
[1, 2, 3, 4, 5, 6]
创建了一个新的内存空间,添加了一个新的值,不是改变原来的值,和之前的没有关系。
方法四:
lists.extend([6])
print(lists)
得出结果:
[1, 2, 3, 4, 5, 6]
改变之前的内存空间,加了一个值
二.删
lists = [1,2,3,4,5]
方法一:
a = lists.pop()起了一个取值的操作,根据下标来传值
print(lists)
print(a)
得出结果:
[1, 3, 4, 5]
2
排除最后一个元素,赋值给了变量a
方法二:
lists.remove(lists[1])根据取值来删除
print(lists)
得出结果:
[1, 3, 4, 5]
方法三:
del lists[1]
print(lists)
得出结果:
[1, 3, 4, 5]
方法四:
lists.clear()清空列表
print(lists)
得出结果:
[]
三.改
lists = [1,2,3,4,5]
print(lists)
lists[1] = 6
print(lists)
lists[1:3] = [5]用5顶替掉6,3
print(lists)
得出结果:
[1, 2, 3, 4, 5]
[1, 6, 3, 4, 5]
[1, 5, 4, 5]
四.查
思路:先遍历再查找
for i in lists:
print(i)
得出结果:
1
2
3
4
5
遍历下标,下标从0 开始:
for i in range(len(lists)):
print(lists[i])
得出结果:
1
2
3
4
5
五.用random取随机数
import random
print(random.randrange(1,100)) 从1到99取随机数
print(random.choice([1,2,3,4,5])) 从列表中取随机数
a = [1,2,3,4,5]
random.shuffle(a) 打乱列表中的顺序
print(a)
得出结果:
46
4
[2, 5, 1, 3, 4]
六.多维列表
lists = [1,2,3,4,5,6]
lists1 = [[1,2],[3,4],[5,6]]
for i in lists:
print(i)
for i in lists1: 每次循环输出其中的一个小列表
print(i)
得出结果:
1
2
3
4
5
6
[1, 2]
[3, 4]
[5, 6]
for i in lists1: 两次遍历循环输出其中的所有数
for ii in i:
print(ii)
得出结果:
1
2
3
4
5
6
for a,b in lists1:
print(a,b)
得出结果:
1 2
3 4
5 6
七.列表排序
方法一:
lists = [3,5,2,6,7,1,5]
print(sorted(lists))
print(sorted(lists,reverse =True))
得出结果:
[1, 2, 3, 5, 5, 6, 7]
[7, 6, 5, 5, 3, 2, 1]
方法二:
lists.sort()
print(lists)
lists.sort(reverse=True)
print(lists)
得出结果:
[1, 2, 3, 5, 5, 6, 7]
[7, 6, 5, 5, 3, 2, 1]
问题:输入次数,从一堆名字中随机点出对饮数量的名字,不得重复,如果输入次数大于名字数。
方法一:
import random
while True:
name1 = ['艾西雅','天川春人','凌濑美春','莉塞萝黛','利欧','天川春人','艾西雅','芙罗拉']
n = int(input('请输入名字个数:'))
if n > len(name1):
print('只有{}名字,您输入的超过数量了'.format(len(name1)))
continue
for i in range():
num = random.randrange(len(name1))
data = name1.pop(num)
print(data)
方法二:
import random
name1 =['艾西雅','天川春人','凌濑美春','莉塞萝黛','利欧','天川春人','艾西雅','芙罗拉']
while True:
lists = []
n = 0
m = int(input('请输入名字个数:'))
if m > len(name1):
print('只有{}名字,您输入的超过数量了'.format(len(name1)))
continue
while True:
name = random.choice(name1)
if name not in lists:
lists.append(name)
print(name)
n += 1
if n ==m:
break