2013-05-15 2 views
2

나는 triforce를 만드는 python 프로그램을 가지고 있지만 중간에, 루프 사이에 새로운 줄이 추가됩니다. 어떻게 제거 할 수 있습니까?루프 된 새 줄을 제거 하시겠습니까?

소스 코드 :

var = 10 

for x in range(var+1): 
    print(' '*x+'v'*(10-x)*2+' '*x+' '*x+'v'*(10-x)*2) 
for p in range(var+1): 
    print(' '*var+' '*p+'v'*(var-p)*2) 

input() 

결과 :

vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 
vvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvv 
    vvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvv 
    vvvvvvvvvvvvvv  vvvvvvvvvvvvvv 
    vvvvvvvvvvvv  vvvvvvvvvvvv 
    vvvvvvvvvv   vvvvvvvvvv 
     vvvvvvvv   vvvvvvvv 
     vvvvvv    vvvvvv 
     vvvv    vvvv 
     vv     vv 

      vvvvvvvvvvvvvvvvvvvv 
      vvvvvvvvvvvvvvvvvv 
      vvvvvvvvvvvvvvvv 
      vvvvvvvvvvvvvv 
       vvvvvvvvvvvv 
       vvvvvvvvvv 
       vvvvvvvv 
       vvvvvv 
        vvvv 
        vv 

내가 중간에 그 차이를 제거하고 싶지만, .rstrip('\n') 작동하지 않습니다.

감사합니다.

+3

새 줄은 루프 사이에 추가되지 않습니다. 첫 번째 사람이 만듭니다. 인쇄 명세서의 세부 사항을 변경하고자 할 수 있습니다. – ApproachingDarknessFish

+0

관련 항목 : [code-golf-triforce] (http://stackoverflow.com/questions/2406780/code-golf-triforce) –

답변

0

대안 VITH 날카로운 팁

var = 10 

for x in range(var): 
    print(' '*x+'v'+'v'*(var-1-x)*2+' '*(2*x+1)+'v'+'v'*(var-1-x)*2) 

for p in range(var): 
    print(' '*var+' '*p+'v'+'v'*(var-1-p)*2) 

인쇄 ...

vvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvv 
vvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvv 
    vvvvvvvvvvvvvvv  vvvvvvvvvvvvvvv 
    vvvvvvvvvvvvv  vvvvvvvvvvvvv 
    vvvvvvvvvvv   vvvvvvvvvvv 
    vvvvvvvvv   vvvvvvvvv 
     vvvvvvv    vvvvvvv 
     vvvvv    vvvvv 
     vvv     vvv 
     v     v 
      vvvvvvvvvvvvvvvvvvv 
      vvvvvvvvvvvvvvvvv 
      vvvvvvvvvvvvvvv 
      vvvvvvvvvvvvv 
       vvvvvvvvvvv 
       vvvvvvvvv 
       vvvvvvv 
       vvvvv 
        vvv 
        v 

발현

을 (수학적으로)를 간략화 할 수 있지만,이 아이디어는 인쇄하는 것이다

  • 들여 쓰기
  • 삼각형
  • 그것은 두배 상단부에 처음

에 V의

  • 대칭 삼각형
  • 열은 제 2 부분의 압입은 계정 이전 부분으로 센다. 하부는보다 간단한 들여 쓰기를가집니다.

  • 2
    var = 10 
    
    for x in range(var): 
        print(' '*x+'v'*(10-x)*2+' '*x+' '*x+'v'*(10-x)*2) 
    for p in range(var+1): 
        print(' '*var+' '*p+'v'*(var-p)*2) 
    
    input() 
    

    괜찮습니까?

    2

    개행 문자가 아닙니다. X 10에 있습니다, 그래서 당신은 @ValekHalfHeart에서 언급 한 바와 같이, 줄 바꿈이 첫 번째 블록에 생성됩니다 루프

    +0

    대신,'' '문자 만있는 행을 삽입해야합니다. – mrKelley

    2

    에 대한 귀하와 함께 빈 줄을 삽입하는

    당신은 다음과 같이 첫 번째 블록을 변경하여 해결할 수 있습니다 :

    for x in range(var): 
        print(' '*x+'v'*(var-x)*2+' '*x+' '*x+'v'*(var-x)*2) 
    

    하거나 (VAR + 1)를 유지하려는 경우, 다음을 수행하십시오

    for x in range(var+1): 
        print(' '*x+'v'*(var+1-x)*2+' '*x+' '*x+'v'*(var+1-x)*2) 
    

    문제는이다 그의 마지막 반복에 10 - 10 = 0 첫 번째 루프이므로 ''문자와 ''v '의 줄을 얻을 수 있습니다.

    +1

    사실, op 코드에서'10-11'로 끝나지 않고 단지 '10 -10 ' – mrKelley

    +0

    감사합니다. @mrKelley, 당신은 절대적으로 옳습니다. 내 대답을 바로 잡았어. – mattc

    관련 문제