파이썬 코딩 질문
본문
a = int(input("몇번째 물리량을 원합니까?")) physical_quantity = [P, V, T, w, M] def phy(a): physical_quantity[a] return k if k == P: V = float(input("부피를 입력하세요")) w = float(input("질량을 입력하세요")) M = float(input("분자량을 입력하세요")) T = float(input("절대온도를 입력하세요")) R = 0.082 P = w * R * T / M / T print(P) elif k == V: P = float(input("압력을 입력하세요")) w = float(input("질량을 입력하세요")) M = float(input("분자량을 입력하세요")) T = float(input("절대온도를 입력하세요")) R = 0.082 V = w * R * T / M / P print(V) elif k == T: P = float(input("압력을 입력하세요")) V = float(input("부피를 입력하세요")) w = float(input("질량을 입력하세요")) M = float(input("분자량을 입력하세요")) R = 0.082 T = P * V * M / w / R print(T) elif k == w: P = float(input("압력을 입력하세요")) V = float(input("부피를 입력하세요")) M = float(input("분자량을 입력하세요")) T = float(input("절대온도를 입력하세요")) R = 0.082 w = P * V * M / R / T print(w) elif k == M: P = float(input("압력을 입력하세요")) V = float(input("부피를 입력하세요")) w = float(input("질량을 입력하세요")) T = float(input("절대온도를 입력하세요")) R = 0.082 M = w * R * T / P / V print(M)
이상기체 방정식을 만들고 싶은데 뭐가 문젠지 1도 모르겟습니다 ㅠㅠ 조건문은 오류가 안뜨고요 def phy(a)에서 a가 틀렸다는데 문제점을 모르겠습니다 도와주세요 ㅠㅠ
답변 3
if문 상단을 다음으로 대체후 시도해 보세요.
a = int(input("몇번째 물리량을 원합니까?"))
def phy(a):
physical_quantity = [P, V, T, w, M]
r = physical_quantity[a]
return r
k = phy(a)
a = int(input("몇번째 물리량을 원합니까?"))
physical_quantity = ['P', 'V', 'T', 'w', 'M']
def phy(a):
k= physical_quantity[a]
return k
k= phy(a)
if k == 'P':
V = float(input("부피를 입력하세요"))
w = float(input("질량을 입력하세요"))
M = float(input("분자량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
P = w * R * T / M / T
print(P)
elif k == 'V':
P = float(input("압력을 입력하세요"))
w = float(input("질량을 입력하세요"))
M = float(input("분자량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
V = w * R * T / M / P
print(V)
elif k == 'T':
P = float(input("압력을 입력하세요"))
V = float(input("부피를 입력하세요"))
w = float(input("질량을 입력하세요"))
M = float(input("분자량을 입력하세요"))
R = 0.082
T = P * V * M / w / R
print(T)
elif k == 'w':
P = float(input("압력을 입력하세요"))
V = float(input("부피를 입력하세요"))
M = float(input("분자량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
w = P * V * M / R / T
print(w)
elif k == 'M':
P = float(input("압력을 입력하세요"))
V = float(input("부피를 입력하세요"))
w = float(input("질량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
M = w * R * T / P / V
print(M)
안녕하세요? ^^
우선 리스트의 요소를 문자열로 하려면 따옴표를 사용하셔야 됩니다.
마찬가지로 조건문에서도 문자열과 문자열을 비교하려면 따옴표를 사용하셔야 되구요.
그리고 작성하신 소스에서 변수 a는 리스트 physical_quantity의 인덱스를 지정하기 위한 목적으로 사용하신 것이라고 생각되네요 ^^
리스트의 인덱스는 0부터 시작되기 때문에 a - 1을 하셔야 "몇번째 물리량을 원합니까?"에 부합될 것 같네요.
예컨대 input에 첫번째(1)를 입력하면 1 - 1 = 0으로 처리되어야 'P'를 반환하게 됩니다.
이를 반영한 스크립트는 다음과 같습니다.
그럼 즐거운 주말 되세요 ^^
def phy(a):
physical_quantity = ['P', 'V', 'T', 'w', 'M']
k = physical_quantity[a - 1]
return k
a = int(input("몇번째 물리량을 원합니까?"))
k = phy(a)
if k == 'P':
V = float(input("부피를 입력하세요"))
w = float(input("질량을 입력하세요"))
M = float(input("분자량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
P = w * R * T / M / T
print(P)
elif k == 'V':
P = float(input("압력을 입력하세요"))
w = float(input("질량을 입력하세요"))
M = float(input("분자량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
V = w * R * T / M / P
print(V)
elif k == 'T':
P = float(input("압력을 입력하세요"))
V = float(input("부피를 입력하세요"))
w = float(input("질량을 입력하세요"))
M = float(input("분자량을 입력하세요"))
R = 0.082
T = P * V * M / w / R
print(T)
elif k == 'w':
P = float(input("압력을 입력하세요"))
V = float(input("부피를 입력하세요"))
M = float(input("분자량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
w = P * V * M / R / T
print(w)
elif k == 'M':
P = float(input("압력을 입력하세요"))
V = float(input("부피를 입력하세요"))
w = float(input("질량을 입력하세요"))
T = float(input("절대온도를 입력하세요"))
R = 0.082
M = w * R * T / P / V
print(M)