Python-基础练习

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)
'''

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值