中国大学 MOOC 课程Python语言程序设计 (第11期)测试答案(1-5周)
感谢中国大学MOOC提供的学习平台,以下内容皆为自己测试的记录
测验1: Python基本语法元素 (第1周)
点击选项选择正确答案,每题有且仅有一个正确答案
Python成功了,所以早年的开发历史也受到关注,以下是Guido自述的启动阶段时间表:
"
December, 1989 Implementation started
1990 Internal releases at CWI
February 20, 1991 0.9.0 (released to alt.sources)
February, 1991 0.9.1
"
鉴于Internal release不算对外发布,普遍认为Python语言诞生于1991年。
Python语言的缩进只要统一即可,不一定是4个空格(尽管这是惯例)。
IPO:Input Process Output
字符串有正向递增和反向递减两套序号体系
合法命名的首字符不能是数字。
get()不是Python内置函数,获得用户输入只有一种方式:input()。
type不是Python保留字,而是内置函数 type()。
实数是数学中的概念,在Python中对应浮点数。
if-elif-else是分支表达,in用来进行成员判断。
:.2f 哪一个都不能少
300331588487018712
Hello World的条件输出
描述
获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)
如果输入值小于0,以垂直方式输出"Hello World"
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
a = int(input())
hi = 'Hello World'
if a == 0:
print(hi)
elif a > 0:
for i in range(0, len(hi)-1, 2):
print(hi[i], hi[i + 1])
print('d')
else:
for i in hi:
print(i)
03300331588487042308
数值运算
描述
获得用户输入的一个字符串,格式如下:
M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
a = input()
print('{:.2f}'.format(eval(a)))
测验2: Python基本图形绘制 (第2周)
点击选项选择正确答案,每题有且仅有一个正确答案
import只有三种使用方法,以turtle库为例:
import turtle
from turtle import setup 或 from turtle import *
import turtle as t (其中t是别名,可以更换其他名称)
turtle坐标系的原点默认在窗体正中间
坐标系类似这样,角度坐标系的绝对0度方向是右侧
哪个选项是下面代码的执行结果?
turtle.circle(-90,90)
绘制一个半径为90像素的弧形,圆心在小海龟当前行进的左侧
绘制一个半径为90像素的弧形,圆心在小海龟当前行进的右侧
绘制一个半径为90像素的弧形,圆心在画布正中心
绘制一个半径为90像素的整圆形
circle(x, y) 表示 以x长度为半径,y为角度,当前方向左侧x出为圆心,画圆。其中x和y都可以是负数,相应取反。
circle()函数不能绘制椭圆形。
turtle.pendown()只是放下画笔,并不绘制任何内容。
bk()只能后退,但不改变方向,"后退"不是"转向"。
循环相关保留字是:for..in和while,但def用于定义函数,不相关。
circle(x,y)函数的用法,绘制半圆,第二个参数y是180的奇数倍。
建议在每个turtle绘图最后增加turtle.done()。
3300331588487136939
turtle八边形绘制
描述
使用turtle库,绘制一个八边形。
注意:这是一个自动评阅题目,请补充"编程模板"中横线内容,横线不保留。
输出示例
八边形效果如下:
#请在横线中填写Python表达式或语句,实现所需要的功能
#注意:补充代码将以匹配方式评阅,代码中不要出现空格
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(100)
t.left(45)
turtle八角图形绘制
描述
使用turtle库,绘制一个八角图形。
注意:这是一个自动评阅题目,请补充"编程模板"中横线内容,横线不保留。
输出示例
八角图形效果如下:
#请在横线中填写Python表达式或语句,实现所需要的功能
#注意:补充代码将以匹配方式评阅,代码中不要出现空格
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(150)
t.left(135)
测验3: 基本数据类型 (第3周)
点击选项选择正确答案,每题有且仅有一个正确答案
>>> pow(-1, 0.5)(6.123233995736766e-17+1j)
"去掉字符串两侧指定字符"对应功能是.strip()
"按照指定字符分割字符串为数组"对应功能是.split()
"替换字符串中特定字符"对应功能是.replace()
"连接两个字符串序列"对应功能是+操作符
换行符\n,与C语言中一致。
len(str(val))首先通过str(val)将数字类型val变成字符串,再通过len()获得字符串长度,即val的数字个数。
from * import time 应该是: from time import *
十进制:一般表示
二进制:0b 或 0B 开头
八进制:0o 或 0O 开头
十六进制:0x 或 0X 开头
没有0E开头
Python不支持四进制整数
%是取余数,与C语言相同。
哪个选项是下面代码的执行结果?
name="Python语言程序设计课程"print(name[0],name[2:-2],name[-1])
P thon语言程序设计课 程
P thon语言程序设计 程
P thon语言程序设计课 课
P thon语言程序设计 课
s[N:M]表示对字符串s的切片操作,从N到M,但不包含M
哪个选项是下面代码的执行结果?
s='PYTHON'print("{0:3}".format(s))
PYTHON
PYTHON
PYT
PYTH
{0:3}表示输出的宽度是3,但如果字符串超过长度3,则以字符串长度显示。
平方根格式化
描述
获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。
输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。
如果结果超过30个字符,则以结果宽度为准。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
num = int(input())
result = pow(num, 0.5)
print("{:+>30.3f}".format(result))
字符串分段组合
描述
获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
a = input()
result = a.split('-')
print(f'{result[0]}+{result[-1]}')
测验4: 程序的控制结构 (第4周)
点击选项选择正确答案,每题有且仅有一个正确答案
for var in ___:
print(var)
哪个选项不符合上述程序空白处的语法要求?
{1;2;3;4;5}
(1,2,3)
"Hello"
range(0,10)
for .. in .. 中 in 的后面需要是一个迭代类型(组合类型),{1;2;3;4;5}不是Python的有效数据类型。
for i in range(0,2):
print(i)
哪个选项是以上程序的输出结果?
1
0 1 2
1 2
0 1
range(0, 2)输出两个值:0和1。
k=10000while k>1:
print(k)
k=k/2
哪个选项给出了上述程序的输出次数?
15
14
1000
13
请跟随程序计算或在IDLE中运行程序获得结果。
无对象结构、跳转结构、过程结构等说法。
死循环能够用于测试性能,形式上的死循环可以用break来退出,例如:
x = 10while True:
x = x - 1
if x == 1:
break
死循环是有其作用的。
Python中的=是赋值符号,==是判断相等性的等于符号。
缩进表达层次关系。
哪个选项是下面代码的执行结果?
for s in "PYTHON":
if s=="T":
continue
print(s,end="")
PYHON
TT
PYTHON
PY
continue结束当次循环,但不跳出当前循环。
使用了异常处理,程序可能运行不会出错,但逻辑上可能出错。程序错误是一个大概念,不仅指代码运行错误,更代表功能逻辑错误。
四位玫瑰数
描述
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
输入输出示例
输出仅表示格式,不表示对错。
输入 | 输出 | |
示例 1 |
|
|
for i in range(1000, 10000):
t = str(i)
if pow(eval(t[0]),4) + pow(eval(t[1]),4) \
+ pow(eval(t[2]),4)+ pow(eval(t[3]),4) == i :
print(i)
100以内素数之和
描述
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
输入格式
该题目没有输入
输入输出示例
输入 | 输出 | |
示例 1 | 1234(这是示例,不是真实输出) |
result = 0
for i in range(2,101):
if i%2==0 and i!=2:
continue
sign = True
for j in range(2,i):
if i%j==0:
sign =False
break
if sign:
result+=i
print(result)
点击选项选择正确答案,每题有且仅有一个正确答案
函数不能直接提高代码执行速度。
下列程序的输出结果为:
def f(a,b):
a=4
return a+bdef main():
a=5
b=6
print(f(a,b),a+b)main()
11 11
11 10
10 10
10 11
这里没有全局变量,都是函数局部变量的运算。
以下关于Python函数说法错误的是:
def func(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=func(a,b)+a
执行该函数后,变量b的值为100
该函数名称为func
执行该函数后,变量c的值为200
执行该函数后,变量a的值为10
这里没有全局变量,请在IDLE中执行代码观察结果。
函数调用前必须已经存在函数定义,否则无法执行。
Python内置函数直接使用,不需要引用任何模块。
模块内高耦合、模块间低耦合。
递归不提高程序执行效率。
任何递归程序都可以通过堆栈或队列变成非递归程序(这是程序的高级应用)。
调用函数不需要知道函数内部实现原理,只需要知道调用方法(即接口)即可。
def vfunc(*a, b) 是错误的定义:*a表示可变参数,可变参数只能放在函数参数的最后。
函数可以包含0个或多个return语句
每个递归函数至少存在一个基例,但可能存在多个基例。
随机密码生成
描述
补充编程模板中代码,完成如下功能:
以整数17为随机数种子,获取用户输入整数N为长度,产生3个长度为N位的密码,密码的每位是一个数字。每个密码单独一行输出。
产生密码采用random.randint()函数。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
#请在...补充代码
import random
def genpwd(length):
a = 10**(length-1)
b = 10**length - 1
return "{}".format(random.randint(a, b))
length = eval(input())
random.seed(17)
for i in range(3):
print(genpwd(length))
31588487431757
连续质数计算
描述
补充编程模板中代码,完成如下功能:
获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。
注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。
输入输出示例
输入 | 输出 | |
示例 1 |
|
|
# 请在...补充一行或多行代码
def prime(m):
for i in range(2,m):
if m % i == 0:
return False
return True
n = eval(input())
a = int(n)
a = a+1 if a < n else a
count = 5
while count > 0:
if prime(a):
if count > 1:
print(a, end=",")
else:
print(a, end="")
count -= 1
a += 1
