영문자 1개를 입력받아 그 다음 문자를 출력해보자. 영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다. Tip:: 아스키 코드를 이용하면 된다. 'A' == 97(1000001), 'B' == 98(1000010) 이므로 아스키 코드로 변환된 숫자에 1을 더한 뒤 아스키 문자로 재변환 해주면 된다. x = input() ascii = ord(x) + 1 print(chr(ascii)) 영문자를 입력받을 때는 문자열로 받으므로 형변환을 하지않는다. 아스키 코드를 이용해 입력값을 정수로 바꾼 후 1을 더하고, 다시 문자로 바꿔 출력한다. order = ord(input()) print( chr(order+1) )
정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자. 실제 문제에서는 굉장히 넓은 정수 범위의 데이터형을 요구하는 문제이나 파이썬에서는 int()로 처리가 가능하다. 예를 들어 C에서 unsinged int보다도 크며 unsinged long과 같은 범위를 지니고 있다고 한다. x, y = map(int, input().split()) print(x + y) 입력받은 두 수는 정수이므로 map 함수로 형변환을 해주고 두 변수에 저장한다. 출력할 때 두 변수를 더한다. a, b = map(int, input().split()) print( a+b )
영문자 1개를 입력받아 아스키 코드표의 10진수 값으로 출력해보자. 아스키 코드란? 문자를 이진수의 7비트로 표현한 것 예 ) A => 1100001 Tip:: 문자열에 대응되는 아스키코드를 반환해주는 함수 ord()를 이용하면 된다. x = input() print(ord(x)) 문자를 정수로 반환해주는 ord 함수를 사용한다. askii = ord(input()) print( askii ) ord 함수 ord(문자) 문자를 해당 문자의 유니코드 정수로 반환하는 함수 chr 함수 chr(정수) 정수를 해당 정수의 유니코드 문자로 반환하는 함수
16진수로 입력된 정수 1개를 8진수로 바꾸어 출력해보자. Tip:: 16진수 >> 10진수 >> 8진수 순서대로 변환 x = '0x' + input() integer = int(x, 16) octal = oct(integer) print(octal[2:]) x에 16진수를 저장하고 10진수로 변환한 뒤 8진수로 다시 변환한다. x는 문자열이지만 int 함수에 16진수라고 적어주었으므로 진수를 인식하여 변환한다. 8진수 앞 두자리는 빼고 출력하므로 범위를 적어준다. hexadecimal = '0x' + input() integer = int(hexadecimal, 16) print( oct(integer)[2:] )
8진수로 입력된 정수 1개를 10진수로 바꾸어 출력해보자. Tip:: 10진수로 변환하고자 할 때는 int()를 이용하면 된다. 첫번째 파라미터로는 변환하고자하는 숫자의 문자열('0o12')을, 두번째 파라미터로는 첫번째 값이 몇 진수인지를 정수로 입력하면 된다. n = oct(input()) print(int(n)) 8진수로 입력받는 식을 작성하지 못했다. 10진수로 변환하는 법을 몰랐다. octal = '0o' + input() print( int(octal, 8) ) octal 변수에는 문자열이 들어가지만, int 함수를 쓸 때 몇 진수인지 적으면 어떤 진수인지 인식하므로 10진수로 반환해준다.
10진수를 입력받아 16진수(hexadecimal)로 출력해보자. 16진수(대문자)로 출력한다. Tip:: 소문자를 대문자로 변환하려면 문자열의 메소드(함수)인 upper()를 이용하면 된다. n = int(input()) print((hex(n).upper())[2:]) 32번 문제와 같고, 16진수를 대문자로 바꿔주는 upper 함수를 사용한다. hexadecimal = int(input()) hexConv = hex(hexadecimal)[2:] print( hexConv.upper() ) 풀이에서 출력에 한꺼번에 썼는데 알아보기 편하게 나누었다. upper 함수 string.upper() 바꾸고자 하는 문자열을 대문자로 바꿔주는 함수