본문 바로가기
Python

파이썬 초급 #045 함수 - 10진수를 이진수로 변환하는 프로그램 , 함수 파일 분리(모듈화)와 호출(from deciTobin import deciTobin)

by Smart Factory in 2020 2022. 2. 25.
728x90
반응형

안녕하세요. 스마트팩토리입니다. 
파이썬 초급 #045 함수 - 10진수를 이진수로 변환하는 프로그램 함수 파일 분리와 호출에 대해 알아보겠습니다. 

1. 십진수를 이진수로 

가. 10진수를 2진수로 
- 예를 들어 10 을 2 로 나누면  몫은 5 나머지는 0 
                 5 를 2 로 나누면  몫은 2 나머지는 1 
                 2를  2로 나누면 몫은  1  나머지는 0

   10은 2진수로 바꾸면 1010(2) 가 된다. 
 이를 코드로 바꾸면 2로 나누고 나머지가 있으면 0을 붙여주고, 나머지가 있는 경우 1을 붙여주면서 몫을 계속 2로 나누면 된다. 

 

코드를 보면서 알아보겠습니다. 

def deciTobin(num):
  binary=""
  while num !=0:
    if num%2==0:
        binary="0"+binary
        num=num//2
    else:
        binary="1"+binary
        num=num//2
  return binary

decitobin 함수에서 매개변수로 입력값을 가져옵니다.
여기서 2진수로 받을 변수를 binary로 하고 처음에는 아무 것도 없는 ""으로 했습니다. 

매개변수를 2로 나누어 0인 경우와 그렇지 않은 경우 1에는 각각 0 과 1을 넣습니다. 여기서 숫자를 넣으면 연산을 하는 관계로 "0"으로 문자로붙여넣습니다. 


num=int(input("숫자를 입력하세요:"))
print(num,"을 이진수로 바꾸면:",deciTobin(num),"(2)")

메인에서 숫자를 입력 받아 10진수를 2진수로 바꾸는deciTobin 함수를 호출하여 리턴값을 받아서 출력하면 됩니다.

 

def deciTobin(num):
  binary=""
  while num !=0:
    if num%2==0:
        binary="0"+binary
        num=num//2
    else:
        binary="1"+binary
        num=num//2
  return binary

num=int(input("숫자를 입력하세요:"))
print(num,"을 이진수로 바꾸면:",deciTobin(num),"(2)")
함수 부분과 파일 분리

def deciTobin(num):
  binary=""
  while num !=0:
    if num%2==0:
        binary="0"+binary
        num=num//2
    else:
        binary="1"+binary
        num=num//2
  return binary

함수 부분을 모듈화 하여 따로 파이썬 파일로 만들었습니다. 

def deciTobin(num):
  binary=""
  while num !=0:
    if num%2==0:
        binary="0"+binary
        num=num//2
    else:
        binary="1"+binary
        num=num//2
  return binary

from deciTobin import deciTobin

모듈화한 함수 부분을 호출하는 부분입니다. 


num=int(input("숫자를 입력하세요:"))
print(num,"을 이진수로 바꾸면:",deciTobin(num),"(2)")

from deciTobin import deciTobin

num=int(input("숫자를 입력하세요:"))
print(num,"을 이진수로 바꾸면:",deciTobin(num),"(2)")
728x90
반응형

댓글