# 第四章课后习题 # 3. '''tables = [[2006,57], [2007,56], [2008,57], [2009,62], [2010,69], [2011,72], [2012,75], [2013,76], [2014,74.3], [2015,74]] passw = [item[1] for item in tables] year = [item[0] for item in tables] avg = sum(passw)/10 Max = max(passw) print('十年平均录取率{:<.2f}'.format(avg)) print('录取率最高的年份:',year[passw.index(Max)])''' # # 参考答案 # rate_years=[(2006,57),(2007,56),(2008,57),(2009,62),(2010,69),(2011,72),(2012,75),(2013,76),(2014,74.3),(2015,74)] # rates=[item[1] for item in rate_years] # # avg=sum(rates)/len(rates) # print("十年平均录取率为 {:.2f}%".format(avg)) # # topYear=rate_years[rates.index(max(rates))] # print("录取率最高的年份是 {}年, 录取率为 {}%".format(topYear[0],topYear[1])) # 参考答案 # Admission_rate = [['2006',0.57], # ['2007',0.56], # ['2008',0.57], # ['2009',0.62], # ['2010',0.69], # ['2011',0.72], # ['2012',0.75], # ['2013',0.76], # ['2014',0.743], # ['2015',0.74]] # rate = [i[1] for i in Admission_rate] # print(sum(rate)/10) # year = Admission_rate[rate.index(max(rate))][0] # print(year) # 0.6723 # 2013 # 1. '''l = [54,36,75,28,50] l.append(42) print(l) l.insert(-3,66) print(l) a = l.pop(-3) print(a) l1 = sorted(l,reverse=True) print(l1)''' # 参考答案 # l=[54,36,75,28,50] # l.append(42) # print(l) # l.insert(3,66) # print(l) # print(l.pop(4)) # l.sort(reverse=True) # print(l) # del l[:] # print(l) # 参考答案 # l = [54,36,75,28,50] # l.append(42) # print(l) # [54, 36, 75, 28, 50, 42] # l.insert(3,66) # print(l) # [54, 36, 75, 66, 28, 50, 42] # l.sort(reverse=True) # print(l) # [75, 66, 54, 50, 42, 36, 28] # l.clear() # print(l) # [] # 4.求其中最长的单词长度(不用返回最长单词长度对应的单词) # s = input('请输入一句英文句子(不要句点):') '''s = 'The quick brown fox jumps over the lazy dog' ls = s.split() print(ls) # 法1 老师讲的直接对这个列表排序,找两端最值 # lls = sorted(ls,key=len,reverse=False) # print(lls) # 法2 我对每个单词求长度并找到最大值 n = [] for item in ls: n.append(len(item)) # print(n) Max = max(n) print(ls[n.index(Max)]) # 拓展 返回最长单词长度对应的单词 # 那么就会有这个问题是如果一个句子中有重复的最长的单词怎么办 # 用这个最大的长度重新遍历列表 M = [] for item in ls: if len(item) == Max: M.append(item) print('最长单词长度对应的单词:',M)''' # 参考答案 # line=input("请输入一句英文句子: ") # wordlist=line.split() # print(wordlist) # length=[len(items) for items in wordlist] # maxlen=max(length) # print(maxlen) # print("最长的单词是{},长度是{}".format(wordlist[length.index(maxlen)],maxlen)) # 参考答案 # str4 = 'Even if the road is not flat also should make oneself of the sun' # list_str = str4.split() # list_str.sort(key=len,reverse=True) # print(len(list_str[0])) # 7 # 2. '''ls = [i for i in range(1,100) if i % 3 == 0] print(ls)''' # 参考答案 # l=[i for i in range(3,100) if i % 3==0] # print(l) # 参考答案 # list_2 = [i for i in range(3,100) if i%3==0] # print(list_2) # [3, 6, 9, 12, 15, 18, 21, # 24, 27, 30,33, 36, 39, 42, # 45, 48, 51, 54, 57, 60,63, # 66, 69, 72, 75, 78,81, 84, # 87, 90, 93, 96, 99] # 5. '''ls = [] from random import * for i in range(20): ls.append(randint(1001,5000)) print(ls) # 求10以内素数 这个少 也可以直接把10以内的素数写出来 n = [] for i in range(2,10): for j in range(2,i): if i % j == 0: break else: n.append(i) # print(n) # ls = [22,911,29,17,34] nn = [] for item in ls: c = 0 for item1 in n: if item % item1 != 0: c = c + 1 if c == len(n): nn.append(item) else: break print(nn)''' # 参考答案 # import random # # ls=[random.randint(1001,5000) for i in range(20)] # # ts=(2,3,5,7) # # l1=[0]*len(ls) # # for i in range(len(ls)): # # for t in ts: # # if ls[i] % t==0: # # l1[i]=1 # # l2=[] # # for i in range(len(ls)): # # if l1[i]==0: # # l2.append(ls[i]) # # print("生成的20个1000~5000的随机数是:") # print(ls) # # print("其中不能被10以内素数整除的数是:") # print(l2) # 参考答案 # import random # ls=[random.randint(1,1000) for i in range(20)] # ts=(2,3,5,7) # l1=[0]*len(ls) # for i in range(len(ls)): # for t in ts: # if ls[i] % t==0: # l1[i]=1 # l2=[] # for i in range(len(ls)): # if l1[i]==0: # l2.append(ls[i]) # print("生成的20个1000~5000的随机数是:") # print(ls) # print("其中不能被10以内素数整除的数是:") # print(l2) # 6. '''tables = [['王平','M',1,1,0,0], ['李丽','W',0,1,0,1], ['陈小梅','W',0,0,1,0], ['孙洪涛','M',0,1,1,1], ['方亮','M',1,0,1,0]] program = [item[2:] for item in tables] # print(program) c = 0 for item in program: # print(sum(item)) if sum(item) >= 2: c = c + 1 print('项目报名大于等于2项的学生人数:',c) wprogram = [item for item in tables if item[1]=='W'] print('女生报名情况:',wprogram) program1 = [item[0:2] for item in tables if item[3] == 1] print('报名3000米的学生姓名和性别:',program1)''' # 参考答案 # tables = [['王平', '男', 1, 1, 0, 0], # ['李丽', '女', 0, 1, 0, 1], # ['陈小梅', '女', 0, 0, 1, 0], # ['孙洪涛', '男', 0, 1, 1, 1], # ['方亮', '男', 1, 0, 1, 0]] # n = 0 # for item in tables: # if item.count(1) >= 2: # n += 1 # print(n) # lv = [] # for item in tables: # if item[1] == '女': # lv.append(item) # print(lv) # l3000 = [] # for item in tables: # if item[3] == 1: # print(item[0], item[1]) # 参考答案 # tables=[['王平','男',1,1,0,0], # ['李丽','女',0,1,0,1], # ['陈小梅','女',0,0,1,0], # ['孙洪涛','男',0,1,1,1], # ['方亮','男',1,0,1,0]] # n=0 # for item in tables: # if item.count(1)>=2: # n+=1 # print(n) # lv=[] # for item in tables: # if item[1]=='女': # lv.append(item) # print(lv) # l3000=[] # for item in tables: # if item[3]==1: # print(item[0],item[1])
python.第四章课后习题
于 2024-04-09 11:07:25 首次发布