Python计算BMI值

Python014

Python计算BMI值,第1张

废话不多说,改进版继续上程序哈:

def bmi():

name=input('Name:')

height=input('Height(m):')

weight=input('Weight(kg):')

BIM=float(float(weight)/(float(height)**2))

print('您的BIM指数为:',BIM)

if BIM <18.5:

print('你太轻了!')

elif BIM<=25:

print('标准体重哦哦!')

elif BIM<=32:

print('您有点微胖哦哦!')

else:

print('您太胖了,该减肥了')

bmi()

for i in range(10):

choose =input('您是否愿意继续计算BMI(y/n):')

if choose=='y':

bmi()

else:

break

按照题目要求编写的Python程序如下

def calBMI(height,weight):

BMI=weight/(height*height)

if BMI<18.5:

return [BMI,"过轻"]

elif BMI<24:

return [BMI,"正常"]

elif BMI<28:

return [BMI,"过重"]

else:

return [BMI,"肥胖"]

import re

s=input("请输入你的身高(米)和体重(公斤)【逗号隔开】:")

s1=re.split(r'[,,]',s)

height=float(s1[0])

weight=float(s1[1])

name="李子健"

bmi=calBMI(height,weight)

print("{}的测算结果为:".format(name))

print("BMI:%.2f"%bmi[0])

print(bmi[1])

源代码(注意源代码的缩进)

你说的是“质数”的意思吧。

我这个算法,1万以内的质数基本上是秒出,更大范围10万级别的就有点慢了,100万就要卡半天。不知道有没有更好的办法。

# 下面的函数检测一个数是不是质数

def is_prime_number(x):

'''check if x is a prime number.

x: (int >= 10)'''

limit = int(x**0.5)+1

for y in prime_number_list:

if y >limit:

break

if x%y == 0:

return False

return True

# 下面的函数用于制造一个包含质数的列表

prime_number_list = [2,3,5,7]

def prime_number (n):

'''This function print all prime number in range n

n: (int >2)'''

# if n is larger than largest prime number in prime number list, then append new prime numbers in it.

if n >prime_number_list[-1]:

for x in range (10,n+1):

if is_prime_number(x):

prime_number_list.append(x)

n = 1000

prime_number(n)

print(prime_number_list)

>>>

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]