python二级操作题与分析(7)

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]))




你可能感兴趣的:(python)