赞
踩
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 math
- weight,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=1
- num = 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
- [输出样例]
- 153
- num = int(input('请输入阶乘数:'))
- s = temp = 1
- for i in range(2,num+1):
- temp*=i
- s += temp
- print('结果为:',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 True
- print(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 True
- def 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 © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。