Python基础第四天
python基础知识练习二:
1、用下划线将列表的每一个元素拼接成字符串
li =['alex','eric','rain',234] li[3] = str(li[3]) v = '_'.join(li) print(v)
2、查找列表中元素,移除每个元素的空格,并查找以a 或A 开头并且以c结尾的所有元素。
li = ['alex',' aric',' Alex','Tony','rain'] tu = ('alex',' aric','Alex','Tony',' rain') dic = {'k1':'alex','k2':' aric','k3':'Alex','k4':'Tony','k5':'rain'} for i in li: v1 = i.strip() if (v1.startswith('a')or v1.startswith('A')) and v1.endswith('c'): print(v1) for i in tu: v1 = i.strip() if (v1.startswith('a')or v1.startswith('A')) and v1.endswith('c'): print(v1) for i in dic.values(): v1 = i.strip() if (v1.startswith('a')or v1.startswith('A')) and v1.endswith('c'): print(v1)
3、写代码,有如下列表,按照要求实现每一个功能
# 3a、计算列表长度并输出 li =['alex','eric','rain'] v = len(li) print(v) # b.列表中追加元素“seven”,并输出添加后的列表 li.append('seven') print(li) # c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表 li.insert(0,'Tony') print(li) # d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表 li[1] = 'Kelly' print(li) # e.请删除列表中的元素“eric”,并输出修改后的列表 li.remove('eric') print(li) # f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表 v = li.pop(2) print(v) print(li) # g.请删除列表中的第3个元素,并输出删除元素后的列表 del li[2] print(li) # h.请删除列表中的第2 至4 个元素,并输出删除元素后的列表 del li[0:2] print(li) # i.请将列表所有的元素反转,并输出反转后的列表 li.reverse() print(li) # j.请使用for、len、range 输出列表的索引 for i in range(len(li)): print(i) # l.请使用for 循环输出列表的所有元素 for i in li: print(i)
4、写代码,有如下列表,请按照功能要求实现每一个功能
li = ['hello','seven',['mon',['h','Kelly'],'all'],123,67] # 4a.请根据索引输出“Kelly” v = li[2][1][1] print(v) # 4b.请使用索引找到'all'元素并将其修改为“ALL” li[2][2]='ALL' print(li)
5、写代码,有如下元组,按照要求实现每一个功能
tu = ('alex','eric','rain') # a.计算元组长度并输出 v = len(tu) print(v) # b.获取元组的第2个元素,并输出 v = tu[1] print(v) # c.获取元组的第1-2个元素,并输出 v = tu[0:2] print(v) # d.请使用for 输出元组的元素 for i in tu: print(i) # e.请使用for、len、range 输出元组的索引 for i in range(len(tu)): print(i)
6、有如下变量,请实现要求的功能
tu = ('alex',[11,22,{'k1':'v1','k2':['age','name'],'k3':(11,22,33)},44]) # a.讲述元祖的特性 # 一级元素不可被修改、删除、增加 # b.'k2'变量对应的值是列表,可以被修改。,请在其中添加一个元素“Seven” v = tu[1][2]['k2'].append('Seven') print(tu) # c.'k3'变量对应的值是元祖,不可以被修改 可以转换成列表添加元素修改
7、字典
dic = {'k1':'v1','k2':'v2','k3':[11,22,33]} # 7a、请循环输出所有的key,value for k,v in dic.items(): print(k,v) # d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典 v = dic.setdefault('k4','v4') print(dic,v) # e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典 dic['k1']='alex' print(dic) # f.请在k3 对应的值中追加一个元素44,输出修改后的字典 dic['k3'].append(44) print(dic) # g.请在k3 对应的值的第1个位置插入个元素18,输出修改后的字典 dic['k3'].insert(0,18) print(dic)
8、转换
# a.将字符串s="alex"转换成列表,元祖 s="alex" l=list(s) t=tuple(s) print(l,t) # b.将列表li=["alex","seven"]转换成元组 li = ["alex","seven"] tu = tuple(li) print(tu) # ***d.将列表li=["alex","seven"]转换成字典且字典的key按照10开始向后递增 li = ["alex","seven"] dic = {} for i,name in enumerate(li,10): dic[i] = name print(dic)
9、有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key 中,
将小于66的值保存至第二个key 的值中。
li = [11,22,33,44,55,66,77,88,99,90] v1 = [] v2 = [] for i in li: if i > 66: v1.append(i) elif i < 66: v2.append(i) dic = {'key1':v1,'key2':v2} print(dic)
10、输出商品列表,用户输入序号,显示用户选中的商品
li = ["手机","电脑",'鼠标垫','游艇'] # a.允许用户添加商品 # b.用户输入序号显示内容 dic = {} for i,num in enumerate(li,1): dic[i] = num print(dic) user = int(input('>>>')) print(li[user-1])
12、列举布尔值是False 的所有值
None “ ” () { } [ ] 0
13、有两个列表
l1=[11,22,33] l2=[22,33,44] # 13a.获取内容相同的元素列表 v = [] for i in l1: for j in l2: if i == j: v.append(i) print(v) # b.获取l1中有,l2 中没有的元素列表 for i in l1: if i not in l2: print(i) # d.获取l1和l2中内容都不同的元素 for i in l1: if i not in l2: print(i) for j in l2: if j not in l1: print(j)
14、利用For 循环和range 输出
# a.For 循环从小到大输出1-100 for i in range(1,101): print(i) # b.For 循环从大到小输出100-1 for i in range(100,0,-1): print(i) # c.While 循环从小到大输出1-100 i = 1 while i < 101: print(i) i +=1 # d.While 循环从大到小输出100-1 i = 100 while i > 0: print(i) i -=1
15、购物车
# 功能要求:
# 要求用户输入总资产,例如:2000
# 显示商品列表,让用户根据序号选择商品,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
money = int(input('总资产:')) goods = [{"name":"电脑","price":1999},{"name":"鼠标","price":10},{"name":"游艇","price":20},{"name":"美女","price":998}] for i,good in enumerate(goods,1): print(i,good) user = int(input('请输入商品号:')) if int(goods[user-1]['price']) >= money: print('余额不足') else: print('购买成功')
16、分页显示内容
# a.通过for 循环创建301 条数据,数据类型不限,
# b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据
user_list = [] for i in range(1,302): temp = {'name':'alex'+str(i),'email':'alex@live.com' +str(i),'pwd':'pwd'+str(i)} user_list.append(temp) # #每页显示10 条数 while True: s = input('请输入页码:') s = int(s) start = (s-1) * 10 end = s * 10 result = user_list[start: end] for item in result: print(item,type(item))
17、有1、2、3、4、5、6、7、8、8 个数字,能组成多少个互不相同且无重复数字的两位数?
for i in range(1,9): for j in range(1,9): if i != j: print(int(i*10+j))
18、利用for 循环和range 输出9*9乘法表
for i in range(1,10): for j in range(1,i+1): print('{0} * {1} = {2}'.format(i,j,i*j),end = " " )#end = " " 作用就是:内循环不换行 print(' ',end = " " )
19、有一下列表,nums=[2,7,11,15,1,8,7] 请找到列表中任意两个元素相加能够等于9 的元素集合
nums = [2, 7, 11, 15, 1, 8, 7] li = [] for i in nums: for j in nums: if i + j == 9: li.append((i,j)) print(li) li = [] for i in range(len(nums)): for j in range(len(nums)): if nums[i] + nums[j] ==9: li.append((i,j),) print(li)
20.公鸡5 文钱一只,母鸡3 文钱一只,小鸡3 只一文钱,用100 文钱买100 只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母
鸡,小鸡要买多少只刚好凑足100 文钱?
for x in range(1,20) : for y in range(1,33) : for z in range (1,100) : if x + y +z ==100 and 5*x + 3*y + z/3 ==100: print(x,y,z)