2021-05-29乐学PythonMOOC6-11单元

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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容