1.基本操作题 (1)
从键盘输入 3 个数作为三角形的边长,在屏幕上显示输出由这 3 个边长构成三角形的面积(保留 2 位小数)。
请参照代码模板,完善代码。
输入输出示例
输入 输出
示例 1 3,3,3 3.90
习题讲解
a,b,c = eval(input())
p = (a+b+c)/2
area = pow(p * (p-a)*(p-b)*(p-c),0.5)
print("{:.2f}".format(area))
//s=根号下:p(p-a)(p-b)(p-c) 其中p=1/2(a+b+c)
这个公式叫海伦公式
S=√[p(p-a)(p-b)(p-c)]
而公式里的p为半周长:p=(a+b+c)/2
2.基本操作题(2)
将一个列表中所有的单词首字母转换成大写。
请参照代码模板,完善代码。
输入输出示例
输入 输出
示例 1 [“python”,“is”,“opening”] [‘Python’, ‘Is’, ‘Opening’]
习题讲解
ls = eval(input())
for i in range(len(ls)):
ls[i] = ls[i].capitalize()
print(ls)
3.基本操作题(3)
从键盘输入一个列表,计算输出列表元素的均方差。 //标准差
请参照代码模板,完善代码。本题支持自动评阅。
方差s2=[(x1-x)2+(x2-x)2+…(xn-x)2]/(n)(x为平均数)
⒉标准差=方差的算术平方根errorbar
pow() 方法返回 xy(x的y次方) 的值。
输入输出示例
输入 输出
示例 1 [99,98,97,96,95] 均方差为:1.58
习题讲解
def mean(numlist):
s = 0.0
for num in numlist:
s = s + num
return s/len(numlist)
def dev(numlist,mean):
sdev = 0.0
for num in numlist:
sdev = sdev + (num - mean)**2
return (sdev /(len(numlist)-1) )** 0.5#请输入一个列表:
ls = eval(input(""))
print("均方差为:{:.2f}".format(dev(ls,mean(ls))))
4.简单操作题(1)
使用 turtle 库的 turtle.right() 函数和 turtle.circle() 函数绘制一个星星图形,如下图所示。
请参照代码模板,完善代码。
自动评阅说明
使用字符串形式输出 ①,②,____③____中应填代码即可以自动评阅得分
例如,如果代码为:
import turtle | import turtle
d = 0 | d = 0for i in range(1): | for i in range(1):
turtle.fd(2) | turtle.fd(100)
d = 3 | d = (i + 100) * 100
turtle.seth(d) | turtle.seth(d)
则在提交代码页面输入:
print(‘1’, ‘100’, ‘(i + 100) * 100’)
提交后即可以查看得分
注:如果有运算符,请在运算符两侧加上空格
习题讲解
import turtle
for i in range(4):
turtle.circle(-90,90)
turtle.right(180)
print(-90,180)
5.简单操作题(2)
用字典和列表型变量完成某课程的考勤记录统计,某班有 74 名同学,名单由考生目录下文件 txt 给出,某课程 10 次考勤数据由考生目录下文件 1.csv,2.csv … 给出。请输出全勤同学的名字。
请参照代码模板,完善代码。
输入输出示例
输入 输出
示例 1 全勤同学有:陈恒杰,张冲,蔡冯顺,…
习题讲解
# 从csv文件中读取考勤数据
ls = []
for i in range(1,11):
fo = open(str(i) +".csv","r",encoding = "utf-8")
for line in fo:
line = line.replace("\n","")
ls.append(line.split(",")[0])
fo.close()
counts = {}
for name in ls:
counts[name] = counts.get(name,0) + 1
items = list(counts.items())
print("全勤同学有:",end ="")
for i in range(1,74,1):
word,count = items[i]
if count == 10 :
#print("{0:<10}:{1:<5}次".format(word,count))
print(word,end =",")
6.综合应用题
苏格拉底是古希腊著名的思想家、哲学家、教育家、公民陪审员。苏格拉底的名言部分被翻译为中文,部分内容分词结果由考生目录下文件 sgldout.txt 给出。对文件 sgldout.txt 进行分析,输出词频排名前五的词 (不包括中文标点符号) 和次数到 sgldstatistics.txt。
参照输出格式如下:
了:234
了:234
了:234
了:234
了:234
请参照代码模板,完善代码,通过单机测试运行程序。
自动评阅说明
不需要打开(open)写入(writeline)文件,使用 print 输出内容即可自动评阅。
习题讲解
import jieba
fo = open("sgldout.txt","r",encoding ="utf-8")
words = fo.readlines()
fo.close()
sym = ";。,“”: "
DictWords = {}
for ls in words:
if ls[:-1] not in sym:
DictWords[ls[:-1]] = DictWords.get(ls[:-1], 0) + 1
L = list(DictWords.items())
L.sort(key = lambda s:s[1],reverse=True)
# 输出到文件
fo = open("sgldstatistics.txt", "w", encoding="utf-8")
for i in range(5):
fo.writeline(L[i][0] + ":" + str(L[i][1]) + "\n")
fo.close()
# print 输出for i in range(5):
print(L[i][0] + ":" + str(L[i][1]))