华中农业大学python实验题

2023-05-16 10:21:46 | 趣学号

办学层次:本科院校类型:农业院校性质:公办
标识代码:4142010504隶属于:教育部

华中农业大学python实验题

知识汇总

哈喽,大家好,我来做一个引流啦啦啦,本人总结了华农python期末部分常见考点,并且带有近两次的python编程考试题和参考代码。个人认为,不论是对大家期末复习还是日常学习,都会有所帮助。如有需要,请点击这里跳转

除此之外,还有一个华中农业大学教务系统自动评教脚本,解放你的双手从此刻开始点击跳转

还有还有,本人的Python教程专栏在此点击跳转

其实要是问的话,我为什么搞这些呢?会赚钱?那必然不是(除非有人来给我打赏?)
就是开源思想嘛,开源可以修正自己的错误。而且我的学习都是通过开源资料学习的,我也想把自己的所学回馈给大家,仅此而已,谢谢。

华中农业大学python实验题

前言

很多同学在刚开始学习编程的时候,拿到一个题经常会无从下手,其实编程就是考察的逻辑,当你遇到一个问题的时候,你首先要做的就是去思考解决这个问题的过程,在大脑中有了个大致思路后再去敲代码,当发现提交上去之后不能全对,就看看代码哪里有逻辑问题。(不要总是怀疑系统出问题了。。)

在这里,我将一些常见的程序参考代码放在了下面,旨在为大家提供思路,希望大家抱着借鉴的心理来学习。强烈建议大家不要抄袭,因为itc有查重系统 ,会有风险的哦。

华中农业大学python实验题

在此,很感谢2019年与我一同上课的同学给我提供了更广阔的思维,感谢教授老师的谆谆教诲,这将是我一生最宝贵的财富。

代码基本都是没问题的,可以直接提交运行,请不要纠结算法复杂度,因为我当时没想很多,欢迎大家提供高效的程序

题目只是我写过的,如果有什么遗漏的题目请在评论区联系我,我会及时补充!

直接使用Ctrl + F 进行搜索题目名称即可


复杂数据类型练手题

出现最多次的整数

输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数。

_ = input()a = input().split()# 转化为数值a = [eval(i) for i in a]# 创建字典统计次数mydict = {}# 做循环统计次数for i in a:    mydict[i] = mydict.get(i,0)+1# 得到最多次数max_times = max(mydict.values())# 将键值对转化为列表,里面的元素是键值对的元组类型data = list(mydict.items())# 对数据进行排序,排序规则没有指定,默认是对元组的第一个元素从小到大排序data.sort()# 输出数据for i in data:    # 判断次数是不是最多的那个    if i[1] == max_times:        print(i[0],i[1])

求折点

给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。

给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。

为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不同的,即ai-1≠ai。注意,如果两天不相邻,销售量可能相同。

_ = input()a = input().split()  # 输入数据a = [eval(i) for i in a]  # 字符串转化为数值count = 0  # 最终结果的计数(输出的第一行)ans = []  # 用来存放答案for i in range(1,len(a)-1):  # 不循环最左边和最右边的数值,因为只有一个数不能比较    if a[i]a[i+1] and a[i]>a[i-1]:  # 判断是不是极大值,题目说了,不用加等号        ans.append(str(i+1)+" high")        count += 1print(count)[print(i) for i in ans]

读者第几次出现

涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。

'''有条件的同学可以使用动态规划做'''_ = input()a = input()a = a.split()mydict = {i:0 for i in a}  # 创建一个字典,用来统计第几次出现,将次数放在ans列表中ans = []  # 创建一个列表,和输入的数据一一对应for i in a:    mydict[i]+=1  # 元素开始出现啦    ans.append(str(mydict[i]))  # 将第几次出现放在字典里print(' '.join(ans))

Hello World程序

print("Hello World!")

变量

用变量m存储100,用变量n存储13.14,输出变量m,n的值。

m=100n=13.14print(m)print(n)

计算圆周长和圆面积

输入圆的半径r,计算圆周长和圆面积,保留2位小数

import mathr=float(input("Please enter radium:"))S=math.pi*r*rC=2*math.pi*rprint("Circumference is {:.2f}".format (C))print("Round area is {:.2f}".format (S))

温度转换程序

在温度刻画的不同体系中,摄氏度以1标准大气压下水的结冰点为0度,沸点为100度。华氏度以1标准大气压下水的结冰点为32度,沸点为212度。如何利用程序辅助进行摄氏度和华氏度之间的转换,结果保留1位小数。

#Temperatureval=input("What is the temperature?")if val[-1] in ["C","c"]:      #①这里的冒号有什么用?   ②为什么这一行写val[0:-1]就不对?    f=1.8*float(val[0:-1])+32      print("The converted temperature is {:.1f}F".format(f))elif val[-1] in ["F","f"]:    c=(float(val[0:-1])-32)/1.8   #为什么这一行写val[-1]就不对?    print("The converted temperature is {:.1f}C".format(c))else:    print("Input error!")

函数判断密码级别

问题描述】

输入一个表示密码的字符串,编写程序判断密码的安全级别为低级密码、中级密码和高级密码。

低级密码要求:

  1. 密码由单纯的数字或字母组成

  2. 密码长度小于等于8位

中级密码要求:

  1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.<>;:[]{}|)任意两种组合

  2. 密码长度不能低于8位

高级密码要求:

  1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.<>;:[]{}|)三种组合

  2. 密码只能由字母开头

  3. 密码长度不能低于16位

