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)
原文地址:https://www.cnblogs.com/xyd134/p/6415772.html