2017-12-14 25 views
1

이 질문이 기본적인 것처럼 보이면 죄송합니다. 나는 이것 (이것은 Python으로 첫 번째 학기입니다)에서 매우 새롭고 나는 단지 내가 잘못하고있는 것을 이해하고 싶습니다. 사람들은 이미 그 개념을 이해하지 못하기 때문에 나를 "게으르다"고 불렀지 만, 나는 묻지 않을 사람이없고, 나는 단지 배우기를 원합니다.range() 함수가 예상 결과를 생성하지 않습니다.

def num4(): 
    def tp(nums): 
     res = [] 
     for i in range(len(nums)): 
      for j in range(i+1,len(nums)): 
       res.append(nums[i] + nums[j]) 
     return res 

    nums = [ 1, 5, 7, -2 ] 
    print(tp(nums) 

나는 그것이 무엇을 걸었다 그것을 표시하고,이 결과 생산을 예상 :

def tp(nums): 
    res = [] 

    for i in range(len(nums)): 
    # startvalue = len(nums), stopvalue = 0, inc = 1 

     for j in range(i+1,len(nums)): 
    # startvalue = i + 1, stopvalue = len(nums) - 1, inc = 1 

      res.append(nums[i] + nums[j]) 

    return res 

    nums = [ 1, 5, 7, -2 ] 
    print(tp(nums)) 


for i in range(4): 
# range(4) = 1, 2, 3, 4 

    i = 1: 
    for j in range(i + 1, 4): 
    # range(1 + 1, 4) = 2, 3 
    res = [nums[1] + nums[2]] = 5 + 7 = 12 
    res = [nums[1] + nums[3]] = 5 - 2 = 3 

    i = 2: 
    for j in range(i + 1, 4): 
    # range(2+1, 4) = 3 
    res = [nums[2] + nums[3]] = 7 - 2 = 5 

    i = 3: 
    for j in range(i + 1, 4): 
    # range(3+1, 4) = n/a 
    res = [nums[3] + n/a] = -2 

    i = 4 
    for j in range(i + 1, 4): 
    # range(4+1, 4) = n/a 
    res = [nums[4] + n/a] = 1 

PREDICTED OUTPUT : 고해상도 =를 [

가 나는 프로그램이 12, 3, 5, -2, 1]

대신 파이썬 대화 형 세션에서이 작업을 수행했을 때

from ExamCheck1 import num4 
num4() 

그것은이 출력 제작 : [6, 8, -1, 12, 3, 5]

나는 12, 3, 5 권리를 가지고,하지만 어디 6, 8, -1 부분에서 왔는가? 나는 매우 혼란스럽고 혼란 스럽다.

도와주세요.

내가 게으르다 고 생각해서 대답하고 싶지 않다면 그냥 대답하지 마십시오. 나는 내가 뭘 잘못하고 있는지 이해하지 못하는 게 얼마나 게으른 지 다시 말할 필요가 없다.

미리 감사드립니다.

+3

# range (4) = 1, 2, 3, 4' - 인터프리터에서'range (4)'_really_가하는 것을보기 위해'list (range (4))'를 시도하십시오. –

답변

4

범위 함수에서 예상하는 값에 약간의 결함이 있습니다. 범위 함수를 사용할 수있는 방법에는 세 가지가 있습니다.

  1. 범위 (x) : 0 ~ x-1 범위의 값으로 배열을 생성합니다. 따라서 range (4) = [0,1,2,3]
  2. 범위 (x, y) : x ~ y-1에서 값을 생성합니다. 그래서 범위 (1,4) = [1,2,3]
  3. 범위 (x, y, z) : x ~ y-1의 값을 z 단계로 생성. 따라서 범위 (1,10,2) = [1,3,5,7,9]

범위의이 값을 사용하여 코드를 탐색하면 의미가 있습니다.

+1

확실한 답변입니다. 완전성을 위해 [documentation link] (https://docs.python.org/3/library/stdtypes.html#range). – Reti43

+0

이것이 효과가 있었고 마침내 이해합니다! 정말 고맙습니다! @ 사라바나 쿠마르 – karathrace99