Python

[Python] 파이썬 별찍기 for, while문

현기 2022. 7. 26. 11:37

1. 사각형

#for문
for i in range(3) :
    for j in range(4):
        print('*', end ='')
    print()

#while문
i, j = 0, 0

while i<3:
    j=0
    while j<4:
        print('*', end ='')
        j+=1
    i+=1
    print()

 

2. 삼각형

 

#for문
for i in range(4):      
    for j in range(4):
        if(j<i):
            print('*', end ='')
    print()
    
#while문
i, j = 0, 0

while i<4:
    j=0
    while j<4:
        if(j<i):
            print('*', end ='')
        j+=1
    i+=1
    print()

 

3. 뒤집어진 삼각형

#for문
for i in range(4):      
    for j in range(4,0,-1):
        if(j>i):
            print(' ', end ='')
        else:
            print('*', end ='')
    print()

#while문
i, j = 0, 4

while i<4:
    j=4
    while j>0:
        if(j>i):
            print(' ', end ='')
        else:
            print('*', end ='')
        j-=1
    i+=1
    print()

 

4. 피라미드

#for문
start, end = int(5/2), int(5/2) # 별 시작, 끝 idx
for i in range(4):
    for j in range(5):
        if(j>start and j<end):
            print('*', end ='')
        else:
            print(" ", end ='')
    start -=1
    end +=1
    print()
    
#while문
i, j = 0, 0

start, end = int(5/2), int(5/2) # 별 시작, 끝 idx

while i<4:
    j=0
    while j<5:
        if(j>start and j<end):
            print('*', end ='')
        else:
            print(" ", end ='')
        j+=1
    start -=1
    end +=1
    i+=1
    print()

 

5. 마름모

#for문
start, end = int(5/2), int(5/2) # 별 시작, 끝 idx
row = 5 #행의 수
mid = int(5/2) #중간 값

for i in range(0,row):
    for j in range(0,row):
        if(j>=start and j<=end):
            print('*', end ='')
        else:
            print(" ", end ='')
    
    if i < mid:
        start -=1
        end +=1
    elif i >= mid:
        start +=1
        end -=1
    print()

#while문
i, j = 0, 0

start, end = int(5/2), int(5/2) # 별 시작, 끝 idx
row = 5 #행의 수
mid = int(5/2) #중간 값

while i < row:
    j=0
    while j < row:
        if(j>=start and j<=end):
            print('*', end ='')
        else:
            print(" ", end ='')
        j+=1
    
    if i < mid:
        start -=1
        end +=1
    elif i >= mid:
        start +=1
        end -=1
        
    i+=1
    print()

 

 

6. 사용자 입력받아 마름모 찍기

 

 

#for문
n = int(input("별의 수를 입력하세요 : "))
start, end = int(n/2), int(n/2) # 별 시작, 끝 idx
mid = int(n/2) #중간값

for i in range(0,n):
    for j in range(0,n):
        if(j>=start and j<=end):
            print('*', end ='')
        else:
            print(" ", end ='')
    
    if i < mid: #윗부분 증감
        start -=1
        end +=1
    elif i >= mid: #아랫부분 증감
        start +=1
        end -=1
    print()

#while문
i, j = 0, 0

n = int(input("별의 수를 입력하세요 : "))
start, end = int(n/2), int(n/2) # 별 시작, 끝 idx
mid = int(n/2) #중간값

while i < n:
    j=0
    while j < n:
        if(j>=start and j<=end):
            print('*', end ='')
        else:
            print(" ", end ='')
        j+=1
    
    if i < mid: #윗부분 증감
        start -=1
        end +=1
    elif i >= mid: #아랫부분 증감
        start +=1
        end -=1
    print()
        
    i+=1