#!/usr/bin/env python#-*-coding:utf-8 -*-
#1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,#li=['alex','eric','rain']#v='_'.join(li)#print(v) #alex_eric_rain
#string=''#li=['alex','eric',123]#for i in range(0,len(li)):#string+=str(li[i])#v='_'.join(string)#print(v) #a_l_e_x_e_r_i_c_1_2_3
#li=['alex','eric',123]#for i in range(0,len(li)):#li[i]=str(li[i])#v='_'.join(li)#print(v) #列表内有数字,无法直接用.join()函数,alex_eric_123
#2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。#li = [" alec", "aric", "Alex", "Tony", "rain"]#tu = ("alec", " aric", "Alex", "Tony", "rain")#dic = {'k1': "alex", 'k2': 'aric', "k3": "Alex", "k4": "Tony"}
#for item in li:#item=item.strip() #移除每个元素的空格#if (item.startswith('a') and item.endswith('c')) or (item.startswith('A') and item.endswith('c')):#print(item) #alec aric
#for item in tu:#item=item.strip() #移除每个元素的空格#if (item.startswith('a') and item.endswith('c')) or (item.startswith('A') and item.endswith('c')):#print(item) #alec aric
#for item in dic.values():#item=item.strip() #移除每个元素的空格#if (item.startswith('a') and item.endswith('c')) or (item.startswith('A') and item.endswith('c')):#print(item) #aric
#3、写代码,有如下列表,按照要求实现每一个功能
#a.计算列表长度并输出#li = ['alex','eric','rain']#v=len(li)#print(v) #3
#b.列表中追加元素“seven”,并输出添加后的列表#li = ['alex','eric','rain']#li.append('seven')#print(li) #['alex', 'eric', 'rain', 'seven']
#c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表#li = ['alex','eric','rain']#li.insert(1,'tony')#print(li) #['alex', 'tony', 'eric', 'rain']
#d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表#li = ['alex','eric','rain']#li[2]='kelly'#print(li) #['alex', 'eric', 'kelly']
#e.请删除列表中的元素“eric”,并输出修改后的列表#li = ['alex','eric','rain']#li.remove('eric')#print(li) #['alex', 'rain']
#f.请删除列表中的第2个元素,并输出删除元素的值和删除元素后的列表#li = ['alex','eric','rain']#v=li.pop(2)#print(v,li) #rain ['alex', 'eric']
#g.请删除列表中的第3个元素,并输出删除元素后的列表#li = ['alex','eric','rain',11,22,33]#li.pop(3)#print(li) #['alex', 'eric', 'rain', 22, 33]
#h.请删除列表中的第2至4个元素,并输出删除元素后的列表#li = ['alex','eric','rain',1,2,3]#del li[2:4]#print(li) #['alex', 'eric', 2, 3]
#j.请使用for、len、range输出列表的索引#li = ['alex','eric','rain']#for item in range(len(li)):#print(item) #0 1 2
#k.请使用enumrate输出列表元素和序号(序号从100开始)#li = ['alex','eric','rain']#for index, val in enumerate(li, 100):#print(index,val)
#l.请使用for循环输出列表的所有元素#li = ['alex','eric','rain']#for i in li:#print(i)
#m.请将列表所有的元素反转,并输出反转后的列表#li = ['alex','eric','rain']#li.reverse()#print(li) #['rain', 'eric', 'alex']
#4、写代码,有如下列表,请按照功能要求实现每一个功能
#a.请根据索引输出“Kelly”
#li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]#a=li[2][1][1]#print(a) #kelly
#b.请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]
#li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]#b=li[2][2]#b=b.upper()#print(b) #ALL
#5、写代码,有如下元组,请按照功能要求实现每一个功能
#a.计算元组长度并输出#tu=('alex', 'eric', 'rain')#print(len(tu)) #3
#b.获取元组的第2个元素,并输出#tu=('alex', 'eric', 'rain')#v=tu[2]#print(v) #rain
#c.获取元组的第1-2个元素,并输出#tu=('alex', 'eric', 'rain')#v= tu[1:3]#print(v) #('eric', 'rain')
#d.请使用for输出元组的元素#tu=('alex', 'eric', 'rain')#for item in tu:#print(item)
#e.请使用for、len、range输出元组的索引#tu=('alex', 'eric', 'rain')#for item in range(len(tu)):#print(item)
#f.请使用enumrate输出元祖元素和序号(序号从10开始)#tu=('alex', 'eric', 'rain')## for index,val in enumerate(tu,10):## print(index,val)
#6、有如下变量,请实现要求的功能
#a.讲述元祖的特性#元组是有序的#元组的一级元素不可增加,删除,修改#通过偏移来取数据
#b.请问tu变量中的第一个元素“alex”是否可被修改?#不能,'alex'是元组的一级元素 不能修改
#c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
#tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])#k2对应的值是列表类型,可以被修改#v=tu[1][2]['k2']#print(v) #['age', 'name']#v.append('Seven')#print(v) #['age', 'name', 'Seven']
#d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”#tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])#v=type(tu[1][2]['k3'])#print(v) ##k3对应的值是元组类型,无法修改
#7、字典
#a.请循环输出所有的key#dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}#for key in dic.keys():#print(key)
#b.请循环输出所有的value#dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}#for val in dic.values():#print(val)
#c.请循环输出所有的key和value#dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}#for item in dic.items():#print(item)
#d.请在字典中添加一个键值对,"k4": "v4",输出添加后的字典#dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}#dic.update({'k4':'v4'})#print(dic) #{'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
#e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典#dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}#dic.update(k1='alex')#print(dic) #{'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33]}
#f.请在k3对应的值中追加一个元素44,输出修改后的字典#dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}#v=dic['k3']#print(v) #[11, 22, 33]#v.append(44)#print(v) #[11, 22, 33, 44]
#g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典#dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}#v=dic['k3']#print(v) #[11, 22, 33]#v.insert(1,18)#print(v) #[11, 18, 22, 33]
#8、转换#a.将字符串s = "alex"转换成列表#s = 'alex'#s= list(s)#print(s) #['a', 'l', 'e', 'x']
#b.将字符串s = "alex"转换成元祖#s = 'alex'#s=tuple(s)#print(s) #('a', 'l', 'e', 'x')#c.将列表li = ["alex", "seven"]转换成元组#li = ["alex", "seven"]#li = tuple(li)#print(li) #('alex', 'seven')
#d.将元祖tu = ('Alex', "seven")转换成列表#tu = ('Alex', "seven")#tu = list(tu)#print(tu) #['Alex', 'seven']
#e.将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
#li = ["alex", "seven"]#dic={}#for i in range(10,10+len(li)):#dic[i]=li[i-10]#print(dic) #{10: 'alex', 11: 'seven'}
#9、元素分类
#有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,#将小于66的值保存至第二个key的值中。#
#即:{'k1':大于66的所有值, 'k2':小于66的所有值}#li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]#dic ={#'k1':[],#'k2':[]#}#for i in li:#if i>=66:#dic['k1'].append(i)#else:#dic['k2'].append(i)#print(dic) #{'k1': [66, 77, 88, 99, 90], 'k2': [11, 22, 33, 44, 55]}
#13、有两个列表
#a.获取内容相同的元素列表#l1 = [11,22,33,44]#l2 = [22,33,44,55,66]#for x in l1:#for y in l2:#if x==y:#print(x) #22 33 44
#b.获取l1中有,l2中没有的元素列表#l1 = [11,22,33,44]#l2 = [22,33,44,55,66]#for x in l1:#if x not in l2:#print(x) #11
#c.获取l2中有,l1中没有的元素列表#l1 = [11,22,33,44]#l2 = [22,33,44,55,66]#for y in l2:#if y not in l1:#print(y) #55 66
#d.获取l1和l2中内容都不同的元素#l1 = [11,22,33,44]#l2 = [22,33,44,55,66]#for x in l1:#if x not in l2:#print(x) #11#for y in l2:#if y not in l1:#print(y) #55 66
#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#c=1#while c<=100:#print(c)#c+=1#d.While循环从小到到输出100 - 1#c=100#while c >=1:#print(c)#c-=1
#15、利用for循环和range输出9 * 9乘法表#for x in range(1,10):#for y in range(1,10):#z=x*y#print(x,'*',y,'=',z) #正方形9*9,有重复
#for x in range(1,10):#string = ''#for y in range(1,x+1):#z=x*y#string+=str(x)+'*'+str(y)+'='+str(z)+'\t'#print(string) #字符串形式,直角三角形9*9,无重复
#for x in range(1,10):#for y in range(1,x+1):#z=x*y#print(x, '*', y, '=', z,end='\t')#print('\n',end='') #直接输出直角三角形9*9,无重复
#分页显示内容#a.通过for循环创建301条数据,数据类型不限,如#alex-1 alex1@live.com pwd1#alex-2 alex2@live.com pwd2#alex-3 alex3@live.com pwd3
#a='name\temail\tpwd\n'#a=a.expandtabs(20)#print(a)#b='{0}\t{1}\t{2}\n'#for x in range(1,302):#v=b.format('alex-'+str(x),'alex'+str(x)+'@live.com','pwd'+str(x))#print(v) #创建的数据是字符串的形式,无法进行下题b的操作
#1.创建的数据是列表形式,可以进行下题b的操作,与2.的区别:少了个{},代码如下#['alex-1 alex1@live.com pwd1\n',...,'alex-100 alex100@live.com pwd100
#user_list=[]#a='name\temail\tpwd\n'#a=a.expandtabs(20)#print(a)#b='{0}\t{1}\t{2}\n'#for x in range(1,302):#v = b.format('alex-' + str(x), 'alex' + str(x) + '@live.com', 'pwd' + str(x))#v = v.expandtabs(20)#user_list.append(v)#print(user_list)
#2.创建的数据是列表的形式,可以进行下题b的操作,与1.的区别:多了个{},代码如下#[{'name': 'alex1', 'email': 'alex@lve.com1', 'pwd': 'pwd1'},...,{'name': 'alex100', 'email': 'alex@lve.com100', 'pwd': 'pwd100'}
#user_list = []#for i in range(1,302):#temp = {'name': 'alex'+str(i), 'email': 'alex@lve.com' + str(i), 'pwd': 'pwd'+str(i)}#user_list.append(temp)#print(user_list)
## b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据## 注意:-每页显示10条数据,-用户输入页码是非十进制数字,则显示输入内容格式错误#while True:#s = input('请输入要查看的页码:')#sz = s.isdigit()#if sz == False:#print('输入内容格式错误,请重新输入十进制数字')#else:#s=int(s)#start=(s-1)*10#end=s*10#result=user_list[start:end]#for i in result:#print(i)
#17、输出商品列表,用户输入序号,显示用户选中的商品
#商品li = ["手机", "电脑", '鼠标垫', '游艇']#•允许用户添加商品#•用户输入序号显示内容#li = ["手机", "电脑", '鼠标垫', '游艇']#x=input('1:添加商品 2:查询商品\n请输入序号:')#x=int(x)#if x == 1:#a=input('请输入要添加的商品:')#li.append(a)#print(li)#elif x == 2:#print(li)#b=input('请输入要查询的商品:')#b=int(b)#if b == 1:#print('手机售价998')#if b == 2:#print('电脑售价3998')#if b == 3:#print('鼠标垫售价9.8')#if b == 4:#print('游艇售价999998')#else :#print('错误')#else:#print('输入错误')
#18.用户交互显示类似省市县N级联动的选择#•允许用户增加内容#•允许用户选择查看某一个级别内容
#19、列举布尔值是False的所有值#{},[],(),None,0
#20、求100以内的素数和。(编程题)#a=0#count = 2#print(2)#while a <=100:#for i in range(2,a):#if a%i==0:#break#if i==a-1:#print(a) #输出一百以内的素数#count=count+a#
#a += 1#
#print(count)
#使用Python编程输出某区间内的素数。#lower = int(input("输入区间最小值: "))#upper = int(input("输入区间最大值: "))#
#for num in range(lower, upper + 1):## 素数大于 1#if num > 1:#for i in range(2, num):#if (num % i) == 0:#break#else:#print(num)
#21、将[1,3,2,7,6,23,41,24,33,85,56]从小到大排序(冒泡法)(编程)
#li = [1, 3, 2, 7, 6, 23, 41, 24, 33, 85, 56]#for item in range(0,len(li)):#print(item,li[item])#for item in range(0, len(li)):#if item b:#swap = li[item]#li[item] = li[item+1]#li[item+1] = swap#
#print(li) #[1, 2, 3, 6, 7, 23, 24, 33, 41, 56, 85]
#22.功能要求:#要求用户输入自己拥有总资产,例如:2000#显示商品列表,让用户根据序号选择商品,加入购物车#购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
#goods = [#{"name": "电脑", "price": 1999},#{"name": "鼠标", "price": 10},#{"name": "游艇", "price": 20},#{"name": "美女", "price": 998},#]#
#a=input("请输入自己拥有的总资产:")#print(goods)#a=int(a)#b=input("请输入要购买的商品序号:")#b=int(b)#if b in range(0,4):#print(goods[b])#if a>= goods[b].get('price'):#print('购买成功')#else:#print("余额不足")#else:#print("无此商品序号")
#23.由1,2,3,4,5,6,7,8,这8个数字可组成多少个无重复数字的两位数#li =[1,2,3,4,5,6,7,8]#count=0#for i in range(0,len(li)):#for j in range(0,len(li)):#if li[i]==li[j]: #if li[i]!=li[j]#continue #count=count+1##print(li[i]*10+li[j]) #print(count) 效果一样#count += 1#print(count)
#24.有以下列表,#nums =[2,7,11,15,1,8,7]#a=[]## a.请找到列表中任意两个元素相加能够等于9的元素集合,如:[(2,7) ,(1,8)]#for i in range(0,len(nums)):#for j in range(0,len(nums)):#if nums[i]+nums[j]==9:#a.append((nums[i],nums[j]))#print(a) #[(2, 7), (2, 7), (7, 2), (1, 8), (8, 1), (7, 2)]
#26.百钱买百鸡#问题:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,#其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?#公鸡: x只 range(1:20)#母鸡:y只 range(1:33)#小鸡:z只 range(1:100) #虽然100文可以买300只,但是题目要求只买一百只#for x in range(1,20):#for y in range(1,33):#for z in range(1,300):#if x+y+z==100 and z%3==0 and 5*x+3*y+z/3==100:#print(x,y,z)