逢七过七游戏
设计过7游戏程序,即在1-99之间的数字中,如果数字包含7或者是7的倍数,则输出“过”,否则输出具体的数字。
# 方法一
i=1
while i<99:
if i%7==0 or str(i).find('7')!= -1:
print('过')
else:
print(i)
i+=1
# 方法二
for i in range(1,100):
if i % 7 == 0 or str(i).find('7') != -1:
print('过')
else:
print(i)
# 方法三
for i in range(1,100):
if i %7 ==0 or '7' in str(i):
print('过')
else:
print(i)
随机抽签
使用input输入5个学生的名字存入列表,随机获取一个学生的名字打印
import random
# 定义列表存储所有学生姓名
list = []
# 循环
for i in range(5):
name = input('请输入姓名:')
# 输入名字存入列表
list.append(name)
# 随机数产生列表的下标
num = random.randint(0,4)
# 答应抽到的学生
print(list[num])
列表修改操作
- 定义
变量 = [数据, 数据,...]
- 添加
列表.append(数据)
- 查询
列表.index(数据) # 如果数据不存在,会报错
列表.count(数据)
- 修改
修改指定下标位置的数据:列表[下标] = 数据
注意:字符串中字符不能使用下标修改
- 代码案例
# 定义列表
list = [1,3,5,7]
# 将下标为1的数据修改为22
list[1] = 22
print(list) # [1, 22, 5, 7]
# 修改最后一个位置的数据为“hello“
list[-1] = 'hello'
print(list) #[1, 22, 5, 'hello']
# 如果指定下标不存在,会报错
list[10] = 10 # 会报错
-
删除
- 根据下标删除
列表.pop(下标)
# 删除指定下标位置对应的数据
1、下标不写,默认删除最后一个数据(常用)
2、书写存在的下标,删除对应下标位置的数据
返回
:返回删除的数据 - 根据数据值删除
列表.remove(数据值)
# 根据数据值删除
返回
:None
注意:如果删除的数据不存在,会报错 - 清空数据(一般不用)
列表.clear()
- 代码案例
my_list = [1,3,5,7,9,2,4,6,8,0] # 删除最后一个数据 num= my_list.pop() print('删除的数据为:',num) # 删除的数据为: 0 print(my_list) # [1, 3, 5, 7, 9, 2, 4, 6, 8] # 删除下标为1的数据 num1 = my_list.pop(1) print('删除的数据为:',num1) # 删除的数据为: 3 print(my_list) # [1, 5, 7, 9, 2, 4, 6, 8] # 删除数据为7的数据 my_list.remove(7) # 如果列表中有多个7,只能删除第一个,如果数据不存在,会报错 print(my_list) # [1, 5, 9, 2, 4, 6, 8] # 清空 my_list.clear() print(my_list) # []
- 根据下标删除
-
翻转(倒置)
字符串中的反转倒置:字符串[::-1]
列表中的翻转倒置:
1、列表:[::-1] #使用切片的方法,会得到一个新的列表,原列表不会发生改变
2、列表.reverse() # 直接修改原列表,返回Nonemy_list = [1,3,5,7,9,2,4,6,8,0] # 使用切片的方法反转,得到一个新列表 list1 = my_list[::-1] print('my_list:',my_list) # my_list: [1, 3, 5, 7, 9, 2, 4, 6, 8, 0] print('list1:',list1) # list1: [0, 8, 6, 4, 2, 9, 7, 5, 3, 1] # 使用reverse方法,直接修改原列表 my_list.reverse() print(my_list) # [0, 8, 6, 4, 2, 9, 7, 5, 3, 1]
-
复制
使用场景
:有一个列表,需要修改操作列表中的数据,修改之后,需要和原数据进行对比,即原数据不能改。
1、使用切片
变量 = 列表[:]
2、使用copy方法
变量 = 列表.copy()
my_list = [1,3,5,7,9,2,4,6,8,0] # 使用切片的方法反转,得到一个新列表 list1 = my_list[::-1] print('my_list:',my_list) # my_list: [1, 3, 5, 7, 9, 2, 4, 6, 8, 0] print('list1:',list1) # list1: [0, 8, 6, 4, 2, 9, 7, 5, 3, 1] # 使用reverse方法,直接修改原列表 my_list.reverse() print(my_list) # [0, 8, 6, 4, 2, 9, 7, 5, 3, 1] my_list1 = [1, 2, 3] my_list2 = my_list1[:] print('my_list1:',my_list1) # my_list1: [1, 2, 3] print('my_list2:',my_list2) # my_list2: [1, 2, 3] my_list2[1] = 22 print('my_list1:',my_list1) # my_list1: [1, 2, 3] print('my_list2:',my_list2) # my_list2: [1, 22, 3] print('-' * 30) my_list3 = my_list1.copy() print('my_list1:',my_list1) # my_list1: [1, 2, 3] print('my_list3:',my_list3) # my_list3: [1, 2, 3] my_list3[2] = 33 print('my_list1:',my_list1) # my_list1: [1, 2, 3] print('my_list3:',my_list3) # my_list3: [1, 2, 33] print('-' * 30) my_list4 = my_list1 # 这是同一个列表,多了一个名字 引用 print('my_list1:',my_list1) # my_list1: [1, 2, 3] print('my_list4:',my_list4) # my_list4: [1, 2, 3] my_list4[0] = 11 print('my_list1:',my_list1) # my_list4: [11, 2, 3] print('my_list4:',my_list4) # my_list4: [11, 2, 3]
-
排序
一般对数字进行排序
列表.sort()
# 按照升序排序,从大到小
列表.sort(reverse = True)
#降序排序从大到小# 升序排序 my_list.sort() print(my_list) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 降序排序 my_list.sort(reverse= True) print(my_list) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
-
嵌套
在列表中的内容还是列表
使用下标来确定获取的是什么类型的的数据,然后确定可以继续进行什么操作person_info = [["张三","18","功能测试"],["李四","20","自动化测试"]] print(len(person_info)) # 2 print(person_info[0]) # ['张三', '18', '功能测试'] print(person_info[0][0]) # 张三 print(person_info[0][0][0]) # 张 # 将18改成19 person_info[0][1] = '19' print(person_info) # [['张三', '19', '功能测试'], ['李四', '20', '自动化测试']] # 给“李四” 所在的列表添加一个性别信息 person_info[1].append('男') print(person_info) # [['张三', '19', '功能测试'], ['李四', '20', '自动化测试', '男']] # 将张三的年龄信息删除 person_info[0].pop(1) # 或者 person_info[0].remove('19') print(person_info) # [['张三', '功能测试'], ['李四', '20', '自动化测试', '男']]
元组
元组
:tuple,元组的特点和列表非常相似
1、元组中可以存放任意类型的数据
2、元组中可以存放任意多个数据
区别
:
1、元组中的数据内容不能改变,列表中的可以改变
2、元组使用 (),列表使用 [ ]
应用
:在函数的传参或者返回值中使用,保证数据不会被修改
- 定义
1、使用类实例化的方式
2、直接使用 ()方式# 1、类实例化的方式 # 定义空元组(不会使用的) my_tuple1 = tuple() print(type(my_tuple1),my_tuple1) # <class 'tuple'> () # 类型转换 # 可以将列表转换为元组,只需要将[],变为(),同时可以将元组转换列表,将()变为[] my_tuple2 = tuple([1,2,3]) print(my_tuple2) # (1, 2, 3) # 转换字符串,和列表中的一样,只是将列表的[]变为() my_tuple3 = tuple('hello') print(my_tuple3) # ('h', 'e', 'l', 'l', 'o') # 2、直接使用()定义 my_tuple4 = (1,"小王",3.14,False) print(my_tuple4) # (1, '小王', 3.14, False) # 3、特殊点:定义只有一个数据的元组时,数据后边必须有一个逗号 my_tuple5 = (1,) # 书写成 my_tuple5 = (1)不是元组,需要加上逗号才为元组 print(my_tuple5) # (1,) my_tuple6 =(1) print(my_tuple6) # 1
- 常用方法
由于元组中的数据不能修改,所以只有查看的方法
1、在元组中也可以使用下标和切片来获取数据
2、在元组中,存在index方法,查找下标,如果不存在,会报错
3、在元组中,存在count方法,统计数据出现的次数
4、在元组中可以使用 in 操作,判断数据是否存在
5、len()统计个数
以上方法的使用,与列表中是一样的print(my_tuple4[1]) # 小王