python作业02
1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain']
li = ['alex', 'eric', 'rain'] v = "_".join(li) print(v)
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"} # 字典 tu_li = list(tu) dic_li = list(dic.values()) list = li + tu_li + dic_li for i in list: m = i.strip() # startswith查看开头字符,endswith查看结尾字符 if(m.startswith('a') or m.startswith('A') and m.endswith('c')): print(m)
3、写代码,有如下列表,按照要求实现每一个功能
li=['alex', 'eric', 'rain']
计算列表长度并输出
列表中追加元素“seven”,并输出添加后的列表
请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
请删除列表中的元素“eric”,并输出修改后的列表
请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
请删除列表中的第3个元素,并输出删除元素后的列表
请删除列表中的第2至4个元素,并输出删除元素后的列表
请将列表所有的元素反转,并输出反转后的列表
请使用for、len、range输出列表的索引
请使用enumrate输出列表元素和序号(序号从100开始)
请使用for循环输出列表的所有元素
# 1 print(len(li)) # 2 li.append("seven") print(li) # 3 li.insert(0,'Tony') print(li) # 4 li[1] = 'Kelly' print(li) # 5 li.remove('eric') print(li) # 6 li.pop(1) print(li) # 7 li.pop(2) print(li) # 8 li = ['alex', 'eric', 'rain'] del li[1:3] print(li) # 9 li = ['alex', 'eric', 'rain'] li.reverse() print(li) # 10 li = ['alex', 'eric', 'rain'] for i in range(len(li)): print(i) # 11 li = ['alex', 'eric', 'rain'] for m,n in enumerate(li,100): print(m,n) # 12 for i in li: print(i)
4、写代码,有如下列表,请按照功能要求实现每一个功能
li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
请根据索引输出“Kelly”
请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
写代码,有如下元组,按照要求实现每一个功能
print(li[2][1][1]) li[2][2] = "ALL" print(li)
5、写代码,有如下元组,请按照功能要求实现每一个功能
tu=('alex', 'eric', 'rain')
计算元组长度并输出
获取元组的第2个元素,并输出
获取元组的第1-2个元素,并输出
请使用for输出元组的元素
请使用for、len、range输出元组的索引
请使用enumrate输出元祖元素和序号(序号从10开始)
print(len(tu)) print(tu[1]) print(tu[0:2]) for i in tu: print(i) for m in range(len(tu)): print(m) for n,k in enumerate(tu,10): print(n,k)
6、有如下变量,请实现要求的功能
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])
讲述元祖的特性
请问tu变量中的第一个元素“alex”是否可被修改?
请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
答:
1、元组跟列表差不多,它一旦创建,便不能再修改.元组本身不可变,如果元组中还包含其他可变元素,这些可变元素可以改变。
2、tu变量中的第一个元素“alex”不可被修改
3、"k2"是列表,可以修改。 tu[1][2]["k2"].append("Seven")
4、"k3"是元组不可修改
7、字典
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
请循环输出所有的key
请循环输出所有的value
请循环输出所有的key和value
请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
请在k3对应的值中追加一个元素44,输出修改后的字典
请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
# 1 for i in dic.keys(): print(i) # 2 for j in dic.values(): print(j) # 3 for i,j in dic.items(): print(i,j) # 4 dic["k4"] = "v4" print(dic) # 5 dic["k1"] = "alex" print(dic) # 6 dic["k3"].append(44) print(dic) # 7 dic["k3"].insert(0,18) print(dic)
8、转换
将字符串s = "alex"转换成列表
将字符串s = "alex"转换成元祖
将列表li = ["alex", "seven"]转换成元组
将元祖tu = ('Alex', "seven")转换成列表
将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
# 1 s = "alex" s_list = list(s) print(s_list) # 2 s = "alex" s_tuple = tuple(s) print(s_tuple) # 3 li = ["alex", "seven"] li_tuple = tuple(li) print(li_tuple) # 4 tu = ('Alex', "seven") tu_list = list(tu) print(tu_list) # 5 li = ["alex", "seven"] li_dict = {} for m,n in enumerate(li,10): li_dict[m] = n print(li_dict)
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] li.sort() # 排序 list1 = [] list2 = [] for i in li : if i < 66: list1.append(i) elif i > 66: list2.append(i) else: pass dic = {"k1": list1,"k2": list2} print(dic)
10、输出商品列表,用户输入序号,显示用户选中的商品
商品li = ["手机", "电脑", '鼠标垫', '游艇']
允许用户添加商品
用户输入序号显示内容
print("商品列表,用户输入序号,显示用户选中的商品".center(25,'-')) li = ["手机", "电脑", '鼠标垫', '游艇'] for i,num in enumerate(li,1): print(i,num) # 添加商品 choice = input("y=yes,n=no] 是否添加商品:".rjust(20,'-')) if choice == "y" or choice == "Y": good = input("需要添加的商品".rjust(20,'-')) li.append(good) for i,num in enumerate(li,1): print(i,num) elif choice =='n' or choice == "N": pass else: print("请输入正确的选项") choice_Item = input("[q=quit] 查看序号对应商品,按q退出!") if choice_Item.isdigit() and int(choice_Item) <= len(li): print(li[int(choice_Item)-1])
11、用户交互显示类似省市县N级联动的选择
允许用户增加内容
允许用户选择查看某一个级别内容
china = { '北京':{ '海淀':{}, '朝阳':{}, '东城':{} }, '湖北':{ '武汉':{}, '荆门':{}, '宜昌':{} } } current_layer = china # 当前层 layers = [] tag = True while tag: # 一级菜单 for k in current_layer: print(k) choice = input(">:").strip() # 二级菜单 if choice in current_layer: # 进入下一级菜单,保存当前菜单 layers.append(current_layer) # 二级菜单赋给当前层 current_layer = current_layer[choice] elif choice == "back": if len(layers) != 0: # pop删除列表最后一个元素,并返回删除后最后一个元素 current_layer = layers.pop() else: print("已经是最顶层目录!") elif choice == "add": add_node = input("在当前目录下添加节点:") current_layer[add_node] = {} elif choice == "exit": tag = False print("good bye!") else: continue
12、列举布尔值是False的所有值
bool(0) bool(None) bool("") bool(()) bool([]) bool({}) 五种情况下为false
13、有两个列表
l1 = [11,22,33]
l2 = [22,33,44]
获取内容相同的元素列表
获取l1中有,l2中没有的元素列表
获取l2中有,l3中没有的元素列表
获取l1和l2中内容都不同的元素
set1 = set(l1) set2 = set(l2) p1 = set1 & set2 print(p1) p2 = set1.difference(set2) print(p2) p3 = set2.difference(set1) print(p3) p4 = set1.union(set2).difference(set1 & set2) print(p4)
14、利用For循环和range输出
For循环从小到大输出1 - 100
for i in range(1,101):
print(i)
For循环从大到小输出100 - 1
for i in range(100,0,-1):
print(i)
While循环从大到小输出1 - 100
n = 100
while n > 0:
print(n)
n -= 1
While循环从小到到输出100 - 1
n = 1
while n <=100:
print(n)
n += 1
15、利用for循环和range输出9 * 9乘法表
#左下三角格式输出九九乘法表 for i in range(1,10): for j in range(1,i+1): print("%d*%d=%2d" % (i,j,i*j),end=" ") print (" ")
16、求100以内的素数和。(编程题)
sum_prime = 0 for i in range(2,101): n = 0 for j in range(2,i-1): if i % j == 0: n = 1 break if n == 0: sum_prime += i print(sum_prime)
17、将[1,3,2,7,6,23,41,24,33,85,56]从小到大排序(冒泡法)(编程)
li = [1,3,2,7,6,23,41,24,33,85,56] for i in range(0,len(li)): for j in range(i+1,len(li)): if li[i] > li[j]: li[i], li[j] = li[j], li[i] print(li)