一.通过键盘输入三名学生的身高分别是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)) + 655
print("基础代谢率为:{:}".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]))*6
print("转换后的钱是{:.2f}¥".format(D))
elif M[-1] in ['¥']:
R = (eval(M[0:-1]))/6
print("转换后的金钱是{:.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>c
print(a,b,c)
elif a>c: #前提条件是a>b,如果b<c的话,那就是a>c>b
print(a,c,b)
elif a<c: #前提条件a>b,如果a<c的话,那就是c<a<b
print(c,a,b)
十一、猜数游戏 在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”,如此循环,直至猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。
n = 1
num = 6
while(True):
a = eval(input("请输入猜测的值: "))
if(a>num):
print("遗憾,太大了")
n = n + 1
if(a<num):
print("遗憾,太小了")
n = n + 1
if(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 = b
b = temp
temp = 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 = 1
for i in range(n,0,-1): #从列表的下标为n的元素开始,倒序取到下标为0的元素
total *= i
print("n的阶乘为: ",total)
if(n==0):
total = 1
if(n>0):
total = 1
while(n>=1):
total *= n
n-=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 += 1
break
else:
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 = 1
for 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 = 0
avr = 0
no = 0
for i in a.split():
sum = sum + int(i)
no+=1
avr = sum/no
print(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 False
else:
print("重复的个数是{:d}".format(length-leng))
return True
a = []
item = (input("请输入要放入的列表元素: "))
while item !="":
a.append(item)
item=(input("请输入要放入的列表元素:"))
i = len(a)
f(i,a)