python123题解

您所在的位置:网站首页 python123进制转换答案 python123题解

python123题解

2024-07-17 12:47:00| 来源: 网络整理| 查看: 265

提示:本文仅供学习交流使用,请勿盲目cv

content python123

难题集

一:

2.输出数字序列练习

二:

5.换披萨

三:

1.一元二次方程求根

五:

1.前n项和 3.各位数字之和 5.分类统计

六:

1:用户登录 2:存款买房 3:计算机问候-无参无返回 4:无参有返回 5:二鼠打洞 6:鸡兔同笼

七:

1 二分法 2: 自定义幂 4 多参 5 默认参 6 任意参 7 汽车 8 自除数

八:

1:身份证基本信息 2:回文素数 3:反素数 4: 哥德巴赫猜想 5:货币转换 6:个人信息提取(控制结构)

九:

1 判断字符串结尾: 3 各位数和为5的数 4 字符串长度 5 字符串加密 6 输出单词 7 数列求和 8 大小写转换 9 查找指定字符 10 模拟洗牌 11 随机密码 12 模拟生成微软序列号

1:列表属性与方法 2:推导式与生成器 3:列表合并与排序 4:二维列表排序 5:动物重量排序 6:身份证号升位 7:完美立方数 8:约瑟夫环问题

十一

1:字符串排序去重 2:列表去重 3:猜年龄 4:集合的属性与方法 5:集合介绍 6:手机销售统计 7:对等差分 8:集合添加元素

十二:

1.列表嵌套字典 2.绩点计算 3.通讯录 4.字典增加元素 5.查询省会 6.字典属性方法 7.字典统计 8.英汉词典

理论十三

1.统计字母数量: 2.统计文章字符数: 3.查询高校信息 4.查询高校名 5.通讯录(读取) 6.json转列表 7.利用数据文件统计成绩 8.研究生录取数据分析 9.图书数据分析(A)

附录——实验二:

1 求前n项平方和 2 🐇繁殖问题 3 最大素数 4 无穷级数圆周率 5 割圆法 6 🚕计费 7 前n项和 8 素数

附录——实验三:

1 : 角古猜想 2:自幂数 3:百分制成绩转换五分制 4:a / b 5:表面积与体积 6 : 计算函数曲线与x轴面积 7:古代问题集锦 8: 求零点

附录——实验 4:

1:素数问题(啥皮题) 2:自定义数学函数 3:瘊子吃桃 4:素数求和 5:本月天数 6:寄偶求和 7:华氏转摄氏

附录——实验五

1:字母查找2.0 2:判断火车票座位 3:统计单词的数量 4.缩写月份单词 5.凯撒密码 6:字符串移位 7:个人信息提取: 8:模拟砍价:

附录——实验六:

1:素数求和: 2:身份证号脱敏 3:文本分析(1)——统计文件中的字符 4:分解质因数 5:摩斯电码转化 6:插入位置 7:列表删除数据 8:奇偶插入

附录——实验七:

1.绝对值排序 2.两数之和 3.年龄最大的人 4.不定方程求解 5.身份证号升位 6.程序员问卷调查 7.葡萄酒

附录——实验八

1.个人数据合并 2.查找数字 3.共有前缀 4.查找特征数 5.查找重复数字 6.集合添加元素 7.通讯录删除 8.通讯录(查询)

附录——实验九

1.大学排行榜分析 2.简易英汉字典 3.数据统计 4.罗马数字转换 5.词频统计 6.商品房数据统计 7.统计文本中单词数 8.2019慈善排行 python123

答案仅供参考 题号以#分隔,不作过多讲解 为提高同学们自主性,本文停止更新

难题集 一: 2.输出数字序列练习 n = int(input()) # 输入一个正整数 n for i in range(n): print(i) # 每行一个数字输出 0 -(n-1) for i in range(n): print(i,end=' ') # 在一行内输出 0 -(n-1),每个数字后输出一个空格 print() # 此行保留,不要修改 for i in range(n): print(i,end='') # 在一行内输出 0 -(n-1),每个数字间没有空格 print() # 此行保留,不要修改 for i in range(n): print(f'{i},',end = '') # 在一行内输出 0 -(n-1),每个数字后输出一个逗号 print() # 此行保留,不要修改 for i in range(n): if i != n - 1: # 当i不是最后一个数时,每个数字后输出一个逗号 print(f'{i},',end = '') else: print(i) # 当i是最后一个数时,数字后不能有逗号 二: 5.换披萨

