三十四.Python期末习题总结

编程入门 行业动态 更新时间:2024-10-11 03:25:11

三十四.Python期末<a href=https://www.elefans.com/category/jswz/34/1769768.html style=习题总结"/>

三十四.Python期末习题总结

一.通过键盘输入三名学生的身高分别是1.60cm,1.75cm,1.69cm,编程求出该三名学生的平均身高

import math
num1 = eval(input("第一名身高是:"))
num2 = eval(input("第二名身高是:"))
num3 = eval(input("第三名身高是:"))
avg_num = (num1+ num2 + num3)/ 3
print("他们的平均身高是:{:.2f}".format(avg_num))

二、x=(1 + 32) * (16 mod 7 ) / 7
请将上述数学表达式用Python程序写出来,并运算结果

x = (1+pow(3,2))*(16%7)/7
print("值为{:.2f}".format(x))

三、计算基础代谢率
基础代谢率是指我们在安静状态下(通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上。
计算公式:
BMR(男)=(13.7体重(kg))+(5.0身高(cm))-(6.8年龄)+66
BMR(女)=(9.6
体重(kg))+(1.8身高(cm))-(4.7年龄)+655
1、请分别计算身高为175cm,体重70kg,年龄20岁的男性和女性的基础代谢率,并将其全部输出显示。
2、改进程序,键盘输入性别为“男”或“女”,输出相应的基础代谢率。
3、改进程序,键盘输入体重、身高、年龄,性别。计算其基础代谢率并输出显示。

a = (13.7*70) + (5*175) - (6.8*20) + 66
b = (9.6*70) + (1.8*175) - (4.7*20) + 655
print("男女分别为:{:},{:}".format(a,b))
s = input("请输入男女:")
if(s=="男"):a=(13.7*70) + (5*175) - (6.8*20) + 66
else:a = (9.6*70) + (1.8*175) - (4.7*20) + 655
print("基础代谢率为:{:}".fotmat(a))  
tz = input("请输入体重:")
sg = input("请输入身高:")
nl = input("请输入年龄:")
xb = input("请输入性别:")
if(xb=="男"):a = (13.7*eval(tz[0:-2])) + (5.0*eval(sg[0:-2])) - (6.8*eval(nl)) + 66
else:a = (9.6*eval(tz[0:-2])) + (1.8*eval(sg[0:-2])) - (4.7*eval(nl)) + 655print("基础代谢率为:{:}".format(a))

四、整数序列求和:其他课程中我们已经学习了1+2+3+……+100,试着用Python语言编程实现以下,比较以下与C语言编写程序有什么不一样的地方?

n = input("请输入整数N:")
sum = 0
for i in range (int(n)):sum += i + 1
print("1到N的求和结果: ",sum)

五、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃前一天剩下的一半多一个。到第5天早上想再吃时,见只剩下一个桃子了。求第一天共摘下多少个桃子?

n = 1
for i in range(5,0,-1):n = (n+1)<<1
print(n)

六、汇率兑换问题
请参考教材中P34-36中温度转换程序,按照IPO的设计思路,实现人民币与美元之间的兑换,按照1美元=6元人民币汇率编写一个美元和人民币的双向兑换程序。

M = input("请输入带有符号的金钱: ")
if M[-1] in ["$"]:D = (eval(M[0:-1]))*6print("转换后的钱是{:.2f}¥".format(D))
elif M[-1] in ['¥']:R = (eval(M[0:-1]))/6print("转换后的金钱是{:.2f}$".format(R))
else:print("输入格式错误")

七、回文数判断。设n是一任意自然数,如果n的各位数字反向排列所得自然数与n相等,则n被称为回文数。从键盘输入一个5位数字,请编写程序判断这个数字是不是回文数。

n = input("请输入一个整数: ")
if n[:]==n[::-1]:print("该数是回文数")
else:print("该数不是回文数")

八、存在字符串“I love Java”,将Java替换为Python,替换后将三个单词分别放到列表中输出。

str1 = "I love Java"
str2 = str1.replace('Java','Python')
str3 = str2.split(",")
print(str3)

九、定义一个字符串“I like Python very much 2333 because Python is very cute 666.”,判别该字符串中数字字符的个数,并将第一次出现的Python替换成你偶像的名字并输出新字符串。

A = "I like Python very much 2333 because Python is very cute 666."
num = 0
for i in A:if i.isdigit():num = num + 1
print(num)
B = A.replace("Python","坂井泉水")
print(B)

十、简单排序 输入3个数,请利用if 结构按照从大到小的顺序排序。

a = input("第一个数:")
b = input("第二个数:")
c = input("第三个数:")
if a<b:a,b=b,a     #始终让a大于b
if b>c:         #前提条件是a>b,如果b>c的话,那就是a>b>cprint(a,b,c)
elif a>c:        #前提条件是a>b,如果b<c的话,那就是a>c>bprint(a,c,b)
elif a<c:        #前提条件a>b,如果a<c的话,那就是c<a<bprint(c,a,b)

十一、猜数游戏 在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”,如此循环,直至猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。

n = 1
num = 6
while(True):a = eval(input("请输入猜测的值: "))if(a>num):print("遗憾,太大了")n = n + 1if(a<num):print("遗憾,太小了")n = n + 1if(a==num):print("预测了{}次,你猜中了".format(n))break

十二、请利用random库,产生两个0~100(包含0和100)的随机整数a和b,求这两个整数的最大公约数和最小公倍数。
提示:
(1)可以利用random库中的函数
(2)利用“辗转相除法”求最大公约数 方法:对于已知的两个正整数m,n,使得m>n,用较大数m除以较小数n得到余数r,再用出现的余数r(第一余数)去除除数n,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
(3)最小公倍数则利用两数的积除以最大公约数就可以。

from random import randint
a = randint(0,100)
b = randint(0,100)
print("第一个数a是: ",a)
print("第一个数b是: ",b)
a = int(input("请输入一个整数a:"))
b = int(input("请输入一个整数b:"))
c = a*b
if a<b:a,b = b,a
temp = a%b
while(temp!=0):a = bb = temptemp = a%b
c = c/b
print("最大公约数为: {},最小公倍数为: {}".format(b,c))

十三、编写程序,输入整数n(n>=0),分别利用for循环和while循环求 n!

n = int(input("请输入一个n: "))
if(n==0):total = 1
if(n>0):total = 1for i in range(n,0,-1): #从列表的下标为n的元素开始,倒序取到下标为0的元素total *= i
print("n的阶乘为: ",total)
if(n==0):total = 1
if(n>0):total = 1while(n>=1):total *= nn-=1
print("n的阶乘为: ", total)

十四、爱因斯坦阶梯问题: 有一个长阶梯,走每步上2阶,最后剩余1阶;如果每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶,只有每步上7阶,最后刚好一阶不剩。
-编写程序求该阶梯至少有多少阶

x = 1
while x<1000:if(x % 2 == 1) and (x % 3 == 2) and\(x % 5 == 4) and (x % 6 == 5) and(x % 7 == 0):print(x)x += 1breakelse:x += 1
print("循环结束")

十五、实现isOdd()函数,参数为整数,如果整数为奇数,返回True,否则返回False。并分别从键盘输入奇数和偶数验证之。

def isOdd(a):if a%2==1:print("True")else:print("False")
b = int(input("请输入一个整数:"))
isOdd(b)

十六、实现multi()函数,参数个数不限,返回所有参数的乘积。并验证。例如:
multi(1, 4, 7, 5.2),

def multi():a = input("请输入一组数,空格间隔:")s = 1for i in a.split():    #split函数返回一个列表s = s*int(i)print(s)
multi()

十七、实现student()函数,参数为学生成绩,个数不确定,返回值为学生成绩的总分、平均分以及人数。并验证。例如学生成绩为70,80,90,输出结果为(240,80.0,3)

def student():a = input("请输入一组数,空格间隔:")sum = 0avr = 0no = 0for i in a.split():sum = sum + int(i)no+=1avr = sum/noprint(sum,avr,no)
student()

十八、递归练习,利用递归的方式判断回文数。设n是一个自然数,如果n的各位数字反向排列所得的自然数与n相等,则n被称回文数。从键盘输入一个5位数,请编写程序判断这个数据是不是回文数。

n = eval(input("请输入数据:"))
if str(n)==str(n)[::-1]:print("True")
else:print("False")

十九、随机密码生成。编写程序,在26个字母大小写和9个数字组成的列表中随机生成10个8位密码。效果如图所示

import random
for i in range(10):print("第",(i+1),"个密码是:",end="")for j in range(8):a = chr(random.randint(48,57))b = chr(random.randint(97,122))c = chr(random.randint(65,90))if j<7:print(random.choice([a,b,c]),end="")else:print(random.choice([a,b,c]))

二十、重复元素判定。编写一个函数,接受列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序。运行效果如图所示

def f(length,a):sss=set()for t in range(length):sss.add(a[t])leng = len(sss)if(leng==length):return Falseelse:print("重复的个数是{:d}".format(length-leng))return True
a = []
item = (input("请输入要放入的列表元素: "))
while item !="":a.append(item)item=(input("请输入要放入的列表元素:"))
i = len(a)
f(i,a)

更多推荐

三十四.Python期末习题总结

本文发布于:2024-02-07 06:20:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:习题   期末   三十四   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!