2017-10-06 1 views
2

h (고도)가 11000에서 25000 사이 일 때 오류가 발생하므로 모든 if 루프 외부에 초기 재료 만 게시했습니다. 문제가 발생한 특정 루프 마지막 줄 ([(1.73)-e]) 목록을 만들 수있는오류 : " 'float'유형이 아닌 정수로 시퀀스를 곱할 수 없습니다."

import math; 
T = 0.0; 
P = 0.0; 
hString = ("What is the altitude in meters?"); 
h = int(hString); 
e = math.exp(0.000157*h); 

elif 11000 < h < 25000: 
    T = -56.46; 
    P = (22.65)*[(1.73)-e]; 
+2

귀하의 코드가 나에게주는'ValueError를 정수로 변환 도움이 될 것입니다 : 무효 기수 10의 int()에 대한 리터럴 : '고도는 몇 미터입니까?' Python 콘솔에 복사하여 붙여 넣을 때 실행되도록 코드 예제를 수정할 수 있습니까? –

+0

실제로보고하는 오류를 생성하는 코드를 게시하십시오. [MVCE] (https://stackoverflow.com/help/mcve) 작성에 대한이 페이지가 도움이 될 수 있습니다. –

답변

2

대괄호 : 여기 내 코드입니다. 이 경우 하나의 요소 (예 : (1.73)-e)가있는 목록입니다. 네가 싫어하는 사람들을 상상해 보았다. 변경하면 작동 할 것입니다.

마지막 행이된다 :

P = (22.65)*((1.73)-e); 
3

당신은 괄호에주의 할 필요가 수학 연산을 사용하는 경우. 여기

P = (22.65)*((1.73)-e); #will be right way of using 

[ ] using will create a list which you, do not need in this program.

그것에 수학을하는 동안 당신은 형식 변환 및 브래킷의 적절한 사용에 대해 더 많은 것을 배울 도움이 될 것입니다 link이다.

은 또한 코드에서 당신은

 hString =input ("What is the altitude in meters?"); 
     h = int(hString); 

입력하면 사용자로부터 값을 취할 수 사용하지 않은 다음 int(your_input)

+0

'P = (22.65) *) (1.73) -e)'나에게 맞지 않습니다. 당신은'P = (22.65) * ((1.73) -e)'를 의미 했습니까? – SherylHohman

+1

@SherylHohman, 편집 완료 감사합니다. –

관련 문제