初级模拟题,上手用

from math import ceil m = int(input()) n = int(input()) c = m ** 2 / (n ** 2) # c = num print(ceil(c)) # ceil 向上取整 三: 1.一元二次方程求根

是一个对if判断上手比较合适的题 但是卡条件比较ex

from math import sqrt a = eval(input()) b = eval(input()) c = eval(input()) if not a and b: x = -c / b print(f'{x:.2f}') if not a and not b: print("Data error!") if a: delta = b ** 2 - 4 * a * c if delta < 0: print("该方程无实数解") if delta >= 0: x1 = (-b - sqrt(delta)) / (2 * a) x2 = (-b + sqrt(delta)) / (2 * a) if not delta: print(f'{x2:.2f}') if delta > 0: print(f'{x2:.2f} {x1:.2f}') 五: 1.前n项和

fib数列的python特色应用写法

n = int(input()) res = 1 F = 0 # Fn = fn-1 + fn-2 F_1 , F_2 = 0,1 for i in range(n): F = F_1 + F_2 F_1 , F_2 = F_2 , F add = ((-1) ** i) * (i / F) res += add print('{:.6f}'.format(res)) 3.各位数字之和

切片

n = input() res = 0 for i in range(len(n)): res += int(n[i]) print(res) 5.分类统计

直接用库函数写了就行。。。深入就是ascii码判断拉

s = input() eng = 0 num = 0 char = 0 for i in range(len(s)): if s[i].isdigit(): num += 1 elif s[i].isalpha(): eng += 1 else: char += 1 print(f'letter = {eng}, digit = {num}, other = {char}') 六: 1:用户登录

条件判断写对就好

for i in range(1, 4): name = input() pwd = input() if (name == 'admin' or name == 'administrator') and pwd == '123456': print("登录成功") break; else: print("登录失败") 2:存款买房

纯纯的**题

total_cost = float(input()) # total_cost为当前房价 annual_salary = float(input()) # 年薪 portion_saved = float(input()) / 100 #月存款比例,输入30转为0.30(即30%) semi_annual_raise = float(input()) / 100 #输入每半年加薪比例,输入7转化为0.07(即7%) portion_down_payment = 0.3 # 首付比例,浮点数 # 根据首付款比例计算首付款down_payment #======================================================= # 补充你的代码 down_payment = total_cost * 0.3 #======================================================= print('首付',down_payment) current_savings = 0 # 存款金额,从0开始 number_of_months = 0 # 月数 monthly_salary = annual_salary / 12 #月工资 monthly_deposit = monthly_salary * portion_saved # 月存款 # 计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整 #每6个月涨一次工资,每年输出年底的存款总额 #======================================================= # 补充你的代码 while True: current_savings += monthly_salary * portion_saved number_of_months += 1 if number_of_months % 12 == 0: print("第{}个月月末有{:,.0f}元存款".format(number_of_months, current_savings)) if current_savings >= down_payment: break if number_of_months % 6 == 0: monthly_salary = monthly_salary * (1 + semi_annual_raise) #======================================================= print(f'需要{number_of_months}个月可以存够首付') 3:计算机问候-无参无返回 def print_hi_human(): # 函数名用小写字母 """文档注释,双引号,说明函数的参数、功能和返回值等。 定义一个名为sayHi的无参数函数,其功能是打印一句问候语, 这个函数没有return语句,即没有返回值,或者说其返回值为None""" #======================================================= print("人类,你好!") # 补充你的代码 #======================================================= # 直接使用函数名来调用函数 #======================================================= print_hi_human() # 补充你的代码 #======================================================= 4:无参有返回 def say_hi_human(): # 函数名用小写字母 """定义一个名为print_hi_human的无参数函数,其功能是返回字符串-人类,你好!""" #======================================================= return '人类,你好!' # 补充你的代码 #======================================================= # 函数名作为print()函数的参数,输出say_hi_human()的返回值 #======================================================= print(say_hi_human()) # 补充你的代码 #======================================================= 5:二鼠打洞

数学问题

n = int(input()) # wall rat, mouse, day, time = 1, 1, 0, 1 #大老鼠速度,小老鼠速度,相遇时间,第一天时间 distance_of_rat, distance_of_mouse = 0, 0 # 大老鼠和小老鼠的打洞距离 while n > 0: if n - mouse - rat < 0: #第一天打洞完成 time = n / (mouse + rat) #算出需要时间 n = n - mouse - rat #剩余墙厚 distance_of_mouse = distance_of_mouse + time * mouse distance_of_rat = distance_of_rat + time * rat rat = rat * 2 #大老鼠每天进度 mouse = mouse / 2 #小老鼠每天进度 day = day + 1 #时间过去一天 print(day) print(round(distance_of_mouse, 1), round(distance_of_rat, 1)) 6:鸡兔同笼

数学问题

h,f = map(int,input().split(' ')) # h = m + n # f = 2m + 4n n = (f - 2 * h) / 2 m = h - n if n == int(n) and m == int(m) and m >= 0 and n >= 0: # 这里可以等于0.。。。有一个测试点是 1 4 或者是 1 2.。。 # 已经无语了,鸡兔同笼没有鸡。。。 print(f'有{int(m)}只鸡,{int(n)}只兔') else: print("Data Error!") 七: 1 二分法 # 说明: 本题不建议使用我的模板,因为证明起来比较麻烦 # 这里原意应该是按题意暴力模拟 # 下面的代码思路看不懂就算了 import math def sqrt_binary(n): # 浮点数二分 l, r = 0, n + 0.25 while r - l >= 0: mid = (l + r) / 2 if (mid * mid < n + eps): if abs(mid * mid - n) = 0: print(f'有{int(m)}只鸡,{int(n)}只兔') else: print("Data Error!") # ======================================================= def amount_of_goods(): """一些物品,不知道有多少个,3个3个数的话,还多出2个;5个5个数则多出3个; 7个7个数也会多出2个。输入一个正整数,从小到大依次输出所有不超过输入数字 且满足条件的物品数量,有多个答案时每行输出一个。 例如输入:200 输出: 23 128 """ # ======================================================= n = int(input()) st = False for i in range(n + 1): if i % 3 == 2 and i % 5 == 3 and i % 7 == 2: print(i) st = True if not st: pass # ======================================================= def two_mice(): """有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打洞一尺,小老鼠也是打洞一尺。 大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。计算并输出它们几天可以相逢, 相逢时各打了多少尺。 输入格式:输入1 个整数,代表墙的厚度,单位为尺 输出格式: 第一行输出1 个整数,表示相遇时所需的天数 第二行输出2 个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1 位数字。 """ # ======================================================= # 此处去掉注释符号“#”并补充你的代码 n = int(input()) # wall rat, mouse, day, time = 1, 1, 0, 1 # 大老鼠速度,小老鼠速度,相遇时间,第一天时间 distance_of_rat, distance_of_mouse = 0, 0 # 大老鼠和小老鼠的打洞距离 while n > 0: if n - mouse - rat < 0: # 第一天打洞完成 time = n / (mouse + rat) # 算出需要时间 n = n - mouse - rat # 剩余墙厚 distance_of_mouse = distance_of_mouse + time * mouse distance_of_rat = distance_of_rat + time * rat rat = rat * 2 # 大老鼠每天进度 mouse = mouse / 2 # 小老鼠每天进度 day = day + 1 # 时间过去一天 print(day) print(round(distance_of_mouse, 1), round(distance_of_rat, 1)) # ======================================================= def libai_buy_wine(): """大诗人李白,提着酒壶,从家里出来,酒壶中有酒若干。他边走边唱:无事街上走,提壶去买酒, 遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒,计算并输出壶中原有酒几斗? """ # ======================================================= # 此处去掉注释符号“#”并补充你的代码 n = 0 for i in range(5): n += 1 n /= 2 print(n) # ======================================================= def lamp_on_pagoda(): """有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍, 已知共有765 盏琉璃灯,计算并输出每层各有多少盏琉璃灯。 输出为8行,从上往下数字依次增大。 """ # ======================================================= # 此处去掉注释符号“#”并补充你的代码 p = [3, 6, 12, 24, 48, 96, 192, 384] for i in range(1, 9): print(f'第{i}层上有{p[i - 1]}只琉璃灯') # ======================================================= if __name__ == '__main__': choice = input() # 接收用户输入的字符串 type_judge(choice) # 调用判断输入的函数决定执行哪个函数 8: 求零点 def fx(x): return x ** 5 - 15 * (x ** 4) + 85 * (x ** 3) - 225 * (x ** 2) + 274 * x - 121 def erfen(n): eps = 10 ** (-n) l = 1.5 r = 2.4 while r - l > eps * 1.2: # 取精度很无语 mid = (r + l) / 2 if (fx(mid) > eps): l = mid else: r = mid return mid if __name__ == '__main__': n = int(input()) print(f'{erfen(n):.6f}') 附录——实验 4: 1:素数问题(啥皮题)

