파이썬 코딩 질문

파이썬 코딩 질문

QA

파이썬 코딩 질문

본문

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)
답변을 작성하시기 전에 로그인 해주세요.
전체 122
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT