Python (Basic) Hackerrank 코드 설명(1)

wannabedatazzang·2021년 11월 29일
0
post-thumbnail

1번 FizzBuzz 문제

  • 파라미터 n을 주게 되면
  • 1 부터 n까지의 숫자를 출력하게 되는데
  • 3의 배수이면 fizz
  • 5의 배수이면 buzz
  • 3과 5의 배수이면 fizzbuzz
  • 그 이외에는 숫자를 출력하여라!
import math
import os
import random
import re
import sys

def fizzBuzz(n):
    for number in range(1, n+1):
        if number % 3 == 0 and number % 5 == 0:
            print('FizzBuzz')
        elif number % 3 == 0:
            print('Fizz')
        elif number % 5 == 0:
            print('Buzz')
        else:
            print(number)

if __name__ == '__main__':
    n = int(input().strip())

    fizzBuzz(n)

fizzbuzz 함수 설명

  • n이라는 파라미터를 받게 된다면,
  • range 함수를 사용 1부터 n까지 출력을 하여야 함으로
  • for문의 대상은 in range(1, n+1)
  • if/elif/else 문으로 내려가자면
  • 3과 5의 동시에 배수를 먼저 fizzbuzz로 출력함으로서
  • 하단의 elif문들은 3과 5의 배수를 fizz, buzz로 출력하게 해준다!
  • 마지막 else 문은 3과 5의 배수들이 아닌 숫자를 그냥 숫자로 출력하게끔!

if name == 'main':

  • 메인 함수문
  • n이라는 파라미터를 input 함수로 받게 되고
  • 이른 fizzbuzz 함수에 넣어준다!

메인 함수문?!

  • 오늘의 메인 포인트!
if name == "main" 의 의미는 메인 함수의 선언, 시작을 의미..
  • 근데 그게 먼데?
# multi.py

def multi(x, y):
	return x*y
	
print (multi(3, 4))

위와 같은 multi.py라는 python 코드가 있다고 치자

  • python multi.py 는 당연하게도 12라는 결과 값을 print 해준다!

근데 과연 multi.py를 함수로 불러오면~!

import multi
>>> 7

다른 파이썬 파일에서 multi라는 python 파일을 모듈로 불러올 경우

  • 7이라는 값이 print되게 된다.
  • 만약 우리가 그냥 곱하는 모듈만 쓸려고 하는데
  • 모듈이 임포트 될 때 7이라는 숫자가 나오게 되면 헷갈릴것 같다..

어떻게 바꿔줄까?

# multi.py

def multi(x, y):
	return x*y

if __name__ == '__main__'
	print (multi(3, 4))

위와 같이 변경 된다면 multi.py 파일 자체를 실행할때는
print 함수가 출력되며
다른 파일에서 import 할시 multi 모듈의 name
multi로 변경 됨으로 print 함수가 실행되지 않는다!

[끝]

0개의 댓글