学习视频地址:https://www.bilibili.com/video/BV15J411T7WQ?p=57
p57-58 列表基础
1.列表基本格式
2.列表中元素替换
3.列表赋值
4.列表删除
例:列表中删除输入的字符串
world = ['hello','good','apple','world','digit','alpha']
a = input('请输入:')
l = len (world)
i = 0
while i < l :
if a in world[i] :
del world[i]
l -= 1
i += 1
print (world)
p61 列表切片(跟字符串一样)
P62 列表追加
函数有:append extends insert
append() 末尾追加
extend() 列表合并
insert() 指定位置插入
例:
# 产生10个随机数,将其保存在列表中(会重复)
#步骤:
#1.如何产生随机数
#2.10个数字产生
#3.每产生随机数都放到列表中
#4.打印列表
import random
random_list = []
for i in range(10) :
ran = random.randint(1,20)
random_list.append(ran)
print(random_list)
#产生不重复的10个随机数
import random
random_list = []
i = 0
while i < 10 :
ran = random.randint(1,20)
if ran not in random_list :
random_list.append(ran)
i += 1
print (random_list)
#找出列表的最大值
max_ value = max (random_list)
print(max_value)
----------------------
a = 0
max_value = random_list[0]]
while a < 9 :
if random_list[a] > max_value :
max_value = random_list[a]
a += 1
print (max_value)
P64 列表的一些运算函数
max() min() sum() sorted()排序
sorted()默认升序
P65 总结补充
1.列表中的元素:整型、字符串类型、浮点型、列表、元组、字典、对象、
2. 类型转换:str() int() list()
例: print(range(1,10,3)) print(list(range(1,10,3)))
3.interable 可迭代的 for … in 里面可以循环就是可迭代的
例:‘abcdef’ for i in range(5):
p66 列表 其他内置函数
1.删除
remove() 删除列表中第一出现的元素e,返回值是None,如果没有找到报错
pop() 弹栈 移除列表的最后一个元素,返回值是删除的那个元素
默认删除最后一个,但也可以指定index(下标)pop(2)
cleear() 清楚列表,里边元素全部清除
2 reverse() 翻转 sort() 降序 次数 count ()
1.sort(reverse = True) #升序
p67 王者荣耀游戏练习
print('*'*30)
print('\t欢迎来到王者荣耀')
print('*'*30)
import random
summoner = input('请选择英雄:(1后裔,2猪八戒,3马超,4关羽,5鲁班)')
coins = 1000
armory_my = []
print('欢迎{}来到王者峡谷,当前金币是{}'.format(summoner,coins))
while True :
choice = int (input ('请选择:\n1.购买武器\n2.打仗\n3.删除武器\n4.查看武器\n5.退出游戏\n') )
if choice == 1 :
print('欢迎进入武器库')
armory = [['末世',1000],['辉月',800],['名刀',1200],['冰心',1000],['破晓',500]]
for arms in armory :
print (arms[0],arms[1],sep=' ')
armname = input ('请输入要购买的武器:')
if armname not in armory_my :
for arms in armory :
if armname == arms[0]:
if coins >= arms[1] :
armory_my.append(arms[0])
coins -= arms[1]
print('购买武器成功')
break
else:
print('金币不足')
break
else :
print('输入武器名称错误')
break
else:
print('你已拥有这个武器,请购买其他武器')
elif choice == 2 :
print('欢迎进入战场')
if len(armory_my) > 0 :
print('{}的武器库有:'.format(summoner))
for arms in armory_my :
print (arms) #打印自己的武器库
while True :
armname = input ('请选择你的武器:')
if armname in armory_my :
# 武器选择成功准备开始战斗
s1 = random.randint(1,20) #z张飞
s2 = random.randint(1,20) #召唤师
if s1 > s2 :
print ('张飞胜利,请继续打仗')
else :
coins += 200
print ('斩获张飞掉落金币,当前金币为:',coins)
break
else :
print('选择武器不存在,请重新选择')
else :
print ('还没购买武器,请使用金币购买武器')
elif choice == 3 :
print('{}的武器库有:'.format(summoner))
for arms in armory_my :
print (arms)
while True :
delname = input ('请选择要出售的武器:')
if delname in armory_my :
armory_my.remove(delname)
for arms in armory :
if delname == arms[0] :
coins += arms[1]
break
break
else :
print('请输入正确的名字')
elif choice == 4 :
print('{}的武器库有:'.format(summoner))
for arms in armory_my :
print (arms)
print('当前金币为:',coins)
elif choice == 5 :
answer = input ('确定要退出王者荣耀么:(y/n)')
if answer == 'y' :
break
else :
print ('输入错误请重新输入!')
P71 枚举 和排序
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组成一个索引序列。
选择排序:
# 排序 [9,6,4,5,3]
ls = [9,6,4,5,3]
for i in range(0,len(ls)) :
for j in range(i+1,len(ls)) :
if ls[i] > ls[j] :
ls[i],ls[j] = ls[j],ls[i]
print(ls)
print('-------',i)
冒泡排序:
#排序[9,6,4,5,3]
ls = [9,6,4,5,3]
for i in range(len(ls)-1) :
for j in range(len(ls)-1-i) :
if ls[j] > ls[j+1]:
ls[j],ls[j+1] = ls[j+1],ls[j]
print (ls)
print('--------',i)