欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Python-基础练习

时间:2023-05-31
Python-基础练习
 

'''练习''''''1.身体质量指数(BMI,Body Mass Index)是国际上常用的衡量人体肥胖程度和是否健康的重要标准,计算公式为:BMI=体重/身高的平方(国际单位kg/㎡)。中国的成年人BMI数值定义为:过轻:低于18.5 正常:18.5-23.9 过重:24-27.9 肥胖:高于28 请输入体重和身高,输出相应的BMI值和体重肥胖程度判断结果(too thin、normal、overweight或fat)。 [输入样例] 60,1.6 [输出样例] Your BMI is 23.4 normal [提示] 程序中体重和身高的输入可用“weight, height = eval(input())”语句表示。import mathweight,height = eval(input())bmi_val = weight/math.pow(height,2)print('Your BMI is %.1f'%bmi_val)if bmi_val<18.5: print('too thin')elif 18.5<=bmi_val<=23.9: print('normal')elif 24<=bmi_val<=27.9: print('overweight')elif bmi_val>=28: print('fat')''' '''2、按公式:C= 5/9×(F-32) ,将华氏温度转换成摄氏温度,并产生一张华氏0~300度与对应的摄氏温度之间的对照表(每隔20度输出一次)for i in range(0,301,20): print('华氏温度:%d,摄氏温度:%d'%(i,5/9*(i-32)))''''''3、角谷静夫是日本的一位著名学者,他提出了一个猜想(称为角谷猜想):对于一个正整数n,若为偶数则除以2,若为奇数则乘以3加1,得到一个新的数后按照之前的两条规则继续演算,若干次后得到的结果必然为1。输入任一正整数,输出演算过程。[输入样例] 10 [输出样例] 10/2=5 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1num = int(input('输入任一正整数:'))def fun(num): if num<=0: return 0 elif num == 1: return 1 elif num%2 == 0: print('{}/{}={}'.format(num,2,num/2)) return fun(num/2) else: print('{}*{}+1={}'.format(num,3,num*3+1)) return fun(num*3+1) fun(num)''''''4、输入n,用递推法(例如前项之间的关系推导后项,本题为一重循环)编程求1+2!+3!+...+n!的和并输出。[输入样例] 5 [输出样例] 153num = int(input('请输入阶乘数:'))s = temp = 1for i in range(2,num+1): temp*=i s += tempprint('结果为:',s)''''''5、编程求解1-4这4个数字可以组成多少个无重复的三位数,按从小到大的顺序输出这些数字。for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j!=k and i!=k: print(i*100+j*10+k)''''''6、验证命题:如果一个三位整数是37的倍数,则这个整数循环左移后得到的另两个3位数也是37的倍数。(注意验证命题的结果输出方式,只要输出命题为真还是假即可,而非每一个三位数都有一个真假的输出) def fun(): for i in range(100,1000): if i % 37 == 0: val_1 = i%100*10+i//100 val_2 = i%10*100+i//10 if val_1%37!=0 or val_2%37!=0: return False return Trueprint(fun())''''''7、一个数如果等于它的因子之和则称这个数为完数,例如6,6=1+2+3,编程计算1000之内的所有完数并输出。 for j in range(2,1001): temp_val = 0 for i in range(1,j): if j%i==0: temp_val += i if temp_val == j: print("n", j, " ", end = "") print("its factors are ", end = "") for v in range(1, j): if j%v == 0: print(v, end = " ")''''''8、验证哥德巴赫猜想之一:2000以内的正偶数(大于等于4)都能够分解为两个质数之和。每个偶数表达成形如:4=2+2的形式。 def fun(num): for i in range(2,num): if num%i == 0: return False return Truedef fun2(num): num_new = num//2 for i in range(2,num_new+1): if fun(i): j = num - i if fun(j): print('{} = {} + {}'.format(num,i,j))for i in range(4,2001): fun2(i)'''

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。