테스트 사이트 - 개발 중인 베타 버전입니다

파이썬 코딩 질문

강명진 4년 전 조회 3,483
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개

I
4년 전

안녕하세요? ^^

 

우선 리스트의 요소를 문자열로 하려면 따옴표를 사용하셔야 됩니다.

 

마찬가지로 조건문에서도 문자열과 문자열을 비교하려면 따옴표를 사용하셔야 되구요.

 

 

그리고 작성하신 소스에서 변수 a는 리스트 physical_quantity의 인덱스를 지정하기 위한 목적으로 사용하신 것이라고 생각되네요 ^^

 

리스트의 인덱스는 0부터 시작되기 때문에 a - 1을 하셔야 "몇번째 물리량을 원합니까?"에 부합될 것 같네요.

 

예컨대 input에 첫번째(1)를 입력하면 1 - 1 = 0으로 처리되어야 'P'를 반환하게 됩니다.

 

 

이를 반영한 스크립트는 다음과 같습니다.

 

그럼 즐거운 주말 되세요 ^^

 

</p>

<p>def phy(a):

    physical_quantity = ['P', 'V', 'T', 'w', 'M']</p>

<p>    k = physical_quantity[a - 1]

    return k

    </p>

<p>a = int(input("몇번째 물리량을 원합니까?"))

k = phy(a)</p>

<p> </p>

<p>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)</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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)

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

4년 전

if문 상단을 다음으로 대체후 시도해 보세요.

 

a = int(input("몇번째 물리량을 원합니까?"))

def phy(a):
    physical_quantity = [P, V, T, w, M]
    r = physical_quantity[a]
    return r

k = phy(a)

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인