**
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])
[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])
<map object at 0x100d3d550>
>>> list(map(square, [1,2,3,4,5]))
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))
[1, 4, 9, 16, 25]
>>>
Python split()方法
Python 字符串 Python 字符串
描述
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
语法
split() 方法语法:
str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
返回值
返回分割后的字符串列表。
实例
以下实例展示了 split() 函数的使用方法:
实例(Python 2.0+)
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );
以上实例输出结果如下:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
以下实例以
实例(Python 2.0+)
txt = "Google#Runoob#Taobao#Facebook"
第二个参数为 1,返回两个参数列表
x = txt.split("#", 1)
print x
以上实例输出结果如下:
['Google', 'Runoob#Taobao#Facebook']
**以上资源来自于菜鸟教程**
num_list = list(map(int, input().split()))
num_list.reverse()
for i in num_list:
print(i, end=' ')
上面使用map()函数和split()是为了将输入的字符串转化成整型进去转给num_list,方便后面进行倒转数字
- (简答题)计算两个3*3矩阵的积
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)
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) 练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息
统计共回答的题目数以及正确率
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("%")
|