본문 바로가기
파이썬 코드업 기초 100제

파이썬 코드업 기초 4 - 출력변환

by chanfficial 2022. 1. 20.

31. 10진수를 입력받아 8진수(octal)로 출력해보자.

Tip :

  • 8진수는 '0o12'처럼 숫자 앞에 '0o'를 붙여준다. 이것으로 '12'가 8진수의 '12'임을 인지한다.
  • 10진수를 8진수로 변환하는 함수는 oct()이며, '0o12'와 같이 출력되므로 앞 두자리를 생략하고 출력하면된다. 따라서 '0o12'[2:]를 해주면 되는 것.
a = int(input()) # 12 입력
print( oct(a)[2:] ) # 0o12의 앞 두자리를 생략

- 8진수는 '0o12'처럼 숫자 앞에 '0o'를 붙이기 때문에 입력받은 10진수를 oct()를 사용해서 8진수로 변환했을 때 '0o12'가 출력된다. 그래서 앞의 두 자리를 생략한 후 출력하도록 'oct(a)[ 2 : ]를 해준다.

 

 

32. 10진수를 입력받아 16진수(hexadecimal)로 출력해보자.

Tip :

  • 16진수는 '0xa'처럼 숫자 앞에 '0x'를 붙여준다. 이것으로 'a'가 16진수의 'a'임을 인지한다.
  • 10진수를 16진수로 변환하는 함수는 hex()이며, '0xa'와 같이 출력되므로 앞 두자리를 생략하고 출력하면된다. 따라서 '0xa'[2:]를 해주면 되는 것.
hexa = int(input())
print(hex(hexa)[2:])

- 16진수는 '0xa'처럼 숫자 앞에 '0x'를 붙이기 때문에 입력받은 10진수를 hex()를 사용해서 16진수로 변환했을 때 '0xa'가가 출력된다. 그래서  ''hex(hexa)[2:]'로 앞의 두자를 생략하고 출력하도록 했다.

 

 

33. 10진수를 입력받아 16진수(hexadecimal)로 출력해보자.16진수(대문자)로 출력한다.

Tip : 소문자를 대문자로 변환하려면 문자열의 메소드(함수)인 upper()를 이용하면 된다.

a = int(input()) # 10 입력
num = hex(a)[2:]
print(num.upper()) # A 출력

- 먼저 받은 10진수 값을 16진수로 변환하여 앞의 두 자리는 생략하도록 hex(a)[2:]를 하여 다른 변수  num에 저장하고 대문자로 출력하기 위해 num.upper()을 사용하여 출력했다.

 

 

34. 8진수로 입력된 정수 1개를 10진수로 바꾸어 출력해보자.

Tip : 10진수로 변환하고자 할 때는 int()를 이용하면 된다. 첫번째 파라미터로는 변환하고자하는 숫자의 문자열('0o12')을, 두번째 파라미터로는 첫번째 값이 몇 진수인지를 정수로 입력하면 된다.

a = '0o' + input()
print(int(a, 8))

- 8진수는 숫자 앞에 '0o'를 붙이기 때문에 입력받은 숫자 앞에 '0o'를 붙여서 변수 a에 저장한 다음 int()를 이용하여 10진수로 변환해줬다. 

 

 

35. 16진수로 입력된 정수 1개를 8진수로 바꾸어 출력해보자.

Tip : 16진수 >> 10진수 >> 8진수 순서대로 변환

hexa = '0x' + input()
a = int(hexa, 16)
print(oct(a)[2:])

- 16진수는 숫자 앞에 '0x'를 붙이기 때문에 입력받은 숫자 앞에 '0x'를 붙여서 변수 hexa에 저장했다. 그리고 입력받은 16진수를 int()를 사용하여 10진수로 변환한 다음 변수 a에 저장하고 최종적으로 8진수로 변환하기 위해 oct()를 사용하였다. 또 변환된 8진수 앞의 두자리('0o')를 생략하기 위해 [2:]를 사용했다. 

 

 

36. 영문자 1개를 입력받아 아스키 코드표의 10진수 값으로 출력해보자.

아스키 코드란?

  • 문자를 이진수의 7비트로 표현한 것
  • 예 ) A => 1100001

Tip : 문자열에 대응되는 아스키코드를 반환해주는 함수 ord()를 이용하면 된다.

 

1) 정답

askii = ord(input())
print( askii )

2) 내가 쓴 답

char = input()
print(ord(char))

- 입력받은 값을 아스키코드를  반환해주는 함수 ord()를 이용하여 변환한 다음 출력했다.

거기서 거기 아닌가??? 아니라면 죄송..

 

 

37. 10진 정수 1개를 입력받아 아스키 문자로 출력해보자.

askii = chr(int(input()))
print( askii )

- 정수를 문자열로 바꾸는 함수가 뭔지 몰랐다.