파이썬 for 문 관련
조회수 888회
import math
import numpy as np
import matplotlib.pyplot as plt
def Nutzlast(time):
t1 = time #[s]
_________________________
필요한 값과 공식들
_________________________
nutzlast = ((m_b2 - (0.08/0.92)*m_dot_z*t_ges)/((0.08/0.92)+1))/1000 #[t]
print("Gesamtmasseverhältnis r1 der ersten Stufe ist {:06.4f}".format(r1))
print("Gesamtmasseverhältnis r2 der zweiten Stufe ist {:06.4f}".format(r2))
print("Mittlere effektive Austrittsgeschwindigkeit der ersten Stufe ist {:06.4f} m/s".format(ce1))
print("Nutzlast ist {:06.4f} t".format(nutzlast))
return nutzlast
mylist = np.arange(50,200,0.01)
t_list = mylist
Nutzlast_list = []
for t1 in mylist:
Nutzlast(t1)
Nutzlast_list.append(Nutzlast(t1))
total_list = np.zeros((15000,2))
total_list[:,0] = t_list
total_list[:,1] = Nutzlast_list
print(Nutzlast(131.7700))
안녕하세요, 고민해봐도 알수가 없어서 질문드립니다. 과제는 최대값이 나오는 시간을 구한 후 그 시간에 해당하는 다른 값들을 프린트하는것이 목적입니다. 맨 마지막줄을 print(Nutzalst(131.7700))하면 함수로 돌아가 t1 = 131.7700에 해당하는 것만 프린트 될 줄 알았는데, 처음값부터 끝날때까지 계속 프린트가 됩니다. 아래그림처럼 말입니다. 이유를 잘 모르겠습니다. 해결할 수 있는 방법이 없을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
for 문 안에서 Nutzlast 함수를 두번씩(동일한 인자로) 호출합니다. Nutzlast 함수 안에 print 문들이 있으니까 동일한 값이 두번씩 찍히고 있는 것으로 보입니다.
확인하고 싶다면, 마지막 print(Nutzlast(..)) 직전에 print("-"*20) 과 값이 구분할 수 있는 줄을 찍어보세요.
더 좋은 것은 사용하고 있는 개발툴의 디버그모드 실행을 배우는 것입니다. https://www.youtube.com/watch?v=_mb_jlUgMqQ
댓글 입력