jjzjj

Python123Python语言程序设计2021期末考试题库(编程题答案)

陆非池 2023-08-16 原文

《沉默的羔羊》之最多单词
附件是《沉默的羔羊》中文版内容,请读入内容,分词后输出长度大于2且最多的单词。如果存在多个单词出现频率一致,请输出按照Unicode排序后最大的单词。

import jieba
txt = open("沉默的羔羊.txt","r").read()
word = jieba.lcut(txt)
d = {}
for w in word:
    d[w] = d.get(w,0)+1
maxc,maxw = 0,""
for k in d:
    if d[k]>maxc and len(k)>2:
        maxc = d[k]
    if d[k]==maxc:
        maxw = k
print(maxw)

输出一串字符对应的Unicode值
获得用户输入的一个字符串,输出每个字符对应的Unicode值,这些值一行输出,采用逗号分隔,最后没有逗号。请完善代码。
s = input(“”)#输入一个字符串
ls = []for c in s:
_____①_____print()

s = input("")#输入一个字符串
ls = []
for c in s:
    ls.append(str(ord(c)))
print(','.join(ls))

CSV 格式数据清洗
附件是一个 CSV 文件,其中每个数据前后存在空格,请对其进行清洗,要求如下:
去掉每个数据前后空格,即数据之间仅用逗号 (,) 分割;
清洗后打印输出。

with open('data.csv', 'r', encoding='utf-8') as f:
    s = f.read()
    s = s.replace(" ","")
    print(s)
f.close()

文本字符分布
分析附件 data.txt 文件的字符分布,即每个字符对应的数量。‬
按照 字符:数量 显示,每行一个结果,如果没有出现该字节则不显示输出,字符采用 Unicode 编码升序排列。

f=open("data.txt", "r")
s = f.read()
c = dict()
for i in  s:
    if i in c:
        c[i]+=1
    else:
        c[i]=1
c_s = sorted(c.items(),key=lambda x:x[0],reverse=False)
for key,value in c_s:
print("{}:{}".format(key,value))

十二星座
编写程序,读入 CSV 文件中数据,循环获得用户输入,直至用户输入 “exit” 退出。根据用户输入的星座名称,输出此星座的出生日期范围及对应字符形式。如果输入的星座名称有误,请输出“输入星座名称有误!”。

f = open("SunSign.csv","r")
ls = []
for line in f:
    line = line.replace("\n","")
    ls.append(line.split(","))
while True:
    s = input()
    s.strip()
    f = 0
    if(s=="exit"):
        break
    for line in ls:
        if s == line[0]:
            f = 1
            print("{}座的生日位于{}-{}之间".format(chr(eval(line[3])),line[1],line[2]))
    if f==0:
        print("输入星座名称有误!")

凯撒密码B

s = input()
C =""
for P in s:
    if 'a'<= P <= 'z':
        C += chr( ord('a') + ((ord(P)-ord('a')) + 3 )%26 )
elif 'A'<= P <='Z':
C += chr( ord('A') + ((ord(P)-ord('A')) + 3 )%26 )
else:
C += P
print(C)

列表元素积

ls = eval(input(""))
s = 1
lt = []
for i in range(len(ls)):
    temp = ls[:]
    temp.pop(i)
    for j in temp:
        s *= j
    lt.append(s)
    s = 1
print(lt)

斐波拉契数列的前n项

def fib(n):
    if (n == 0):
        return 0
    if (n == 1):
        return 1
    return fib(n-1) + fib(n-2) 

n=int(input()) #int函数将input()接收到的字符串转成整数
if n <= 0:
    print("Error")
else:
    for i in range(n):
        print(fib(i))

中文词语逆序

import jieba
words = jieba.lcut(input())
for i in range(len(words)-1,-1,-1):
print(words[i],end='')

def getNum(): #获取用户不定长度的输入
    numStr = input()
    num = list(eval(numStr))
    return num

def mean(numbers):  #计算平均值
    s = 0.0;
    for num in numbers:
        s = s + num;
return s/len(numbers);

基本统计值计算
获取以逗号分隔的多个数据输入(输入为一行),计算基本统计值(平均值、标准差、中位数)‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬除中位数外,其他输出保留小数点后两位。

def dev(numbers, mean): #计算标准差
    sdev = 0.0
    for num in numbers:
        sdev = sdev + (num - mean)**2
    return pow(sdev / (len(numbers)-1), 0.5)