这题有一个8s的点,zw让我用短路跳掉,所以一定要先判断回文再判断素数

def question_judge(question): """接收一个字符串为参数,根据参数值判断问题类型,调用合适的函数进行操作。""" if question == '素数': # 如果输入”素数“,再输入一个正整数n,输出不大于n的所有素数 n = int(input()) output_prime(n) # 输出素数 elif question == '回文素数': n = int(input()) palindromic_prime(n) # 输出回文素数 elif question == '反素数': n = int(input()) reverse_prime(n) # 输出反素数 elif question == '哥德巴赫猜想': n = int(input()) goldbach_conjecture(n) else: print('输入错误') def is_prime(n): """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False 减小判定区间,减少循环次数,提升效率""" if n 5: yn = '19' else: yn = '20' new = old[:6] + yn + old[6:] w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] s = 0 for i in range(len(new)): s += int(new[i]) * w[i] mod = s % 11 x = '10X98765432' id18 = new + x[mod] return id18 n = int(input()) with open('id15.txt','r',encoding='utf-8') as file: for i in range(n): line = file.readline() # line 的内容是文件中的一行,字符串类型 # 在这里写你的代码 line = line.strip().split() print(id15218(line[0]) , line[1],sep = ' ') 6.程序员问卷调查 #不允许修改。fopen函数打开文件,并返回包含文件数据一个列表ls, def fopen(name): ls=[] with open(name,'r',encoding = 'UTF-8') as f: for i in f.readlines()[1:]: ls.append(i.strip().split(',')) return ls def calu(lt): res = {"程序员":0,"程序爱好者":0,"程序初学者":0,"编程相关者":0,"非程序员":0,"空白":0} for i in lt: if "I am a developer by profession" in i[1]: res["程序员"] += 1 elif "I code primarily as a hobby" in i[1]: res["程序爱好者"] += 1 elif "I am a student who is learning to code" in i[1]: res["程序初学者"] += 1 elif "I am not primarily a developer" in i[1]: res["编程相关者"] += 1 elif "I used to be a developer by profession" in i[1]: res["非程序员"] += 1 elif "NA" in i[1]: res["空白"] += 1 return res def main(): lt = fopen('survey.csv') #不允许修改,打开题目文件,并将返回的数据列表赋值给lt com = input() data = calu(lt) if com in data: print(com + ':' + str(data[com]) + '条') elif com == "记录": all = sum(list(data.values())) print("总计:" + str(all) + "条") else: print("错误输入") if __name__ == '__main__': main() 7.葡萄酒 import pandas as pd import math # 定义符号常量,用于索引,使之具有清晰的语义 NUMBER = 0 COUNTRY = 1 DESCRIPTION = 2 POINTS = 3 PRICE = 4 PROVINCE = 5 def csv_to_ls(file): """接收文件名为参数,用pandas读取数据为dataframe格式, 再将其数据部分(values)用tolist()方法转为二维列表, 返回这个二维列表。 @参数 file:文件名,字符串类型 """ wine_list = pd.read_csv(file).values.tolist() return wine_list def country_ls(wine_list): """接收列表格式的葡萄酒数据为参数,略过标题行,返回不重复的国家名列表,按字母表升序排序, 若国家名数据缺失,略过该条数据,返回值中不包含空字符串元素。 @参数 wine_list:葡萄酒数据,列表类型 """ c=set() for x in wine_list: c.add(x[1]) country=sorted(list(c)) return country def avg_point(wine_list, country): """接收列表格式的葡萄酒数据和国家名列表为参数,计算每个国家的葡萄酒的平均得分, 返回值为国家名和得分的列表。 @参数 wine_list:葡萄酒数据,列表类型 @参数 country:国家名,列表类型 """ ls=[] for x in country: p=[y[3] for y in wine_list if y[1]==x] avg=round(sum(p)/len(p),2) n=[x,avg] ls.append(n) return ls def avg_point_sort(wine_list, country): """接收列表格式的葡萄酒数据和国家名列表为参数,计算每个国家的葡萄酒的平均得分, 返回值为国家名和得分的列表,按评分由高到低降序排列。 @参数 wine_list:葡萄酒数据,列表类型 @参数 country:国家名,列表类型 """ ls=[] for x in country: p=[y[3] for y in wine_list if y[1]==x] avg=round(sum(p)/len(p),2) n=[x,avg] ls.append(n) ls.sort(key=lambda x:x[1],reverse=True) return ls def top_10_point(wine_list): """接收列表格式的葡萄酒数据参数,返回评分最高的十款葡萄酒的编号、出产国、评分和价格,按评 分降序输出。 需要注意的是评分可能有缺失值,此时该数据为nan if math.isnan(x) == False可用于判定x的值是不是nan nan的数据类型是float,不可以直接用字符串判定方法。 @参数 wine_list:葡萄酒数据,列表类型 """ a = [x[0:2] + x[3:5] for x in wine_list if math.isnan(x[3])==False] return sorted(a,key=lambda x:x[2],reverse=True)[0:10] def top_20_price(wine_list): """接收列表格式的葡萄酒数据参数,返回价格最高的二十款葡萄酒的编号、出产国、评分和价格,按价 格降序输出。 @参数 wine_list:葡萄酒数据,列表类型 需要注意的是价格可能有缺失值,此时该数据为nan if math.isnan(x) == False可用于判定x的值是不是nan nan的数据类型是float,不可以直接用字符串判定方法。 """ a = [x[0:2] + x[3:5] for x in wine_list if math.isnan(x[4])==False] return sorted(a,key=lambda x:x[3],reverse=True)[0:20] def amount_of_point(wine_list): """接收列表格式的葡萄酒数据参数,统计每个评分的葡萄酒数量,忽略没有评分的数据。 返回二维列表,按评分升序排序。 例如[...[84, 645], [85, 959],...]表示得分为84的葡萄酒645种,得分85的葡萄酒有959种。 @参数 wine_list:葡萄酒数据,列表类型 """ p=[x[3] for x in wine_list if math.isnan(x[3])==False] f=set(p) pf=sorted(list(f)) ls=[] for x in pf: n=p.count(x) ls.append([x,n]) return ls def most_of_point(amount_of_points): """接收每个评分的葡萄酒数量的列表为参数,返回获得该分数数量最多的评分和数量的列表。 @参数 amount_of_points:每个评分的葡萄酒数量,列表类型 """ ls=amount_of_points lst=sorted(ls,key=lambda x:x[1],reverse=True) return(lst[0]) def avg_price_of_most_point(wine_list, most_of_points): """接收列表格式的葡萄酒数据和获得最多的评分及数量的列表为参数 忽略缺失价格的数据,返回这个分数的葡萄酒的平均价格,保留2位小数。 @参数 wine_list:葡萄酒数据,列表类型 @参数 most_of_points:获得最多的评分及数量,列表类型 """ ls=most_of_points jg=[x[4] for x in wine_list if x[3]==ls[0] and math.isnan(x[4])==False] avg=round(sum(jg)/len(jg),2) return(avg) def judge(txt): """接收一个字符串为参数,根据参数值调用不同函数完成任务""" filename = './winemag-data.csv' wine = csv_to_ls(filename) country = country_ls(wine) if txt == '国家名列表': print(country) elif txt == '平均分': print(avg_point(wine, country)) # 每个国家的葡萄酒的平均得分 elif txt == '平均分排序': print(avg_point_sort(wine, country)) # 每个国家的葡萄酒的平均得分降序输出 elif txt == '评分最高': print(top_10_point(wine)) # 评分最高的十款葡萄酒的编号、出产国、评分和价格,按评分降序输出 elif txt == '价格最高': print(top_20_price(wine)) # 价格最高的二十款葡萄酒的编号、出产国、评分和价格,按价格降序输出 elif txt == '葡萄酒评分': amount_point = amount_of_point(wine) most_point = most_of_point(amount_point) print(amount_point) # 各个评分的葡萄酒数量 print(most_point) # 拥有葡萄酒数量最多的评分和数量 print(avg_price_of_most_point(wine, most_point)) # 拥有葡萄酒数量最多的评分的葡萄酒的平均价格 else: print('输入错误') if __name__ == '__main__': text = input() judge(text) 附录——实验八 1.个人数据合并 import random se = int(input()) pl = int(input()) random.seed(se) A = [] B = [] for i in range(1,6): A.append([i,random.randint(0,100),random.randint(0,100)]) B.append([i,random.randint(0,100)]) A[i-1].insert(pl , B[i-1][1]) print(A) 2.查找数字 num = list(map(int,input().split())) # XOR位运算 for n in num[1:]: num[0] = num[0] ^ n print(num[0]) # 略解 # 异或运算推论 # 若x^0 = x # 则x^x = 0 3.共有前缀 def f(strs): #定义函数,实现题目要求 if not strs: return 'NOT FOUND' s1 = max(strs) s2 = min(strs) if s1[0] != s2[0]: return 'NOT FOUND' for i, ch in enumerate(s1): if ch != s2[i]: return s1[:i] return s1 strs=input().split() print(f(strs)) 4.查找特征数

