python.第四章课后习题

# 第四章课后习题

# 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])
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值