def median(numbers):    #计算中位数
    size = len(numbers)
    numbers.sort()
    if size%2==0:
        return (numbers[size//2-1]+numbers[size//2])/2
    else:
        return numbers[size//2]

n =  getNum() #主体函数
m =  mean(n)
print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m,dev(n,m),median(n)))

字典翻转输出
读入一个字典类型的字符串,反转其中键值对输出。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
即,读入字典key:value模式,输出value:key模式。

try: #异常处理
    s=eval(input())
    key=list(s.keys())
    value=list(s.values())
    sub={}
    for i in range(len(key)):
        sub[value[i]]=key[i]
    print(sub)
except:
print("输入错误")

人名最多数统计
编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。

words = s.split()
counts = {}
for word in words:
    counts[word] = counts.get(word, 0) + 1
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
print(items[0][0])

数字不同数之和
获得用户输入的一个整数 N,输出 N 中所出现不同数字的和。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬
例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为 6。

N = list(set(list(input())))
s = 0
for i in N:
    s += eval(i)
print(s)

英文单词个数统计

s = '''
"Collusion is very real with Russia," Trump quoted conservative commentator Dan Bongino as saying on Trump's favorite Fox News morning show, "but only with Hillary and the Democrats, and we should demand a full investigation."
'''
a = s.split() #利用split()方法对字符进行切片
num = len(a)
print(num)

汉诺塔求解

steps = 0
def hanoi(src, des, mid, n):
    global steps
    if n == 1:
        steps += 1
        print("[STEP{:>4}] {}->{}".format(steps, src, des))
    else:
        hanoi(src, mid, des, n-1)
        steps += 1
        print("[STEP{:>4}] {}->{}".format(steps, src, des))        
        hanoi(mid, des, src, n-1)
N = eval(input())
hanoi("A", "C", "B", N)

时间差之天数计算
获得用户输入的两个与时间相关的字符串,两个时间用逗号分隔,每个时间字符串格式示例如下:2018年08月01日17点21分21秒。
计算两个时间差的绝对值,输出相差的完整天数

import time
import datetime
def Time(day1,day2):
    day1 = time.strptime(day1,"%Y年%m月%d日%H点%M分%S秒")
    day2 = time.strptime(day2,"%Y年%m月%d日%H点%M分%S秒")
    d1=datetime.datetime(day1[0],day1[1],day1[2],day1[3],day1[4],day1[5])
    d2=datetime.datetime(day2[0],day2[1],day2[2],day2[3],day2[4],day2[5])
    return abs((d1 - d2).days)-1
day1,day2 = input().split(',')
print(Time(day1,day2))

任意累积

def cmul(a,*b):
    for n in b:
        a *= n
    return a
print(eval("cmul({})".format(input())))

随机密码生成‬
以整数 17 为随机数种子,获取用户输入整数 N 为长度,产生 3 个长度为 N 位的密码,密码的每位是一个数字。每个密码单独一行输出

import random as r

def genpwd(length):
    a = 10**(length-1)
    b = 10**length-1
    return "{}".format(r.randint(a,b))
length = eval(input())
r.seed(17)
for i in range(3):
    print(genpwd(length))

猴子吃桃

def peach(n):
    if n == 10:
        return 1
    else:
        return (peach(n+1)+1)*2

for i in range(10,0,-1):
    print("第{}天有{}只桃子".format(i,peach(i)))

生成随机密码
使用 random 库,采用 0x1010 作为随机数种子。
密码 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*中的字符组成。
每个密码长度固定为 10 个字符。
程序运行每次产生 10 个密码,每个密码一行。
每次产生的 10 个密码首字符不能一样

import random as r
r.seed(0x1010)
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
out = ""
while len(out) < 10:
    pwd = ""
    for i in range(10):
        pwd += s[r.randint(0,len(s)-1)]
    if pwd[0] in out:
        continue
    else:
        out += pwd[0]
        print(pwd)

字典最大值
输出字典fruits中键值最大的键值对

fruits = {"apple":10,"mango":12,"durian":20,"banana":5}
m = "apple"
for key in fruits.keys():
    if fruits[key] == max(fruits.values()):
        m = key
print('{}:{}'.format(m,fruits[m]))

四位玫瑰数

for i in range(1000,10000):
    a=i//1000
    b=i//100-a*10
    c=i//10-a*100-b*10
    d=i-a*1000-b*100-c*10
    if a**4+b**4+c**4+d**4==i:
        print(i)

用户登录的三次机会

for i in range(3):
    name = input()
    pasw = input() 
    if(name=="Kate" and pasw=="666666"):
        print("登录成功!")
        break
    elif i==2:
        print("3次用户名或者密码均有误!退出程序。")

连续质数计算

def prime(m):
    r = 1
    for i in range(2,m):
        if m%i == 0:
            r = 0
            break
    return r
    
n = eval(input())
a = int(n)
a = a + 1 if a < n else a
p = ""
count=5
while count>0:
    if(prime(a)):
        p += "{},".format(str(a))
        count -= 1
    a += 1
print(p[:-1])

数列求和
输入一个自然数 n,如果 n 为奇数,输出表达式 1+1/3+…+1/n 的值;如果 n 为偶数,输出表达式 1/2+1/4+…+1/n 的值。输出表达式结果保留 2 位小数

def f(n):
	if n == 1:
		return n
	elif n == 2:
		return 1/2
	else :
		return 1/n+f(n-2)
n = int(input())
print("{:.2f}".format(f(n)))

天数计算 II

import calendar
year,month = input().split(',')
year = int(year)
month = int(month)
monthRange = calendar.monthrange(year,month)
print(monthRange[1])

计算三维空间某点距离原点的欧式距离

import math as m
def distance(x,y,z):
    r = m.sqrt(x**2+y**2+z**2)
    return r
x,y,z=input().split(",")
d=distance(float(x),float(y),float(z))#调用distance函数
print("{:.2f}".format(d))

恺撒密码

s = input()
C =""
for P in s:
    if 'a'<= P <= 'z':
        C += chr( ord('a') + ((ord(P)-ord('a')) + 3 )%26 )
    elif 'A'<= P <='Z':
        C += chr( ord('A') + ((ord(P)-ord('A')) + 3 )%26 )
    else:
        C += P
print(C)

文本词频统计 – Hamlet

def getText():
    txt = open("hamlet.txt", "r").read()
    txt = txt.lower()
    for ch in txt:
        if ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
            txt = txt.replace(ch," ")
    return txt
words = getText().split()
d = {}
for w in words:
    d[w] = d.get(w,0)+1
d=sorted(d.items(),key = lambda x:x[1],reverse=True)
for i in range(10):
    word,cnt = d[i]
    print(word)

人名独特性统计

name = set(s.split())
print(len(name))

字典翻转输出
读入一个字典类型的字符串,反转其中键值对输出。即,读入字典key:value模式,输出value:key模式。

try: #异常处理
    s = eval(input())
    key = list(s.keys())
    value = list(s.values())
    sub = {}
    for i in range(len(key)):
        sub[value[i]] = key[i]
    print(sub)
except:
print("输入错误")

数字不同数之和
获得用户输入的一个整数 N,输出 N 中所出现不同数字的和。例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为 6。

N = list(set(list(input())))
s = 0
for i in N:
    s += eval(i)
print(s)

四瓣花

import turtle as t
for i in range(4):
    t.seth(90+i*90)
    t.circle(200, 90)
    t.seth((-90)+90*i)
t.circle(200, 90)

六边形

import turtle as t
for i in range(6):
    t.fd(200)
    t.left(60)

温度转换
‘请输入一个带符号的温度:’

Tem = input()

if Tem[-1] in ['F','f']:
    C = (eval(Tem[0:-1])-32)/1.8
    print('{:.2f}C'.format(C))
elif Tem[-1] in ['C','c']:
    F = eval(Tem[0:-1])*1.8+32
    print('{:.2f}F'.format(F))
else:
    print("输入格式错误")

Python蟒蛇绘制

import turtle as t
t.setup(650,350,200,200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):
    t.circle(40,80)
    t.circle(-40,80)
t.circle(40,80/2)
t.fd(40)
t.circle(16,180)
t.fd(40*2/3)

天天向上的力量

def dayUp(df):   # 定义函数
    dayup = 1
    for i in range(365):
        if i % 7 in [6,0]:
            dayup = dayup * (1 - 0.01)
        else:
            dayup = dayup * (1 + df)
    return dayup
dayfactor = 0.01
while dayUp(dayfactor) < 37.78:
    dayfactor += 0.001
print("工作日的努力参数是: {:.3f}".format(dayfactor))

八角图形绘制

import turtle as t
t.pensize(2)
for i in range(8):
    t.fd(150)
    t.left(135)

正方形

import turtle
d = 0
for i in range(4):
    turtle.fd(200)
    d += 90
turtle.seth(d)

百钱买百鸡

for R in range(1,20):
    for hen in range(1,30):
        chick = 100-R-hen
        if chick/3+hen*3+R*5 ==100:
            print(R,hen,chick)

有关Python123Python语言程序设计2021期末考试题库(编程题答案)的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  3. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  4. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  6. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  7. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  8. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  9. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  10. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

随机推荐