Python

[2025.02.24] for문_별찍기

polibo 2025. 2. 24. 19:23

[별 6개 일자로 찍기]

  • 6번 반복하여 별 6개 찍음.
for i in range(6):
    print("*")

 

 

[별 100개 가로로 찍기]

  • print 함수에 end=""를 사용하여 default인 줄바꿈을 없애고, 가로로 별 100개 찍음.
for i in range(100):
    print("*", end="")

 

 

[왼쪽 직각삼각형 만들기]

  • 2가지 방법으로 만들어 봄.
  • 첫번째는 python에서만 할 수 있는 문자 연산을 통해 작성함.
  • 두번째는 이중for문을 사용하여 작성함.
for i in range(1, 7):
    print("*"*i)
print("-------------------")

num = 7
for i in range(1, num):
    for j in range(i):
        print("*", end="")
    print()

 

 

[왼쪽 직각삼각형 아래로 뒤집기]

  • 2가지 방법으로 만들어 봄.
  • 첫번째 방법은 문자 연산을 사용했고, range 함수 범위를 작아지게 설정하여 작성함.
  • 두번째 방법은 이중for문을 사용하여 작성함.
num = 6
for i in range(num, 0, -1):
    print("*"*i)
print("-------------------")

for i in range(num, 0, -1):
    for j in range(i):
        print("*", end="")
    print()

 

 

[오른쪽 직각삼각형 만들기]

  • " "은 num-i개 라는 규칙이 있고, *은 i개가 찍혀야 함.
num = 6
for i in range(1, num+1):
    print(" "*(num-i) + "*"*i)

 

 

[오른쪽 직각삼각형 뒤집기]

  • range를 작아지도록 설정하여 작성함.
num = 6
for i in range(num, 0, -1):
    print(" "*(num-i) + "*"*i)

 

 

 

[트리모양 만들기]

  • " "는 num-i 개, *은 2*i-1 개(홀수개)의 규칙을 가지고 있음.
num = 6
for i in range(1, num+1):
    print(" "*(num-i) + "*"*(2*i-1))

 

 

 

[트리모양 뒤집기]

  • 트리모양 만들기에서 range만 역순으로 수정하면 만들 수 있음.
num = 6
for i in range(num, 0, -1):
    print(" "*(num-i) + "*"*(2*i-1))

 

 

 

[다이아몬드 만들기]

  • 교수님께서 혼자 시간날 때 다이아몬드 만들기를 해보라고 하셨음.
  • 교수님께서 개발할 때에는 유지보수를 위해 변수를 따로 선언하는 것이 좋다고 하셨음.
  • 그래서 숫자 하나만 바꾸면 그에 맞는 다이아몬드가 만들어지는 코드를 작성함. 
  • num만 바꾸면 다양한 크기의 다이아몬드를 만들 수 있음.
  • 다이아몬드의 중간 행을 기준으로 나누기 위해 mid 값을 먼저 구함.
  • (다이아몬드의 윗쪽) mid 값보다 i가 작거나 같을 때, 트리모양 만들기와 똑같이 작성함.
  • (다이아몬드의 아랫쪽) mid값보다 i가 클 때, 띄어쓰기와 별 그리고 중간값의 관계를 파악하여 코드를 작성함.
# 다이아몬드 만들기
num = 31
mid = (num+1)/2
mid = int(mid)
for i in range(1, num+1):
    if i <= mid:
        print(" "*(num - i-(mid-1)) + "*"*(2*i-1))
    else:
        print(" "*(i-mid) + "*"*(num-2*(i-mid)))