2017-09-10 2 views
0

목록에 각 숫자의 제곱이 표시됩니다. 나는 그 일을 처리했지만 그 순서에서 마지막 쉼표를 제거해야합니다. 나는이 코드를 사용하는 경우정수 목록에서 마지막 쉼표를 제거하는 방법은 무엇입니까?

는 :

def multiplicator(): 
     for a in range(3, 20): 
      b = (a*a) 
      print(b, end=",") 

multiplicator() 

를 내가 얻을 : 당신은 마지막에 하나 더 추가하지 처리 할 문자열 사이에 구분 기호를 추가 할 str.join을 사용할 수 있습니다

9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361, 

답변

-1

당신은 당신의 루프를 유지하고 조건 추가 할 수 있습니다

def multiplicator(): 
    for a in range(3, 20): 
     b = (a*a) 
     print(b, end="") 
     if a<19: # if not the last element 
      print(end=",") # print "," 
    print() # print new line after everything 

multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361 

당신은 또한 코드를 단축 삼항 조건을 사용할 수 있습니다 :

def multiplicator(): 
    for a in range(3, 20): 
     b = (a*a) 
     print(b, end="," if a<19 else "") 

    print() # print new line after everything 
multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361 
+0

다운 투표를 해주셔서 감사합니다. 이유를 언급하지 않고 정답. –

+2

나는 투표를하지는 않았지만, 다른 대답을 본다면 혼자서 알아낼 수 있어야합니다 ... 답변이 "효과가 있기 때문에"자동으로 좋지 않습니다. – martineau

+0

@martineau 더 잘 만들 수 있었고, 조인을 사용하는 방법을 알고 있었기 때문에 의도적으로 코드를 그대로 두었습니다. OP가 초보자이고 코드가 가능한 한 자신의 코드에 가까워지기를 원하기 때문에 코드를 그대로 두었습니다. 그는 내 대답을 받아 들였고 다른 사람들은 받아 들였다. 그리고 이것은 아마도 배정이므로 그들이 조인을 사용하는 것을 허용하지 않을 것입니다. –

6

.

>>> ','.join(str(a*a) for a in range(3, 20)) 
'9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361' 
0

간단한 옵션은 다음과 같습니다

def multiplicator(): 
    for a in range(3, 19): 
     print(a*a, end=',') # directly a*a, no need for an intermediate variable 
    print(19*19) 

제네릭 솔루션 N은 다음과 같습니다

def multiplicator(n): 
    for a in range(3, n-1): 
     print(a*a, end=',') 
    print((n-1)*(n-1)) 

출력 :

>>> multiplicator(20) 
9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361 

참고 :

이것은 당신이 뭘 하려는지에 대한 간단한와 유사한 방식이지만, 당신은 확실히 가야한다 @CoryKramer's 대답을 사용하여 str.join()

관련 문제