PythonMOOC 乐学python
第6周单元作业
1已知列表 lst 用于存放学生的姓名和分数,试编写程序,实现以下功能。
image.png
lst=[] #创建空列表。
for i in range(5): #设置循环次数
name=input() #输入姓名
score=int(input()) #输入分数
lst.append((name,score))#将新输入的姓名和分数组成一个元组,添加至列表中
name_query=input() #输入待查询的姓名
for i in range(len(lst)): #遍历列表
if name_query in lst[i]: #判断待查询的姓名是否在当前列表元素中
print(lst[i][1]) #输出分数
break #结束循环
else:
print('error')
2已知列表 lst=[1, 8, 4, 10, 20, 12] ,试编写程序,将用户输入的一个整数添加至列表合适的位置。
image.png
lst=[1, 8, 4, 10, 20, 12]
n=int(input()) #输入一个整数
k=len(lst) #计算列表的长度
for i in range(len(lst)): #生成索引序列,用于遍历列表元素
if lst[i]>n: #判断当前元素的值是否大于待添加的整数
lst.insert(i,n) #将待添加的整数添加至当前元素之前
break #立即结束整个循环
else:
lst.append(n)
print(lst)
3.已知列表 lst=[ ('fox',9), ('dog',18), ('cat',12) ],存放了各种动物的数量。试编写程序
image.png
lst=[ ('fox',9), ('dog',18), ('cat',12) ]
name=input() #输入动物名称
count=int(input()) #输入动物数量
lst.append((name,count))#将输入的动物名称和数量添加至列表中
lst1=list((lst[i][1],lst[i][0]) for i in range(len(lst)))#利用列表生成式将列表lst中每个元组中的的名称和数量交换顺序
max_animal=(max(lst1)) #计算lst1中值最大的元素
print(max_animal[1]) #输出数量最大的动物名称
第7单元作业
1.已知字典 dic={'Tommy':'123', 'Dora':'456', 'Joyce':'789'},存放了某系统所有合法的用户名和密码。试编写程序,判断用户输入的用户名和密码是否合法,并输出相应的提示信息。
image.png
dic={'Tommy':'123', 'Dora':'456', 'Joyce':'789'}
user=input() #输入用户名
password=input() #输入密码
if user not in dic: #判断用户名是否存在
print('unknown username')
elif password!=dic[user]: #判断密码是否正确
print('bad password')
else:
print('correct')
2
image.png
dic= {} #创建空字典
for i in range(5): #设置循环次数
name=input() #输入姓名
score=int(input()) #输入成绩
dic[name]=score #将姓名和成绩组成的键值对加入字典
name_query=input() #输入待查询的学生姓名
if name_query in dic: #判断姓名在字典中是否存在
print(dic[name_query])
else:
print('error')
3
image.png
第8周单元作业
1
image.png
dic={ 'apple':6, 'orange':5, 'banana':3, 'pear':8, 'watermelon':10}
price=int(input()) #输入价格
s=0
for i in dic: #遍历字典
if dic[i]>price: #判断当前水果的价格是否高于用户输入的价格
s+=dic[i]
print(s) #输出结果
2
image.png
# -*- coding: utf-8 -*-
dic={ 'Tommy':[92,90,100], 'Joyce':[99,100], 'Dora':[100,98,95,99], 'Akili':[100,99,100,98,99],'Alisa':[98,98,97]}
score=int(input()) #输入分数
lst=[] #创建空列表
for i in dic: #遍历字典
if sum(dic[i])>score: #判断当前学生的总分是否高于用户输入的分数
lst.append(i) #将符合条件的当前学生的姓名添加至列表lst中
lst.sort() #对列表进行排序
for i in lst: #遍历列表
print(i) #输出姓名
3
image.png
dic={'801':{1:'Tommy',2:'Thomas',3:'Jack',4:'Ben'},
'303':{1:'Joyce',2:'Dora',3:'Akili',4:'Anni'},
'506':{1:'Alisa',2:'Monica',3:'Joan',4:'Ada'}} #初始化字典元素
name=input() #输入学生姓名
for i in dic: #遍历字典
for j in dic[i]: #对当前宿舍号对应的小字典进行遍历
if dic[i][j]==name: #判断姓名是否吻合
print('{}-{}'.format(i,j)) #输出相应的宿舍号及床位号,格式为:宿舍号-床位号
break #结束当前for循环
else:
continue #如果在当前宿舍中未找到该学生的信息,则继续查找下一个宿舍
break
else:
print('error')
第9周单元作业
1
image.png
def IsPrime(n): # 定义函数,判断给定的整数是否为素数
for i in range(2,int(n**0.5)+1):
if n%i==0:
return False
return True
m = int(input()) # 输入范围起始值,为整数
n = int(input()) # 输入范围结束值,为整数
for i in range(m,n+1): # 遍历给定范围内的所有整数
if IsPrime(i)==True: # 调用函数判断当前整数是否为素数
print(i)
2
image.png
# -*- coding: utf-8 -*-
def f(m,n): # 定义函数,计算给定的两个正整数的最小公倍数,并将其返回
if m > n:
m,n=n,m # 交换m和n的值,使n的值大于m的值
i = n
while True:
if i%m==0 and i%n==0: # 判断当前i的值是否是m和n的公倍数
return i # 返回当前i的值
i+=1 # 计算i的下一个取值
result = eval(input()) # 输入函数调用表达式用于得到结果
print(result)
3
image.png
def f(n): # 定义函数,计算给定三位正整数的各位数字之和 及 各位数字之积,并将它们返回
a=n//100 # 获取百位数字
b=n//10%10 # 获取十位数字
c=n%10 # 获取各位数字
return a+b+c,a*b*c # 返回和与积
result = eval(input()) # 输入函数调用表达式用于计算结果
print(result)
第10周单元作业
1.单元作业1
image.png
2.单元作业2
image.png
def f(*n): # 定义一个函数,计算可变形参之积
s=1
for i in n:
s*=i
return s
result = eval(input())
print(result)
3.单元作业3
image.png
def prime(n): # 定义函数prime,用于判断给定的一个正整数是否为素数,是则返回True,不是则返回False
for i in range(2,int(n**0.5)+1):
if n%i==0:
return False
return True
def f(lst): # 定义一个函数,计算给定列表中的所有素数之和
s=0
for i in lst: # 对列表lst进行遍历
if prime(i)==True: # 调用prime函数对当前列表元素是否为素数进行判断
s = s + i
return s # 返回和变量
result = eval(input())
print(result)