**
Python第三周课后作业**
这一周的作业就是一些编程题目,希望对学习python的大家有帮助.
一. 简答题(共4题,100分)
- (简答题)
成绩转换:
0-59:E 60-69:D 70-79:C 80-89:B 90-100:A输入一个学生成绩列表,把对应的等级列表打印出来,需要设置一个结束的语句。
在做这一道题的时候,你的思路是什么呢,可以写在评论区,然后大家一起思考一下各自解题思路,一起研究一下彼此的思路,这样会有更加多的收获哦.
那么,我来说一下我的思路吧,首先,我是想输入的数据就是一个一个输入学生的成绩,然后再进行把学生的成绩一个一个地使用if语句进行判断,再把每一次判断使用一个列表记录下来,这就是这一道题的解题思路了.
在这之前,先来介绍一下eval()方法:
> Python eval() 函数 Python 内置函数 Python 内置函数
>
> 描述 eval() 函数用来执行一个字符串表达式,并返回表达式的值。
>
> 语法 以下是 eval() 方法的语法:
>
> eval(expression[, globals[, locals]]) 参数 expression -- 表达式。 globals --
> 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。 locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
> 返回值 返回表达式计算结果。
>
> 实例 以下展示了使用 eval() 函数的实例:
> >>>x = 7
> >>> eval( '3 * x' )
> 21
> >>> eval('pow(2,2)')
> 4
> >>> eval('2 + 2')
> 4
> >>> n=81
> >>> eval("n + 4")
> 85
> 关于eval()函数的介绍来源于 菜鸟教程,在此万分感谢菜鸟教程的帮助
def demo1():
while True:
score = eval(input("please input scores list"))
if score < 0:
break
elif score < 60:
list1.append("E")
elif 70 > score >= 60:
list1.append("D")
elif 80 > score >= 70:
list1.append("C")
elif 90 > score >= 80:
list1.append("B")
elif 100 > score >= 90:
list1.append("A")
else:
print("error..")
#创建一个用于记录的列表
score = 100
list1 = []
demo1()
print(list1)
**> 2. (简答题)
- 逆序输出:
输入若干整数,然后按输入的相反顺序显示这些数据。要求数据之间留一个空格。**
这里来介绍一下map()函数和split()方法
Python map() 函数 Python 内置函数 Python 内置函数 描述 map() 会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。 语法 map() 函数语法: map(function, iterable, ...) 参数 function -- 函数 iterable -- 一个或多个序列 返回值 Python 2.x 返回列表。 Python 3.x 返回迭代器。 实例 以下实例展示了 map() 的使用方法: Python2.x 实例 >>> def square(x) : # 计算平方数 ... return x ** 2 ... >>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方 [1, 4, 9, 16, 25] >>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数 [1, 4, 9, 16, 25] #提供了两个列表,对相同位置的列表数据进行相加 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19] Python3.x 实例 >>> def square(x) : # 计算平方数 ... return x ** 2 ... >>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
# -*- coding:utf-8 -*-
# @Time : 2021-10-27 21:15
# @Author : 小青
# @File : r2.py
# @software: PyCharm
# num_list = list(map(int, input().split()))
num_list = list(map(int, input().split()))
num_list.reverse()
for i in num_list:
print(i, end=' ')
上面使用map()函数和split()是为了将输入的字符串转化成整型进去转给num_list,方便后面进行倒转数字
- (简答题)计算两个3*3矩阵的积
#方法1
n1 = [[1, 2, 3],
[1, 2, 3],
[1, 2, 3]]
n2 = [[1, 2, 3],
[1, 2, 3],
[1, 2, 3]]
n3 = [[1, 2, 3],
[1, 2, 3],
[1, 2, 3]]
for i in range(0, 3):
for j in range(0, 3):
n3[i][j] = n2[i][j] * n1[j][i]
print(n3)
#方法2
#原始矩阵
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 转置后矩阵
c = []
# 结果矩阵
res = []
print("原始矩阵 a = ",end=" ")
print(a)
print("原始矩阵 b = ",end=" ")
print(b)
for i in range(3):
temp = []
for j in range(3):
temp.append(b[j][i])
c.append(temp)
print("转置后矩阵 b = ",end=" ")
print(c)
for i in range(3):
temp = []
for k in range(3):
sum_temp = 0
for j in range(3):
sum_temp += a[i][j]*c[k][j]
temp.append(sum_temp)
res.append(temp)
print("相乘矩阵 res = ",end=" ")
print(res)
#这里感谢川川的这个代码
- (简答题) 借助列表,为小学生设计10以内的算术练习,使它具有以下功能:
(1) 提供5道加减乘除四种基本运算的题目
(2) 练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息
统计共回答的题目数以及正确率
# -*- coding:utf-8 -*-
# @Time : 2021-10-27 21:32
# @Author : 小青
# @File : r4.py
# @software: PyCharm
import random
def show_question():
#使用双引号表示字符串
symbol = " "
if 0 <= int(random.random()*10) and int(random.random()*10) < 2.5:
symbol = " + "
elif 2.5 <= int(random.random()*10) and int(random.random()*10) < 5:
symbol = " * "
elif 5 <= int(random.random()*10) and int(random.random()*10) < 7.5:
symbol = " - "
elif 7.5 <= int(random.random()*10) and int(random.random()*10) < 10:
symbol = " / "
else:
symbol = " + "
i=int(random.random()*10)
j=int(random.random()*10)
if symbol == " / ":
j += 1
print(i, end="")
print(symbol, end="")
print(j)
return i,j,symbol
def check(i,j,sysbol,ans):
if sysbol == " + ":
if i + j == int(ans):
print("正确")
return 1
else:
print("错误")
return 0
if sysbol == " - ":
if i - j == int(ans):
print("正确")
return 1
else:
print("错误")
return 0
if sysbol == " * ":
if i * j == int(ans):
print("正确")
return 1
else:
print("错误")
return 0
if sysbol == " / ":
if i / j == int(ans):
print("正确")
return 1
else:
print("错误")
return 0
print("以下是五道随机题目,请完成")
flag = 0
i = 1
for i in range(1, 6):
print("第"+str(i)+"个问题~~")
temp=show_question()
ans=input("请输入问题答案")
flag += check(temp[0],temp[1],temp[2],ans)
print("正确率为:", end="")
print(flag/5*100, end="")
print("%")



