2016-10-06 3 views
1

저는 프로그래밍에 익숙하지 않고 연구 계산에 파이썬을 사용하려고합니다.목록을 반복하는 방법은 무엇입니까?

chelDays = [0, 1, 5, 7] 매번 t가 1에서 100이 될 때마다 chelDays 목록의 각 구성원마다 t-chelDays가 필요합니다. t> tchelDays 인 경우. see image

가 여기에 내가 시도 내용은 다음과 같습니다 : 예를 들어, 나는 다음과 같은 결과를 얻을 것

chelDays = [0, 1, 5, 7] 
while t <100: 
    if t > tj: 
     print (t, t-tj) 
    else: 
     print (t, " ") 
    t +=1 
편집

:

마지막으로 내 솔루션을 발견 : 타우 = (0, 1, 5, 7) def tMinusTau (t, tj) : t> tj :
return t-tj else : return ""tMinusTau (t, Tau [0]), tMinusTau (t, Tau 1), tMinusTau (t, Tau [2]), tMinusTau (t, Tau [3])의 범위에 대한: ))

+0

'for tj in range (len (chelDays) -1)'루프를 사용해보십시오. –

+1

파이썬에서 반복은 대개'for' 루프를 포함합니다. 나중에, 당신은'이해'를 배우고 싶을지도 모른다. 'while '루프는 파이썬에서 거의 사용되지 않지만, 분명히 그들의 자리를 가지고 있습니다. –

+3

하지만 진지하게, 다음 번에 귀하의 질문을 검색해보십시오. [공식 문서] (https://docs.python.org/2/tutorial/controlflow.html#for-statements)를 발견했을 것입니다. 이렇게하면 혼란을 막을 수 있습니다. 또한 [공식 튜토리얼] (https://docs.python.org/3.5/tutorial/introduction.html)을 읽어보십시오. 그것은 아주 좋으며 기본적인 질문을 피할 수 있습니다. –

답변

3

for 루프는 컬렉션의 항목을 반복하는 비법입니다. range을 사용하여 같은 범위의 효과를 얻을 수 있습니다. 예 : range(1,100) 숫자가 1 ~ 99입니까 (정지 번호가 포함되지 않으므로)

따라서 t = 1에서 t = (100) 한 후 다음 작업을 수행 할 수 t의 모든 간격 chelDays의 각 항목에 대해 검사 :

for t in range(1,101): 
    for tj in chelDays: 
     if t > tj: 
      #dostuff 
     else: 
      #dostuff 

편집 : 당신이 chelDays 또는하지의 모든 항목을 확인하고 싶다면 돌이켜 보면, 그것은 분명했다. 당신은 모든 날의 총 가치를 의미했을 수도 있습니다. 그런 경우에는, 당신은 sum(chelDays) 예를 들어 sum([1,2,3]) == 6하여 값을 요약 할 수 있습니다 또는 당신이 그 목록에있는 항목의 수를 원한다면, 당신은 할 것 len(chelDays) 예를 들어 len([504,123,234]) == 3

마지막으로, 당신은 자신과 다른 사람을 위해 할 수있는 좋은 점 코드를 읽고 변수 이름이 무엇인지 정확히 설명하도록하십시오. x, y, var 등과 같은 변수 이름은 일반적으로 적합하지 않습니다. 물론, xyt 등이 완벽하게 수학 공식과 같은 문맥이 있습니다.

+0

마침내 내 문제에 대한 해결책을 찾았습니다. – DPdl

관련 문제