编写函数判断输入的密码的安全级别,如果为低级密码,则返回"A”;如果如果为中级密码,则返回“B”;如果为高级密码,则返回“C”

def ishave(s,limit): 判断字符串s中,是否存在limit中任意字符,如果存在,返回1,否则返回0

def typenum(psw): 判断psw中存在多少种类别的字符(类别三种,数字,字母,特殊字符 ),返回类别的数量

def safe(psw): 判断psw的安全性,返回安全级别对应的字符

def ishave(s,limit):    for i in s:        if i in limit:            return 1    return 0def typenum(psw):    digit="1234567890"    al="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"    st="~!@#$%^&*()_=-/,.?<>;:[]{}|"    m=ishave(psw,digit)+ishave(psw,al)+ishave(psw,st)    return mdef safe(psw):    a=len(psw)    # print(typenum(psw))    if(a>=16 and typenum(psw)==3 and ("a"<=psw[0]<="z" or "A"<=psw[0]<="Z")):        return "C"    else:        if a>=8 and typenum(psw)>=2:            return 'B'        else:            return 'A'x=input()print(safe(x))

根据用户输入的内容,输出相应的结果

根据用户输入的内容,输出相应的结果

a=input("name:")b=input("words:")print('%s, I must tell you that %s.'%(a,b))

编写程序计算下列数学表达式的结果并输出

编写程序计算下列数学表达式的结果并输出,小数点后保留3位,右对齐占9个打印位置。

from math import *x=sqrt(((3**4+5*6**7)/8))print('%9.3f'%x)

幸运数字

提示输入用户名,并随机生成一个幸运数字(0-9),输出结果"用户某某某你的幸运数字是X"。(import random 调用randint和seed函数)

import randomrandom.seed(10)a=input("name:")b=random.randint(0,9)print("%s, Your lucky number is %d."%(a,b))

3位整数变换1

x=eval(input())a=x//100b=(x-a*100)//10c=(x-a*100)%10d=c*100+b*10+aprint(d)

征友

土生土长的北京妞儿,在胡同里长大房不多,就一个四合院和近郊的别墅。不算美如天仙但还算标致,在清华读的经管,现在在做基金经理,个人擅长基本面分析,价值投资。现在只想找个聪明靠谱的IT男。硬性要求是出生年龄不要超过1990年,我对智商的要求比较高,下面就出个题测试下。我的微信ID是大写字母JH后面跟着两个质数,大的在前,小的在后,乘积是707829217,可直接搜索加微信,请输出该微信号!趣学号

自定义函数sushu()判断一个整数是否是素数,来帮助完成该题目。

