입력)

2개의 정수가 공백으로 구분되어 입력된다.

 

출력)

첫 번째 정수에서 두 번째 정수를 뺀 차를 출력한다.

 

정답)

a, b = map(int, input().split())
print( a-b )

 

참고)

  • 수-수는 차(subtraction)가 계산된다.

 

입력)

문자 1개가 입력된다.

 

출력)

그 다음 문자를 출력한다.

 

정답)

a = input()
a = ord(a) + 1 # 유니코드 문자를 '숫자'로 변환
print(chr(a)) # chr()을 통해서 숫자를 유니코드 문자로 변환

 

참고)

  • 숫자는 수를 표현하는 문자로서 '0'은 문자 그 자체를 의미하고, 0은 값을 의미한다.

입력)

정수 1개가 입력된다.

 

출력)

부호를 바꿔 출력한다.

 

정답)

a = int(input())
print(a * -1)

 

참고)

  • 단항(unary) 연산자인 -(negative)를 변수 앞에 붙이면 부호가 반대인 값이 된다.

 

입력)

10진 정수 1개(32~126 범위)가 입력된다.

 

출력)

유니코드 문자로 출력한다.

 

답)

a = int(input())
print(chr(a)) # a에 저장되어 있는 정수 값을 유니코드 문자(character)로 바꿔 출력한다.

 

참고)

  • 입력은 기본적으로 모두 문자열로 입력되는 것이라고 할 수 있다.
  • 따라서, 입력 값이 문자/문자열/정수/실수인지에 따라서 먼저 정확하게 변환시킨 다음에 사용하거나 계산하는 것이 좋다.
  • 예를 들어 123 이 입력 되었다고 한다면, 이건 정수일까? 문자열일까?
  • 조금 생각해보면, 입력된 것만 보고는 그 값이 어떤 데이터인지 알 수 없다는 것을 쉽게 이해할 수 있다.
  • 따라서, 그 입력 값을 어떻게 해석하고 변환할 지에 대해서 명확하게 작성해 주어야 하는 것이다.
  • chr()는 정수값→문자, ord()는 문자→정수값 형태로 바꿔주는 서로 반대 방향으로 바꾸어 주는 기능을 한다.

입력)

유니코드 영문자 1개가 입력된다.

 

출력)

유니코드 값을 10진수로 출력한다.

 

답)

n = ord(input())
print(n)

 

참고)

  • n = ord(input()) # 입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.
  • ord()는 어떤 문자의 순서 위치(ordinal position) 값을 의미한다.
  • 실제로 각각의 문자들에는 연속된 정수 값이 순서에 따라 부여 되어 있다.
  • A : 65, B : 66, C : 67, ...
  • ord(c) : 문자 c를 10진수로 변환한 값
  • 컴퓨터로 저장되고 처리되는 모든 데이터들은 2진수 형태로 정수화 되어야 하는데, 컴퓨터에 문자를 저장하는 방법으로 아스키코드(ASCII Code)나 유니코드(Unicode)가 자주 사용된다.
  • 예를 들어, 영문 대문자 'A'는 10진수 값 65로 표현하고, 2진수(binary digit) 값 1000001로 바꾸어 컴퓨터 내부에 저장한다.
  • 유니코드(unicode)는 세계 여러 나라의 문자를 공통된 코드 값으로 저장할 때 사용하는 표준 코드이다.

입력)

16진 정수 1개가 입력된다.

 

출력)

8진수 형태로 출력한다.

 

답)

a = input() 
a = int(a, 16) # 입력된 a를 16진수로 인식
print('%o'% a) # a에 저장되어 있는 값을 8진수(octal)형태 문자열로 출력

a = int(input(), 16) 도 결과가 같은데 오류가 난다.... 머냐....

 

참고)

  • 8진법은 한 자리에 8개(0 1 2 3 4 5 6 7)의 문자를 사용한다.
  • 8진수 10은 10진수의 8, 11은 9, 12는 10 .. 와 같다

입력)

10진수 1개가 입력된다.

 

출력)

16진수(대문자) 형태로 출력한다.

 

답)

a = int(input())
print('%X'%a) # a에 저장되어있는 값을 16진수 대문자 형태 문자열로 출력

 

참고)

  • 10진수 형태로 입력받고 %X로 출력하면 16진수(hexadecimal) 대문자로 출력된다.
  • 16진법은 영문 소문자를 사용하는 경우에 한 자리에 16개(0 1 2 3 4 5 6 7 8 9 A B C D E F)의 문자를 사용한다.

 

입력)

10진수 1개가 입력된다.

 

출력)

16진수(소문자) 형태로 출력한다.

 

답)

a = int(input()) # 10진수 값으로 변환
print('%x'% a) # a에 저장되어 있는 값을 16진수(hexadecimal) 소문자 형태 문자열로 출력

 

참고)

  • 10진수 형태로 입력받고 %x로 출력하면 16진수(hexadecimal) 소문자로 출력된다.
  • %o로 출력하면 8진수(octal) 문자열로 출력된다.
  • 10진법은 한 자리에 10개(0 1 2 3 4 5 6 7 8 9)의 문자를 사용하고, 16진법은 영문 소문자를 사용하는 경우에 한 자리에 16개(0 1 2 3 4 5 6 7 8 9 a b c d e f)의 문자를 사용한다.
  • 16진수의 a는 10진수의 10, b는 11, c는 12 ... 와 같다.

+ Recent posts