count很慢

ls = list(map(int, input().split())) se = set(ls) max_num = -1 for i in se: if ls.count(i) == i: if i > max_num: max_num = i print(max_num) 5.查找重复数字 ls = list(map(int,input().split())) se = set(ls) for x in se: ls.remove(x) print(sorted(set(ls))) 6.集合添加元素 n = int(input()) se = set() while n : n -= 1 se.add(s:=input()) print(len(se)) 7.通讯录删除 dic = {'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']} print(dic) print('''\n欢迎使用PYTHON学生通讯录 1:添加学生 2:删除学生 3:修改学生信息 4:搜索学生 5:显示全部学生信息 6:退出并保存''') m = input() if m == '2': n = input() p = dic.pop(n, 'No Record') if p == 'No Record': print(p) else: print('Success') print(dic) else: print('ERROR') 8.通讯录(查询) dic = {'张自强': ['12652141777', '材料'], '庚同硕': ['14388240417', '自动化'], '王岩': ['11277291473', '文法']} print(dic) print('''\n欢迎使用PYTHON学生通讯录 1:添加学生 2:删除学生 3:修改学生信息 4:搜索学生 5:显示全部学生信息 6:退出并保存''') m = input() if m == '4': n = input() if n in dic: print(n,dic[n][0],dic[n][1]) print("Success") else: print("No Record") print(dic) else: print('ERROR') 附录——实验九 1.大学排行榜分析 def read_file(file,m): """读文件中的学校名到列表中,返回前m个记录的学校集合""" with open(file, "r", encoding="utf-8") as data: university_list = [line.strip().split()[1] for line in data] return set(university_list[:m]) def either_in_top(alumni, soft): """接收两个排行榜前m高校名字集合, 获得在这两个排行榜中均在前m个记录的学校名,按照学校名称排序, 返回排序后的列表 """ either_set = alumni & soft return sorted(list(either_set)) def all_in_top(alumni, soft): """接收两个排行榜前m高校名字集合, 获得在两个榜单中名列前m的所有学校名,按照学校名称排序, 返回排序后的列表 """ all_in_set = alumni | soft return sorted(list(all_in_set)) def only_alumni(alumni, soft): """接收两个排行榜前m高校名字集合, 获得在alumni榜单中名列前m但soft榜单中未进前m的学校名, 按照学校名称排序,返回排序后的列表 """ only_alumni_set = alumni - soft return sorted(list(only_alumni_set)) def only_once(alumni, soft): """接收两个排行榜前m高校名字集合, 获得在alumni和soft榜单中名列前m,但不同时出现在两个榜单的学校名, 按照学校名称排序,返回排序后的列表 """ only_once_set = alumni ^ soft return sorted(list(only_once_set)) def judge(n): if n in '1234': m=int(input()) alumni_set = read_file('./alumni.txt',m) soft_set = read_file('./soft.txt',m) if n=='1': either_rank = either_in_top(alumni_set, soft_set) print(f'两榜单中均名列前{m}的学校:') print(either_rank) elif n=='2': all_rank = all_in_top(alumni_set, soft_set) print(f'两榜单名列前{m}的所有学校:') print(all_rank) elif n=='3': only_in_alumni_rank = only_alumni(alumni_set, soft_set) print(f'alumni中名列前{m},soft中未进前{m}的学校:') print(only_in_alumni_rank) elif n=='4': alumni_soft_rank = only_once(alumni_set, soft_set) print(f'不同时出现在两个榜单前{m}的学校:') print(alumni_soft_rank) else: print('Wrong Option') if __name__ == '__main__': num = input() judge(num) 2.简易英汉字典 import string def create_dict(filename): """接收表示文件名的字符串参数,读文件中的单词及释义,以单词为键,其他部分为值创建字典。 多个释义间可能是逗号或空格分隔,但单词与第一个释义间至少有一个空格, 将文件每一行根据空格切分一次,切分结果分别作为键和值创新字典。 返回字典。 """ dic = {} # 创建空字典 with open(filename, 'r', encoding='utf-8') as data: for x in data: # 遍历文件对象 x = x.strip().split(maxsplit= 1 ) # 每行根据空格切分为列表,只切分一次 dic.update({x[ 0 ].lower(): x[ 1 ]}) # 列表的两个元素作为字典的键和值加入字典中 return dic def translate(dic, word): """接收两个参数,第一个是读文件创建的字典,第二个参数为要查询的单词,字符串 根据文件创建的字典,从中查询单词word, 如果查询单词存在,元组形式返回词与词的释义; 如果查询不存在,返回'这个词我不明白' """ word = word.lower() # 单词转小写 return word, dic.get(word,'这个词我不明白') # 查询字典,返回单词的意义,单词不存在时,返回'这个词我不明白' def sentence_to_words(): """调用此函数时,先输出提示信息'请输入查询的句子:' 用户输入欲翻译的句子 若输入非空时,先将"n't"替换为 ' not'、"'s"替换为 ' is',再将标点符号替换为空格。 根据空格将句子切分为单词的列表,调用translate逐个单词进行翻译。 用户可重复多次输入,每输入一名翻译一句, 若直接输入回车时,输出'查询结束,正在退出...'。然后结束程序。 """ while True: sentence = input('请输入查询的句子:') # 输入查询的句子 if sentence == '': print('查询结束,正在退出...') break sentence = sentence.replace("n't", ' not').replace("'s", ' is') # "n't"替换为 ' not',"'s"替换为 ' is' for x in string.punctuation: # 其他标点符号替换为空格 sentence = sentence.replace(x, ' ') word_list = sentence.split() # 根据空格切分句子为单词的列表 for word in word_list: print(*translate(word_dic, word)) # 调用函数翻译并输出释义 def translate_word(): """调用此函数时,先输出提示信息:'请输入查询的单词:' 用户可循环输入欲翻译的单词,若直接输入回车时,输出'查询结束,正在退出...'。 输入非空时输出翻译结果 """ while True: word = input('请输入查询的单词:') # 输入查询的单词 if word == '': print('查询结束,正在退出...') break else: print(*translate(word_dic, word)) if __name__ == '__main__': file = './dict.txt' # 表示文件名的字符串,表示位于当前路径下的'dict.txt'文件 word_dic = create_dict(file) # 调用函数返回字典类型的数据 print('载入字典数据成功!查询单词请输入“1”,查询句子请输入“2”') choice = input() # 输入操作选项 if choice == '1': translate_word() # 翻译单词 elif choice == '2': sentence_to_words() # 翻译句子 else: print('输入错误,请重新运行程序!') 3.数据统计 import random a,b=map(int,input().split()) random.seed(10) ls = [random.randint(a,b) for i in range(100)] [print(i,ls.count(i)) for i in sorted(set(ls))] 或者: import random dic = {} m,n=map(int,input().split()) random.seed(10) for i in range (100): key = random.randint(m,n) if key in dic: dic[key] += 1 else: dic[key] = 1 for i in sorted(dic.keys()): print('{} {}'.format(i,dic[i])) 4.罗马数字转换 roman = {'I': 1, 'V': 5 ,'X' : 10, 'L' : 50, 'C': 100, 'D': 500, 'M': 1000,'IV': 4,'IX': 9,'XL': 40, 'XC': 90, 'CD': 400, 'CM': 900} res = 0 inp = input() i = 0 while i < len(inp): if inp[i:i+2] in roman: res += roman[inp[i:i+2]] i += 2 else: res += roman[inp[i]] i += 1 print(res) 5.词频统计 import string def read_file(file): """接收文件名为参数,将文件中的内容读为字符串, 只保留文件中的英文字母和西文符号, 过滤掉中文(中文字符及全角符号Unicode编码都大于256) 将所有字符转为小写, 将其中所有标点、符号替换为空格,返回字符串 """ with open(file,'r',encoding='utf-8') as novel: txt=novel.read() etxt=''.join(x for x in txt if ord(x) < 256)#只有英文及符号 etxt=etxt.lower() for c in etxt: if c in string.punctuation: etxt=etxt.replace(c,' ') # for c in string.punctuation: # etxt=etxt.replace(c,' ') return etxt def count_of_words(txt): """接收去除标点、符号的字符串,统计并返回其中单词数量和不重复的单词数量""" txtls=txt.split() n1=len(txtls) n2=len(set(txtls)) return n1,n2 def word_frequency(txt): """接收去除标点、符号的字符串,统计并返回每个单词出现的次数 返回值为字典类型,单词为键,对应出现的次数为值""" txtls=txt.split() fre=dict() for word in txtls: fre[word]=fre.get(word,0)+1 return fre def top_ten_words(frequency, cnt): """接收词频字典,输出出现次数最多的cnt个单词及其出现次数""" dc=frequency dc1=sorted(dc.items(),key=lambda x:x[1],reverse=True) for w,c in dc1[0:cnt]: print(w,c) def top_ten_words_no_excludes(frequency, cnt): """接收词频字典,去除常见的冠词、代词、系动词和连接词后,输出出现次数最多的 """ excludes_words = ['a', 'an', 'the', 'i', 'he', 'she', 'his', 'my', 'we', 'or', 'is', 'was', 'do', 'and', 'at', 'to', 'of', 'it', 'on', 'that', 'her', 'c','in', 'you', 'had','s', 'with', 'for', 't', 'but', 'as', 'not', 'they', 'be', 'were', 'so', 'our','all', 'would', 'if', 'him', 'from', 'no', 'me', 'could', 'when', 'there','them', 'about', 'this', 'their', 'up', 'been', 'by', 'out', 'did', 'have'] for word in excludes_words: frequency.pop(word) f = sorted(frequency.items(), key=lambda x: x[1], reverse=True) for word, counts in f[:cnt]: print(word, counts) if __name__ == '__main__': filename = 'Who Moved My Cheese.txt' # 文件名 content = read_file(filename) # 调用函数返回字典类型的数据 frequency_result = word_frequency(content) # 统计词频 cmd = input() if cmd == '1': n = int(input()) print(content[:n]) elif cmd == '2': amount_results = count_of_words(content) print('文章共有单词{}个,其中不重复单词{}个'.format(*amount_results)) elif cmd == '3': n = int(input()) top_ten_words(frequency_result, n) elif cmd == '4': n = int(input()) top_ten_words_no_excludes(frequency_result, n) # frequency_no_excludes = top_ten_words_no_excludes(frequency_result) # draw_cloud(frequency_no_excludes) 6.商品房数据统计 with open("wuhan2021s1.csv", "r", encoding='GBK') as f: ls=[] for i in f.readlines()[1:]: ls.append(i.strip().split(',')) n=input() if n=='规模降序': for i in sorted(ls,key = lambda x:eval(x[-1]),reverse = True): print(' '.join(i)) elif n=='规模升序': for i in sorted(ls,key = lambda x:eval(x[-1])): print(' '.join(i)) elif n in set([i[1] for i in ls]): for i in ls: if i[1]==n: print(' '.join(i)) s = sum([eval(i[-1]) for i in ls if i[1] == n]) print('{:.2f}平方米'.format(s)) elif n == '总规模': print('{:.2f}平方米'.format(sum([eval(i[-1]) for i in ls]))) else: print('错误输入') 7.统计文本中单词数 def read_file(filename): """接收文件名为参数,读取文件内容为一个字符串 返回这个字符串。 """ with open(filename, 'r') as file: # 只读模式打开文件 text = file.read() # 文件内容读入到一个字符串 return text # 返回字符串 def replace_txt(text): """接收一个字符串为参数,将其中的特殊字符替换为空格 将字符串根据空格切分为列表,返回这个列表 """ for ch in '!"#$%&()*+,./:;?@[\\]^_‘{|}~\n': text = text.replace(ch, " ") # 将字符串中特殊字符替换为空格,注意要赋值回去 return text.split() # 根据空格将字符串切分为列表返回 if __name__ == '__main__': name = input() # 输入文件名 txt = read_file(name) # 读文件,返回字符串 result = replace_txt(txt) # 字符串替换和切分 print(len(result)) # 输出列表长度,即单词数量 8.2019慈善排行 with open('2019Charity.csv','r',encoding='UTF-8') as f: ls=[] title = f.readline() for i in f.readlines(): ls.append(i.strip().split(',')) n=input() if n.lower()=='total': print('Total:{}万元'.format(sum([eval(i[-1]) for i in ls]))) elif n.isdigit() and 1


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