1709410895972900
pyozyman
  • 2016.4.16 17:34
  • 조회수 214
  • 답변수 1
1709410895972900
pyozyman
  • 2016.4.16 17:34
  • 조회수 214
  • 답변수 1

풀이하신 분 힌트 좀 부탁합니다

몇번해도 안되네요.

number_generator
def number_generator(x, n):
    # 함수를 완성하세요
    i = x
    list(i for i in range(n),i+=x)
    return [list]
  • #파이썬 입문
  • #x만큼 간격이 있는 n개의 숫자

1 답변

  • Gscxhpxkg5i74t30rimh
    정두식
    • 2016.4.17 06:36

    for문을 이용할수도 있고 list comprehension을 이용할수도 있습니다.
    list comprehension을 이용하시려는것 같은데요.코드에 몇가지 문제가 있네요.

    첫번째는 리턴하는 값입니다.
    작성하신 코드처럼 하면 만든 리스트를 return하지 않습니다.
    변수에 만든 리스트를 저장하고 그걸 리턴해야 합니다.

    a = list(i for i in range(n),i+=x)
    return a
    

    하거나

    return list(i for i in range(n),i+=x)
    

    해야 리턴이 됩니다.

    두번째는 리스트컴프리헨션의 방법인데요.
    range(n)뒤에 나오는 i+=x는 올바른 문법이 아닙니다. 그 부분은 빼 주세요.
    리턴은 n개를 해야 하기 때문에 range(n+1)로 변경해 주시면 1부터 n까지 가지는 리스트가 되겠져. 예를들어 n이 5이면 [1,2,3,4,5]가 됩니다.
    이때 x가 2이면 [2,4,6,8,10]이 정답이져? 그럼 [1,2,3,4,5]의 각 값에 2씩만 곱해주면 됩니다. 이걸 리스트 컴프리헨션으로 잘 풀어보세요.

    • def number_generator(x, n): return [x*(i+1) for i in range(n)] print(number_generator(2,5)) #고맙습니다. 많은 도움이 되었습니다.-pyozyman
      2016.4.17 09:24

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.