def sushu(n):    for i in range(2,n):        if n%i==0:            return False    return Truea = eval(input())result = 'JH'for i in range(2,a):    if sushu(i) and a%i==0:        if sushu(a//i):            result += (str(a//i)+str(i))            print(result)            breakelse:    print('error')

循环和函数_亲密数

求整数n以内(含n)的全部亲密数。

说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,A不等于B,则将正整数A和B称为亲密数。

1不和其他数形成亲密数。

编写函数sumElem(),实现统计一个数字的因子之和(包括1,不包括A本身)

def sumyinzi(n):    ls = [1,]    for i in range(2,n):        if n%i==0:            ls.append(i)    return sum(ls)def sumElem(n):    mydict = {}    for i in range(2,n+1):        mydict[i] = sumyinzi(i)    result = []    for i in mydict:        if mydict[i] in mydict and i==mydict[mydict[i]] and i!=mydict[i]:            result.append((min(i,mydict[i]),max(i,mydict[i])))    result = list(set(result))    result.sort()    [print(i,j) for i,j in result]a = eval(input())sumElem(a)

位置码加密

导入随机数库产生随机数时设置固定seed(10)。
为给定的字符串原码用随机产生位置码的方式进行加密。例如原码:010512,则位置码为由1-6这6个数字随机产生的数字序列:362415,位置码的生成取决于原码的长度L,每一位都不重复。根据位置码调整原码的顺序得到加密结果:021501,将原码的第3位0放到加密后的第1位,将原码的第6位2放到加密后的第2位,以此类推。
提示注意:对于样例打乱原码位置码123456时如果使用random库中的sample,choice等方法时需要用reverse方法对列表逆序才能和结果一致,用shuffle就不用逆序。

输入一个长度小于10的字符串,根据原码字符串s编写函数posCode(s)产生对应长度的位置码,并作为返回值返回。

根据原码字符串s和位置码posCode编写函数changeCode(s,posCode)实现原码根据位置码转换成加密后的字符串,并作为返回值返回

import randomrandom.seed(10)def posCode(str_len):    index_ls = [i for i in range(1, str_len + 1)]    random.shuffle(index_ls)    return index_lsdef changeCode(s,poscode):    poscode = [i-1 for i in poscode]    result = ''    for i in poscode:        result+=s[i]    return results = input()poscode = posCode(len(s))pos = ''for i in poscode:    pos+=str(i)print(pos)result = changeCode(s,poscode)print(result)

ISBN校验码判断

s=input()total=0sr=s.replace('-','')for i in range(1,13):    if i%2==1:        total=total+int(sr[i-1])    else:        total=total+int(sr[i-1])*3id=10-total%10if id==10:    id=0if str(id)==s[-1]:    print('Right')else:    print(s[0:16]+str(id))

输入整数x,y,z,判断x3+y3+z^3和1000的关系

输入整数x,y,z,若x3+y3+z3>1000,则输出x3+y3+z3-1000的结果,否则输出三个数之和。

(x,y,z)=eval(input("please input three numbers:"))t=x**3+y**3+z**3if t>1000:    print(t-1000)elif t<1000:    print(x+y+z)

判断一个整数是否能被7或11整除

程序的功能是判断一个整数是否能被7或11整除,若能被7或11整除,则输出"Yes",否则输出"No",请补充程序。

a=eval(input())if a%11==0 or a%7==0 :    print("number:Yes")else:    print("number:No")

汽车价格竞猜,单位万元。

写一道程序,输入一个整整(单位万元)来猜汽车价格,代码中设置汽车价格为25。根据所猜价格分别对应猜对了,猜高了,猜低了三种输出结果。

a=eval(input())if a>25:    print("price:high")elif a==25:    print("price:bingo")else:    print("price:low")

判断三角形

输入三角形三条边的值,判断能否构建三角形?

(a,b,c)=eval(input("please input three numbers:"))if a+b>c and a+c>b and b+c>a:    print("true")else:    print("false")

合法结婚年龄

我国的婚姻法规定,男性22岁为合法结婚年龄,女性20岁为合法结婚年龄。编写程序判断一个人是否到了合法结婚年龄,并输出判断结果:“Yes” 或 “No”或"Error"

S=input("Sex(F or M):")A=eval(input("Age(1-120):"))if S in ["F"]:    if 20<=A<=120:        print("Yes")    elif 1<=A<=20 :        print("No")    else:        print("Error")elif S in ["M"]:    if 22<=A<=120:        print("Yes")    elif 1<=A<=22 :        print("No")    else:        print("Error")else:     print("Error")

通过年份和月份,求该月天数

输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。

(x,y)=eval(input("year,month:"))if y in [1,3,5,7,8,10,12]:    print("31")elif y in [4,6,9,11]:    print("30")else:    if x%4==0 and x%100!=0 or x%400==0:        print("29")    else:        print("28")

随机密码

(1)使用 random 库,采用 10作为随机数种子。
提示:random.seed(10)
(2)密码允许字符如下:
s=“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”
(3)密码长度为输入的数字。

import randomrandom.seed(10)s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'length = eval(input())ans = ''for i in range(length):    ans+=random.choice(s)print(ans)

高校类型统计

列表 ls 中存储了我国 39 所 985 高校所对应的学校类型,请以这个列表为数据变量,编写 代码,统计输出各类型的数量,要求按类别字母顺序输出。

ls = [“Comprehensive”, “Polytechnic”, “Comprehensive”, “Comprehensive”, “Comprehensive”,

“Comprehensive”, “Comprehensive”, “Comprehensive”, “Comprehensive”, “Comprehensive”,

“Normal”, “Polytechnic”, “Comprehensive”, “Polytechnic”, “Comprehensive”, “Comprehensive”,

“Comprehensive”, “Comprehensive”, “Comprehensive”,“Polytechnic”,

“Polytechnic”, “Polytechnic”, “Polytechnic”, “Normal”, “Comprehensive”,

“Agricultural and Forestry”, “Polytechnic”, “Comprehensive”, “Polytechnic”, “Polytechnic”,

“Polytechnic”, “Comprehensive”, “Polytechnic”, “Comprehensive”, “Comprehensive”,

“Polytechnic”, “Agricultural and Forestry”, “Nationalities”, “Military”]

ls = ["Comprehensive", "Polytechnic", "Comprehensive", "Comprehensive", "Comprehensive",  "Comprehensive", "Comprehensive", "Comprehensive", "Comprehensive", "Comprehensive","Normal", "Polytechnic", "Comprehensive", "Polytechnic", "Comprehensive", "Comprehensive", "Comprehensive", "Comprehensive", "Comprehensive","Polytechnic", "Polytechnic", "Polytechnic", "Polytechnic", "Normal", "Comprehensive",  "Agricultural and Forestry", "Polytechnic", "Comprehensive", "Polytechnic", "Polytechnic",  "Polytechnic", "Comprehensive", "Polytechnic", "Comprehensive", "Comprehensive",  "Polytechnic", "Agricultural and Forestry", "Nationalities", "Military"]mydict = {}for i in ls:    mydict[i] = mydict.get(i,0)+1data = list(mydict.items())data.sort()[print(i[0],i[1]) for i in data]

适婚问题!

输入年龄和性别,判断你当前的个人情况!男性小于30岁显示:young,30岁到36岁之间显示:marriageable age,大于36岁显示:old。

a=input("sex(F or M):")b=eval(input("age:"))if a=="F" or a=="f":    if b<25:        print("young")    elif 25<=b<=30:        print("marriageable age")    else:        print("old")elif a=="M" or a=="m":    if b<30:        print("young")    elif 30<=b<=36:        print("marriageable age")    else:        print("old")else:    print("wrong")

解密码

注:本题还未提交测试。。。

s = input()newstr = ''for i in s:    if 'A'<=i<='Z':        position = ord(i) - 65        new = chr(26-position-1 + 65)        newstr += new    elif 'a'<=i<='z':        position = ord(i) - 97        new = chr(26-position-1 + 97)        newstr += new    else:        newstr += iprint(s)print(newstr)

11整除问题改

注:本题还未提交测试。。。

x = input('Please input a integer:')[::-1]odd = 0  # 奇数even = 0  # 偶数for i in range(1,len(x)+1):    if i%2==1:        odd += int(x[i-1])    else:        even += int(x[i-1])print(odd)print(even)if (even - odd)%11 == 0:    print('TRUE')else:    print('FALSE')

循环编程题

已知y=1+1/3+1/5+…+1/2n-1:求y<3时的最大n值以及最大n值对应的y值(y值保留小数点后2位)。

n=0y=0while y<=3:   n=n+1   y=y+1/(2*n-1)y = y-1/(2*n-1)n -= 1print("n=%.d,y=%.2f"%(n,y))

小玉游泳

小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。

a=eval(input())b=2n=1while b

密码正确吗

试编写一个程序判断6位密码是否正确,若密码正确输出right,密码不正确输出wrong,如果输入的密码有非数字字符则输出wrong(用字符串的isdigit()方法判断是否是纯数字字符串)。密码规则是: 第i位数字是第i-1位数字加1后的3次方的个位数( 2<=i<=6)。
感谢朱*星同学反馈问题,并帮助我进行数据测试

a=input()if a.isdigit():    for n in range(1,6):        if eval(a[n])!=(eval(a[n-1])+1)**3%10:            print("wrong")            break    else:        print("right")else:    print("wrong")

判断一个3位数是否是水仙花数。

输入一个三位正整数abc,如果满足a3+b3+c^3=abc,则该数是水仙花数。例如123不等于1+8+27所以123不是水仙花数。

a=input('please input a three-digit ')if len(a)==3:    b=eval(a[0])**3+eval(a[1])**3+eval(a[2])**3    if eval(a)==b:        print('number:true')    else:        print('number:false')else:    print('number:error')

录取研究生

某高校录取研究生的要求是,每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(没有录取“not”、自费“pay”、公费“free”三种情况)。

(a,b,c,d)=eval(input('four scores:'))sum=a+b+c+dif a<60 or b<60 or c<60 or d<60 or sum<340:    print('not')else:    if sum>=370:        print('free')    else:        print('pay')

统计一共出现了多少个3

输入任意一个正整数,从1开始到这个数字的奇数序列里,统计一共出现了多少个3。

编写函数sumThree(),实现功能是,输入一个正整数,返回该数中3出现的个数。

def sumThree(n):    sum=0    for i in range(1,int(n)+1):        if i%2!=0:            sum+=str(i).count("3")    return sumx=input("number:")print(sumThree(x))

征友

def sushu(n):    for i in range(2,n//2):        if n%i==0:            return False    return Truea=int(input())for i in range(2,a):    if a%i==0:        if sushu(i) and sushu(a%i):            print("JH%d%d"%(a/i,i))            breakelse:    print("error")

韩信点兵

有一群士兵,人数不超过n。韩信将其按照一行3人排队,余2人;按照一行5人排队,余1人;按照一行7人排队,刚好排成若干行。编写程序 计算士兵的人数。

n=eval(input())i=1for i in range(1,n+1):    if i%3==2 and i%5==1 and i%7==0:        print(i,end=' ')    i=i+1

翻译密码

翻译密码。为了保密,常不采用明文,而用密文,即按一定规则将字符转换为另一字符,收报人则按相反的规律转换得到原来的字符。本程序规则为:字母ascii码加5,其他字符不变,对原文进行加密,并显示密文。字母的最后5个加5不是字母了,处理规则为循环成前5个。比如“X”的密文为“C”。

a=input('please input text:')for S1 in a:    if 65<=ord(S1)<=85 or 97<=ord(S1)<=117:        n=ord(S1)+5        new=chr(n)    elif 86<=ord(S1)<=90 or 118<=ord(S1)<=122:        n=ord(S1)-21        new=chr(n)    else:        new=S1    print(new,end="")

猴子吃桃问题

猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第n天吃以前发现只剩下一个桃子,
编写程序实现:据输入的天数计算并输出猴子共摘了几个桃子

a=eval(input())b=1c=1if a!=int(a) or a<0:    print('illegal data')elif a==0:    print(0)else:    for c in range(1,a):        b=2*b+2    print(b)

在生词本查单词的译文

先输入多个英文单词及其译文,接着输入英文单词,输出该单词的译文。

在这里插入代码片

求平均分

编写程序计算学生的平均分。

n=eval(input())sign='Ture'sum=0if n>0:    for t in range(1,n+1):        a=eval(input())        if  0

统计大小写字母个数和数字个数

统计一行字符的大写字母,小写字母和数字的个数。先输出大写字母个数,在输出小写字母个数,最后输出数字个数。

str1=input()a=0b=0c=0for t in str1:    if t.isupper():        a=a+1    elif t.islower():        b=b+1    elif t.isdigit():        c=c+1    else:        others='program will go on work!'print('%.d%.d%.d'%(a,b,c))

判断该字符是字母字符、数字字符还是其他字符

已知变量ch中存放了一个字符,判断该字符是字母字符、数字字符还是其他字符。

ch=input('please input a char:')if ch.isalpha():    print('alphabet character')elif ch.isdigit():    print('digital character')else:    print('others character')

字符串中字母大小写互换

a=input()sum=''for m in a:    if 'A'<=m<='Z':        sum=sum+chr(ord(m)+32)    elif 'a'<=m<='z':        sum=sum+chr(ord(m)-32)    else:        sum=sum+mprint(sum)

电话号码

假设电话号码的模式为:3个数字,一个短横线,4个数字,一个短横线和4个数字。如:186-7123-4567。编写程序,用以检查输入的字符串是否匹配电话号码模式,若匹配返回True,否则返回False。

a=input()if len(a)==13:    a1=a[0:3]    a2=a[4:8]    a3=a[9:13]    a4=a[3]    a5=a[8]    if a1.isdigit() and a2.isdigit() and a3.isdigit() and a4=='-' and a5=='-':        print('True')    else:        print('False')else:    print('False')

找不同

9个同学一起做游戏,每个人报一个[1,20]区间上的正整数,请你编程求出有多少个不同的数。

a = input().split()print(len(set(a)))

找数对

输入一组数到列表nums,请找到列表中任意两个元素相加能够等于9的元素,形成一个元组,使其小数在前大数在后,如:(2,7), (1,8)。重复的元组元素只保留一个,结果按元组第一个元素从小到大顺序输出。

a=input('numbers:').split(',')a=[eval(i) for i in a]data=[]for i in range(len(a)):    for j in range(i+1,len(a)):        if a[i]+a[j]==9:            # print([i],[j])            x,y=min((a[i],a[j])),max((a[i],a[j]))            data.append((x,y))data = list(set(data))data.sort()print(data,sep='')

出现最多次的整数

输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数。

_=input()a=input().split()a=[eval(i) for i in a]mydict={}for i in a:    mydict[i] = mydict.get(i,0)+1data=list(mydict.items())data.sort(key=lambda x:(-x[1],x[0]))for i in range(len(data)):    if data[i][1]==data[0][1]:        print(data[i][0],data[i][1])

找因子

输入一个大于1的整数,返回一个列表,包含所有能够整除该整数的因子(不包含1和它本身),并且从小到大排序。如果这个数是素数,则输出“(整数) is prime”。

a=eval(input('number:'))list1=[]for i in range(2,a):    if a%i==0:        list1.append(int(i))        list1.append(int(a/i))list1=list(set(list1))if len(list1)==0:    print('%d is prime'%a)else:    print(list1)

骑车还是走路

在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为30秒;停车锁车的时间为20秒;步行每秒行走2米,骑车每秒行走4米。请判断走不同的距离去办事,是骑车快还是走路快。

a=int(input('Please input a number of distance:'))time1=50+a/4time2=a/2if time1>time2:    print('Walk')elif time1 

折半查找

编写程序实现对单调递增的整型数组进行折半查找。用折半查找法找出一个数是数组中第几个元素,如果找到,则返回其下标;如果该数不在数组中,则返回-1。

long=input()a=input()key=input()sign='F'list1=a.split()list2=[int(list1[i]) for i in range(0,len(list1))]if list2!=sorted(list2):    print('illegal input')else:    for i in range(len(list1)):        if key==list1[i]:            sign='T'            print(i)            break    if sign=='F':        print('not found')

字母计数

输入字符串,输出字符串中出现次数最多的字母及其出现次数。如果有多个字母出现次数一样,则按字符从小到大顺序输出字母及其出现次数。

a=input()dict1={}for t in a:    for i in range(len(a)-1):        if a[i]>a[i+1]:            a=a[:i]+a[i+1]+a[i]+a[i+2:]for i in a:    dict1[i]=dict1[i]+1 if i in dict1 else 1max1=0for i in dict1:    if dict1[i]>max1:        max1=dict1[i]for i in dict1:    if dict1[i]==max1:        print(i,dict1[i])

一万以内的完全平方数

请将一万以内的完全平方数输出

for i in range(1,10001):    if i**(1/2)==int(i**(1/2)):        print(i)

世界杯官网注册

“世界杯”是世界上最高荣誉、最高规格、最高竞技水平、最高知名度的足球比赛,2018年世界杯于6月14日至7月15日在俄罗斯举行。每一届世界杯也是全世界球迷的一次盛会。部分球迷更是不远万里亲临现场观赛。某旅游网站推出观球赛套餐,网站注册时要求用户名只能包含字母、数字和下划线,并且首字符必须是字母或下划线。在计算机中编写程序判断输入的用户名是否符合该旅游网站要求,如果符合,请输出“Yes”,否则输出“No”.

a=input()sign='T'if a[0]=='_' or a[0].isalpha():    for i in a[1:]:        if i.isalnum() or i=='_':            m=0        else:            sign='F'            break    if sign=='T':        print('Yes')    else:        print('No')else:     print('No')s = input()if s[0].isnumeric() or s[0]=='_':    for i in s:        if (not '0'<=i<='9') or (not i=='_'):            print('No')            break    else:        print('Yes')else:    print('No')

二进制整数转换为十进制整数

编写程序,输入字符串形式的二进制整数(长度为16位,采用补码表示),把它转换为十进制整数,输出该十进制整数。

a=input()b=0c=0i=0if a[0]=='1':    if a[-1]=='1':        a=a[:-1]+'0'        for i in range(len(a)):            if a[i]=='1':                a=a[:i]+'0'+a[i+1:]            else:                a=a[:i]+'1'+a[i+1:]        print(a)    else:        for t in a[::-1]:            i-=1            if t=='1':                break        t=a[i:]        a=a[:i]        for i in range(len(a)):            if a[i]=='1':                a=a[:i]+'0'+a[i+1:]            else:                a=a[:i]+'1'+a[i+1:]        a=a+t    list1=[-int(i) for i in a[::-1]]else:    list1=[int(i) for i in a[::-1]]for i in list1:    c=c+i*(2**(b))    b=b+1print(c)# 或者是直接写print(int(input(),2))

统计正负数个数

从键盘输入非0整数,以输入0为输入结束标志,求平均值,统计正数负数个数

list1=[]a=0b=0c=0sum1=0while 1:    c+=1    i=eval(input())    sum1=sum1+i    if i>0:        a+=1    elif i<0:        b+=1    else:        breakprint(sum1/(c-1))print(a)print(b)

一年中第几天

输入某年某月某日,判断这一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天。特殊情况:闰年且输入月份大于3时需考虑多加一天。

dict1={1:31,3:31,5:31,7:31,8:31,10:31,12:31,4:30,6:30,9:30,11:30}a=input()list1=a.split()list1=[int(i) for i in list1]sum1=0if list1[0]%4==0 and list1[0]%100!=0 or list1[0]%400==0:    dict1[2]=29else:    dict1[2]=28for i in dict1:    if i 

输出斐波拉契数列-上机考试题

定义一个函数fib,给定n,返回n以内的斐波那契数列。
注:斐波拉契数列由0和1开始,之后的数就是由之前的两数相加而得出:0, 1, 1, 2, 3, 5, 8, 13, 21

num=eval(input('input a number please:'))list1=[0,1]c=1i=1while 1:    c=list1[i]+list1[i-1]    if c>num:        break    else:        i+=1        list1.append(c)for i in list1[1:]:    print(i,end=',')

数字出现次数排序

给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。

a=input()b=input()list1=b.split()list1.sort()list1=[int(i) for i in list1]dict1={}for i in list1:     if i in dict1:         dict1[i]=dict1[i]+1     else:         dict1[i]=1list1=list(dict1.items())list1.sort(key=lambda x:(-x[1],x[0]))for i in list1:    print(i[0],i[1])

分段函数

有一个定义在自然数上的函数 f(x) 定义如下:
若 x <5 , 则 f(x) = x;
若 5<=x<15, 则 f(x) = x+6;
若 x>=15, 则 f(x) = x-6。
试编写该函数,输入x值,返回相应的f(x)值。

x=eval(input())def f(x):    if 0<=x<5:        x=x    elif 5<=x<15:        x=x+6    elif x>=15:        x=x-6    else:        return('illegal input')    return xprint(f(x))

根据用户输入的日期计算天数

编写函数isLeap(year)用于判断year是否是闰年,若是闰年则返回True,否则返回False。

def isLeap(year):    if year%4==0 and year%100!=0 or year%400==0:        return True    else:        return Falsedef days(year,month):    dict1={1:31,3:31,5:31,7:31,8:31,10:31,12:31,4:30,6:30,9:30,11:30}    sum1=0    if isLeap(year):        dict1[2]=29    else:        dict1[2]=28    for i in dict1:        if i 

函数CountC

编写函数CountC用来统计字符串中各字母字符(“A”“Z”,“a”“z”)出现的个数。

def countn(str1):    a=0    for i in str1:        if i.isalpha():            a+=1    return a str1=input()print(countn(str1))

求多项式的和

编写一个函数mySum(a,n),求以下n项式的和:
s=a+aa+aaa+…+aa…a, 其中a是1~9的数字,最后一项是n位都是a的数字
程序部分代码如下:
x,y=eval(input())
print(mySum(x,y))

def mySum(a,n):    list1=list(map(lambda n:sum(list(map (lambda n:a*(10**n),range(n))))          ,range(1,n+1))  )    return sum(list1)x,y=eval(input())mySum(x,y)print(mySum(x,y))

函数sumx()

定义一个函数sumx(),参数个数不限,返回所有参数的和。请完善程序代码。

def sumx(*a):    return sum(a)x,y=eval(input(""))print(round(sumx(x,y),2))a,b,c=eval(input(""))print(round(sumx(a,b,c),2))

电影选看

在当前目录下有一个文件名为movie.txt,文件中有6列数据,包括No Name Year Country Score Lasting,分别表示序号、电影名、上映年份、国家、评分和电影时长。李华只想观看时长在90分钟以下(包括90分钟)的电影。请你编写程序帮他挑选出符合条件的电影序号。一行打印一个序号写到文件out.txt中。
[movie.txt])(http://itc.hzau.edu.cn/userfiles/file/2019/1574656350956070421.txt)

f=open('movie.txt','r',encoding='utf-8')m=open('out.txt','w')list1=f.readlines()del(list1[0])dict1={}for i in list1:        i.strip()        list2=i.split()        if int(list2[-1])<=90:                print(list2[0])                m.write(str(list2[0])+'')        list2=[]f.close()m.close()

学生成绩转换

读入文件d1.txtd1.txt,每行数据包含两个信息:学号和成绩,将成绩转换成5级制并按照学号递减排序,在屏幕上输出学号和成绩中间有一个空格的间隔,将不及格学生人数写到文件d2.txt中。

f=open('d1.txt')dict1={}list1=[]for i in f:    (a,b)=i.split(' ',1)    if 90<=eval(b):        dict1[a]='A'    elif 80<=eval(b)<90:        dict1[a]='B'    elif 70<=eval(b)<80:        dict1[a]='C'    elif 60<=eval(b)<70:        dict1[a]='D'    else:        dict1[a]='E'list1=list(dict1.items())list1.sort(key=lambda x:(eval(x[0]),x[1]))new=open('d2.txt','w')count=0for i in list1:    print(i[0]+' '+i[1])    if i[1]=='E':        count+=1new.writelines(str(count))new.close()f.close()

武汉气温

在当前目录下有一个文件名为temp.txt(文件中数据如下:)的文件,存放着武汉从2018年11月10日(周六)到11月19日(周一)间十天的最高和最低气温(单位为摄氏度)。其中,第一行为最高气温,第二行为最低气温。
temp.txt文件中数据:temp.txt

版本一

f=open('temp.txt')list1=[]for i in f:    list1.append(i)list2=list1[0].split(',')list3=list1[1].split(',')list2=[int(i) for i in list2]list3=[int(i) for i in list3]max1=max(list2)min1=min(list3)list4=[]for i in range(len(list2)):    if list2[i]==max1:        list4.append(i+1)print(str(list4)+':hot,temperature:'+str(max1)+'C')list4=[]for i in range(len(list2)):    if list3[i]==min1:        list4.append(i+1)print(str(list4)+':cold,temperature:'+str(min1)+'C')list5=[]for i in range(len(list2)):    list5.append(int((list2[i]+list3[i])/2))print('aver:'+str(int(sum(list5)/10)))count=0for i in list5:    if i<10:        count+=1if count>=5:    print('In winter')else:    print('Not in winter')

版本二

f = open('temp.txt')data = f.readlines()f.close()high,low = datahigh = [eval(i) for i in high.split(',')]low = [eval(i) for i in low.split(',')]highest = [i+1 for i in range(len(high)) if high[i]==max(high)]lowest = [i+1 for i in range(len(low)) if low[i]==min(low)]print(str(highest)+':hot,temperature:%sC'%max(high))print(str(lowest)+':cold,temperature:%sC'%min(low))mean_ls = [(high[i]+low[i])/2 for i in range(len(high))]print('aver:%d'%int(sum(mean_ls)/len(mean_ls)))winter_ls = [i for i in mean_ls if i<10]print('In winter') if len(winter_ls)>=5 else print('Not in winter')

求绝对值最小者

编写程序实现:计算并输出标准输入的三个数中绝对值最小的数。

import mathx= abs(eval(input()))y= abs(eval(input()))z= abs(eval(input()))print(min([x, y, z]))

计算两点之间的距离

编写程序实现计算两点之间的距离

import mathx1=eval(input())y1=eval(input())x2=eval(input())y2=eval(input())result = ((x2-x1)**2+(y2-y1)**2)**0.5print(result)

五分制转分数档

编写程序,功能是输入五分制成绩,输出对应的百分制分数档。 不考虑非法输入的情形。

对应关系为:A: 90~100, B: 80~89, C: 70~79,D: 60~69, E: 0~59

grade=input()if grade=="A":    print("90~100")elif grade=="B":    print("80~89")elif grade=="C":    print("70~79")elif grade=="D":    print("60~69")elif grade=="E":    print("0~59")

停车费

进入停车场开始计费。停车时间小于0.5小时不收费;每小时收费5元;不足1小时按1小时收费;最多收费50元也就是10小时以上都是50元。

import mathhours=eval(input("time:"))if(hours<0.5):    cost=0elif(0.5 

编写程序计算下列数学表达式的结果并输出

编写程序计算下列数学表达式的结果并输出,小数点后保留3位,右对齐占9个打印位置。

x=((3**4+5*(6**7))/8)**0.5print('%*.3f'%(9,x))

3位整数逆序

【问题描述】输入一个3位正整数,将它逆序输出。假设输入的3位整数是938,则输出839.

x=input()if x[-1]=='0':    x = x[:-1]    print(x[::-1])else:    print(x[::-1])

求一元二次方程的解

【问题描述】一元二次方程:ax2+bx+c=0 (a ≠ 0)
【输入形式】输入a、b和c的值(有理数)
【样例输出说明】输出的两个解保留两位小数,大的在前。

abc=input()a,b,c=[eval(i) for i in abc.split(" ")]if b*b-4*a*c<0:    print("No")else:    x1=(-b+(b**2-4*a*c)**0.5)/(2*a)    x2=(-b-(b**2-4*a*c)**0.5)/(2*a)    x1,x2 = [max(x1,x2),min(x1,x2)]    print('.2f'%x1,'.2f'%x2)

100!尾部有多少个零

编写程序计算:阶乘尾数零的个数,即:100!的尾数有多少个零?

num = 1for i in range(1,101):    num = num*icount = 0for i in str(num)[::-1]:    if i=='0':        count+=1    else:        breakprint(count)

反复猜数

编写猜数游戏程序,功能是:允许用户反复输入数,直至猜中程序选定的数(假定为100)。输入的数如果大于选定的数,则提示"larger than expected";如果小于选定的数,则提示"less than expected";如果等于选定的数,则输出"you win"并结束程序。

n=100while 1:    guess_num = int(input())    if guess_num==n:        print("you win")        break    elif n>guess_num:        print("less than expected")    else:        print("larger than expected")

生成因数列表

输入一个数n,输出一个列表,列表中是n的所有因数

a=eval(input())list1=[]for i in range(1,a+1):    if a%i==0:        list1.append(i)print(list1)    

找因子

输入一个大于1的整数,返回一个列表,包含所有能够整除该整数的因子(不包含1和它本身),并且从小到大排序。如果这个数是素数,则输出“(整数) is prime”。

a=eval(input('number:'))list1=[]for i in range(2,a//2+1):    if a%i==0:        list1.append(int(i))        list1.append(int(a/i))list1=list(set(list1))if len(list1)==0:    print('%s is prime'%a)else:    print(list1)

统计高于平均分的人数

从若干学生成绩中统计高于(严格的大于)平均分的人数,用-1做为学生成绩数据的结束标志

line = input()nums = [eval(x) for x in line.split()[:-1]]aver_score = sum(nums)/len(nums)r=[x for x in nums if x>aver_score]print(len(r))

矩阵的乘法

编写程序,完成3_4矩阵和4_3整数矩阵的乘法,输出结果矩阵。

data = input()data = [eval(i) for i in data.split()]# 定义两个矩阵,只不过是单行的,为了方便做乘法a = data[:12]b = data[12:]# 最后的结果矩阵c = []# 两个矩阵相乘for i in range(3):    ls = []    for j in range(3):        a_temp = a[i*4:(i+1)*4]        b_temp = b[j::3]        # 行列相乘        result = 0        for num_a,num_b in zip(a_temp,b_temp):            result += num_a*num_b        ls.append(result)    c.append(ls)#-------------------------   打印出相乘后的矩阵  --------------------   for i in range(len(c)):    # 输出一行信息    for j in range(3):        print('%8s'%c[i][j],end='')    print()

随机密码

请编写程序,生成随机密码。具体要求如下:
(1)使用 random 库,采用 10作为随机数种子。

提示:random.seed(10),不能用sample函数这是不放回抽样。
(2)密码允许字符如下:

“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”
(3)密码长度为输入的数字。

import randomrandom.seed(10)s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'length = eval(input())ans = ''for i in range(length):    ans+=random.choice(s)print(ans)

删除子串

编写程序实现在字符串s中删除子字符串c的功能。

说明:不考虑去掉子字符串c后形成的新的子字符串c。

例如:字符串s为abcabcd,子串c为bc,则调用该函数后,结果字符串s为aad。

s = input()foo = input()print(s.replace(foo, ''))

数列分段

给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?

_=eval(input())list_shulie=[int(i) for i in input().split()]num=1for i in range(1,len(list_shulie)):    if list_shulie[i]!=list_shulie[i - 1]:        num=num+1print(num)

找出质数对的和等于正整数的数对

给定一个正整数,编写程序找出质数对的和等于输入的这个正整数的数对,数对第一个数小于等于第二个数,并输出结果。输入值小于1000,大于5

def is_prime(num):    for i in range(2,int(num**0.5)+1):        if num % i ==0:            return False    else:        return Truenum=int(input())prime_ls=[int(i)for i in range(2,num) if is_prime(i)]#print(primelist)# # 方法一,循环判断# data=[]# for num1 in prime_ls:#     for num2 in prime_ls:#         if num1+num2==num and num1<=num2:#             data.append((num1,num2))#             data=list(set(data))# data.sort()# for i in data:#     print(i[0],i[1])# 方法二,滑动区间法l = 0r = len(prime_ls)-1data = []while l<=r:    result = prime_ls[l] + prime_ls[r]    if result>num:        r-=1    elif result

与“华中农业大学python实验题”相关推荐
华中农业大学python实验题
华中农业大学python实验题

知识汇总哈喽,大家好,我来做一个引流啦啦啦,本人总结了华农python期末部分常见考点,并且带有近两次的python编程考试题和参考代码。个人认为,不论是对大家期末复习还是日常学习,都会有所帮助。如有需要,请点击这里跳转除此之外,还有一

2022-06-23 23:29:02
华中农业大学新增3个农业农村部重点实验室
华中农业大学新增3个农业农村部重点实验室

近日,农业农村部正式发文,公布“十四五”农业农村部学科群重点实验室名单,华中农大新增3家农业农村部重点实验室,分别为农业农村部非洲猪瘟等重大生猪疾病防控重点实验室、农业农村部水产养殖设施工程重点实验室和农业农村部智慧养殖技术重点实验室。至此

2022-04-09 14:47:32
上海市华东师大一附中实验中学 (华附实验中学)
上海市华东师大一附中实验中学 (华附实验中学)

上海市华东师大一附中实验中学是按照区委、区政府、区教育局建设一流教育园区战略部署而组建的、是华东师大一附中引领的公办初级中学。学校现有教学班二十个,学生近七百人。近年来,学校在长期的教育实践中,涌现出了一批有思想、有经验的优秀教育工作者,

2022-02-28 22:56:44
华南农业大学和华中农业大学那个好?
华南农业大学和华中农业大学那个好?

农业大学排名:1,中国农业大学2,南京农业大学3,华中农业大学4,西北农林科技大学5,华南农业大学6,山东农业大学实力:华中农大大于华南农大。名气:华中农大大于华南农大。就业:华中农大小于华南农大。

2021-11-29 17:20:45
华中农业大学怎么样?华中农业大学好不好?
华中农业大学怎么样?华中农业大学好不好?

华中农业大学怎么样?华中农业大学好不好?今天考高分网小编通过整理资料为您带来以下信息希望能对您选择华中农业大学时有些帮助!华中农业大学是湖北农业重点本科学校,华中农业大学共有9个重点学科、院士8人、博士点57个、硕士点90个,学校

2021-10-22 22:04:11
华中农业大学是985吗??华中农业大学是211吗??
华中农业大学是985吗??华中农业大学是211吗??

  家长们一直告诉自己家的孩子要考上好大学,提到好大学所有人第一时间内想到的绝对会是985、211大学。那么大家知道哪些大学是211以及哪些是985大学?华中农业大学是985吗?华中农业大学是211吗?是广大考生和家长朋友们十分关心的问题,

2021-10-23 04:20:06
同济大学python实验1第2题
同济大学python实验1第2题

期末复习前期问题复盘importmathx=int(input(&quot;请输入一个整数:&quot;))y=math.sqrt(x)print(&quot;平方根是:%.2f&quot;%(y))

2022-12-15 16:23:44
华中农业大学
华中农业大学

华中农业大学是一所教育部直属、国家“211工程”建设的全国重点大学。校园位于湖北省武汉市武昌南湖狮子山,占地面积495万平方米(合7425亩),三面环湖,背靠青山,风景秀丽,环境幽雅,建筑楼群鳞次栉比,自然园林风貌引人入胜。学校历史悠久,历

2021-12-17 10:23:11