개발일기 [Python 파이썬]

[파이썬 문제풀이] 주어진 숫자만큼 # 을 출력

neullo 2024. 3. 12. 20:50

 

주어진 숫자만큼 #를 출력해볼때 어떻게 해야할까?

 

def print_hash(num):
    for _ in range(num):
        print ('#', end="")
    print()  # 한 줄을 띄워주는 역할을 합니다.

# 함수를 호출하여 사용합니다.
num = int(input("숫자를 입력하세요: "))
print_hash(num)
def print_hashes(num):
    print("#" * num)

# 함수를 호출하여 사용합니다.
num = int(input("숫자를 입력하세요: "))
print_hashes(num)

 

 

for _ in range(num):

  • 루프의 반복 횟수에 변수를 사용하지 않고 _를 사용하는 것은 반복되는 변수의 값을 무시하고자 할 때 주로 사용됩니다. 파이썬에서는 변수 이름으로 _를 사용하면 해당 변수를 사용하지 않겠다는 의미로 인식됩니다.
  • 따라서 for _ in range(num):에서 _는 반복되는 변수의 값을 사용하지 않겠다는 의도를 나타냅니다. 이 코드에서는 반복 횟수가 중요하고 반복되는 변수의 값은 사용되지 않으므로, _를 사용하여 변수를 무시하고자 합니다.
  • 물론 for i in range(num):와 같이 다른 변수명을 사용해도 동일하게 동작합니다. 다만, _를 사용하면 반복되는 변수의 값을 사용하지 않겠다는 의도를 명확하게 표현할 수 있습니다.

 

end="”는 왜 쓰는걸까?

end=""를 사용하여 출력 후에 줄바꿈을 하지 않고 출력합니다. 따라서 이 경우에는 해당 줄에 출력이 이루어지게 됩니다.

숫자 3을 넣어서 #을 세번 출력하라고 할때 end를 넣으면 옆으로 쭉, 아니면 밑으로 출력 됩니다.

#
#
#

이런식이 아니라

###

def print_hash(num): 

이 코드는 함수 print_hash()를 정의하며, 함수 내에서 num에 지정된 횟수만큼 #을 출력합니다. 여기서 *_*는 루프에서 사용되는 변수이며, 해당 변수의 값을 사용하지 않기 위해 사용되는 관습적인 표기입니다. 만약 루프 인덱스가 필요하지 않다면 *_*를 사용하여 인덱스 값을 무시할 수 있습니다.

 

  • end=""는 print() 함수가 출력을 마친 후에 추가로 출력할 문자열을 지정하는 파라미터입니다. 기본적으로 print() 함수는 출력 후에 줄바꿈을 하지만, **end=""를 사용하면 출력 후에 줄바꿈을 하지 않고 끝나게 됩니다.
  • 따라서 print("#", end="")를 사용하면 #을 출력한 후에 줄바꿈을 하지 않고 출력이 종료됩니다. 이는 반복문 내에서 여러 번 출력한 결과를 한 줄에 모두 출력하기 위한 용도로 사용됩니다.
  • 예를 들어, print("#", end="")를 5번 반복하면 #####가 출력됩니다. 줄바꿈 없이 한 줄에 출력되는 것을 확인할 수 있습니다.

여기서 print('#') 말고 따옴표 없는 print(#) 를 하면 어떻게 될까?

예를들면, for_ in range(num) print(#)

  • print(#)은 변수나 표현식 #의 값을 출력하는 것입니다. 이 경우에는 # 변수나 표현식이 무엇을 의미하는지에 따라 결과가 달라질 것입니다. 만약 #이 문자열일 경우에는 정상적으로 출력되겠지만, 변수나 표현식이 아닌 경우에는 문법 오류가 발생할 수 있습니다.
  • 예를 들어, print(3)은 숫자 3을 출력하고, print("Hello")은 문자열 "Hello"를 출력합니다. 따라서 print(#)이 정상적으로 동작하려면 #이 유효한 변수나 표현식이어야 합니다.

num = int(input("숫자를 입력하세요: "))

이 코드는 사용자로부터 숫자를 입력받아 이를 정수형으로 변환한 후 num 변수에 저장하는 역할을 합니다. 이후에는 이 num 변수를 사용하여 출력할 #의 개수를 지정할 수 있습니다.

  • input("숫자를 입력하세요: "): 사용자에게 "숫자를 입력하세요: "라는 메시지를 출력하고, 사용자로부터 입력을 받습니다. 사용자가 키보드로 입력한 값은 문자열 형태로 반환됩니다.
  • int(...): 입력 받은 문자열을 정수형으로 변환합니다. 사용자로부터 입력 받은 값이 정수를 나타내는 문자열일 것으로 예상되므로, 이를 정수로 변환하여 num 변수에 저장합니다.