2011-08-11 2 views
6

어떻게이 코드를 수정하여 각각 5 개의 요소가있는 3 개의 목록을 지금과 같이 만들 수 있습니까? 5/10/15 요소가있는 3 개의 목록? 이 모든 호출에 다시 것 있도록루프 질문에리스트를 추가하십시오.

import random 

y = [] 

def autoSolve(): 
    for i in range(5): 
     z = random.randrange(1, 10) 
     y.append(z) 
    print(y, end="") 

for i in range(3): 
    print("number", i + 1,) 
    autoSolve() 
    print() 
+0

왜 당신이 세 가지 목록이 생각 5 요소의 3 내부 목록 목록을 편대로 출력을 생성합니다? 프린트가 세 번 호출 되었기 때문에? – SingleNegationElimination

+1

이 숙제가 있습니까? – 6502

+2

이것은 숙제가 아닙니다. – Sergei

답변

10

autoSolve 방법으로 이동 y = [].

def autoSolve(): 
    y = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     y.append(z) 
    print(y, end="") 
0
autoSolve의 시작 부분에 y = [] 이동

.

1

매번 같은 목록 y을 인쇄하고 있습니다.

y 빈 시작합니다.

for 루프의 첫 번째 반복 y은 5 개의 요소로 끝납니다.

두 번째 반복 y.append은 10 개의 요소로 증가시킵니다. 이를 방지하기

autoSolve() 방법 라인 내부

y=[] 

넣어.

0
import random 

y = [] 

def autoSolve(): 
    x = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     x.append(z) 
    print(x, end="") 
    return x 

for i in range(3): 
    print("number", i + 1,) 
    y.append(autoSolve()) 
    print() 
+0

이것은 파이썬에서 전역 변수를 이해하지 못한다. – agf

+0

당신은 완전히 옳습니다. 나는 변수의 이름을 바꿨다. –

-1

이 문제에 대한 적절한 해결책이라고 생각합니다. 여기

import random 

y = [] 

def autoSolve(): 
    x = [] 
    for i in range(5): 
     z = random.randrange(1, 10) 
     x.append(z) 
    y.append(x) 
    print(y, end="") 

for i in range(3): 
    print("number", i + 1,) 
    autoSolve() 
    print() 

이 [[] [] []