2012-09-25 1 views
0

사용자가 키와 몸무게를 입력 할 때 Python을 사용하여 BMI (체질량 지수)를 계산하려고합니다. 사용자는 높이를 5'8 "또는 6"또는 6'1 "로 피트를 5,8"로 변환해야하며 높이를 5.667로 변환해야합니다. 지금까지 내 코드가 있습니다.파이썬에서 문자열 5'8 ''을 5.677로 변환 하시겠습니까?

#!/usr/bin/python3.2 

W = input("Enter weight:") 
H = input("Enter height:") 

W = int(W) 

BMI = 703*W/H**2 

print(BMI) 

내 질문은 내가 5.667에 "5'8를 입력 사람들을 변환하고 계산을? 사전에 감사 않는 방법이다.

+5

당신은 이것을 원하지 않습니다. 12 인치가 피트에 있습니다 - 5'8 " 5.8 피트가 아니라, 5.667 피트입니다. –

+1

당신은 이것을 생각할 수도 있지만 발이 12 인치이므로 예를 들어 12 인치가됩니다. 5'11 "을 입력하십시오. –

+0

흠, 그러면 5'11"은 5.11입니까? 그렇지 않아. –

답변

1
import re 

# convert feet'inch" to decimal feet 
def decimalize_feet(s): 
    m = re.match(r'^(\d+)\'(\d+)\"$', s) 
    if m: 
     return float(m.group(1)) + float(m.group(2))/12. 
    else: 
     return None 
     # or handle invalid inputs otherwise 
2

나는 당신이 당신의 숙제를 오해 한 생각, 당신은 변환해야 피트와 인치를 인치로 넣으십시오 .'58 "는 수식에서 68으로 가야합니다. (xx'yy라고 가정하고 어떤 포맷 검사도하지 않습니다.)

H_feet = H.split("'")[0] 
H_inch = H.split("'")[1].split("\"")[0] 

H_inches = int(H_feet) * 12 + int(H_inch) 

BMI = 703*W/H**2 

print(BMI) 
관련 문제