---
# System prepended metadata

title: BMI-UX設計

---

# BMI-UX設計

```python!
import random 
import string
#database
  
print("Please input name and weight and height")

# database_store

bmi_set_formal,bmi_set_heave,bmi_set_light = {} ,{}, {}    

#output_method

def show(a):    
    for k,v in a.items():
        print('The BMI of {} is {}'.format(k, v))

#test_database

for test in range(100):    
    
    n = ''.join(random.choice(string.ascii_letters) for x in range(10))
    
    #deal_with

    while True:
        try:
            #w = float(input("Please input the weight" +  "\033[1;32;1m(kg)\033[0m" ))
            
            w = random.uniform(10.0,500.0)
            if (w < 10 or w > 500):
                print("re-enter!!")
                continue
        except ValueError:
            print('Input should be a value, please re-input ')
            continue
        break

    while True:
        try:
            #h = float(input('Please input the height (cm) '))
            h = random.uniform(100.0,220.0)
            h = h / 100
            if (h < 1.0 or h > 2.2):
                print("re-enter!!")
                continue
        except ValueError:
            print('Input should be a value, please re-input ')
            continue
        break
    
    #judge = input("繼續請輸入1,終止請按0:")
    
    #if judge == "0":
        #break
    #else:
        #continue
    
    #count & store
    
    bmi = round(w/(h**2), 1)

    if bmi > 24:
        bmi_set_heave[n] = bmi
    elif bmi < 18:
        bmi_set_light[n] = bmi
    else:
        bmi_set_formal[n] = bmi
        

        


#  ouput
print ('-----------------------------------------------------------------------------------------------------------')
print("\033[1;32;1m正常數值有"+str(len(bmi_set_formal))+"個\033[0m")
print("\033[1;32;1m占總資料中 " + str(len(bmi_set_formal)) + "%\033[0m")
show(bmi_set_formal)
print("------------------------------------------------------------------------------------------------------------")
print("\033[1;32;1m過胖數值有"+str(len(bmi_set_heave))+"個\033[0m")
print("\033[1;32;1m占總資料中 " + str(len(bmi_set_heave)) + "%\033[0m")
show(bmi_set_heave)
print("------------------------------------------------------------------------------------------------------------")
print("\033[1;32;1m過輕數值有"+str(len(bmi_set_light))+"個\033[0m")
print("\033[1;32;1m占總資料中 " + str(len(bmi_set_light)) + "%\033[0m")
show(bmi_set_light)

```