728x90
반응형
https://www.codewars.com/kata/55acfc59c3c23d230f00006d/train/python
이 문제는 문자를 하나 입력받으면 그에 해당하는 아스키 십진수 값을 출력하는 것입니다.
이 문제가 어려운 것은 아니나 숫자 -> 문자, 문자 -> 숫자, 2진수, 8진수 및 16진수에 관해서 정리하겠습니다.
# 숫자 -> 문자
print(chr(65), type(chr(65)))
# 문자 -> 숫자
print(ord('A'), type(ord('A')))
# 숫자를 2진수로 출력
print(bin(ord('A')), type(bin(ord('A'))))
# 숫자를 8진수로 출력
print(oct(ord('A')), type(oct(ord('A'))))
# 숫자를 16진수로 출력
print(hex(ord('A')), type(hex(ord('A'))))
|
출력을 확인하면 아래와 같습니다. 여기서 살펴보면 type이 문자열인 것을 주의해야 합니다.
다른 진수의 문자열을 숫자형으로 변환하는 것도 가능합니다. 결과는 모두 42로 동일합니다.
# 2진수
print(int('0b101010', 2))
# 8진수
print(int('0o52', 8))
# 10진수
print(int('42', 10))
# 16진수
print(int('0x2a', 16))
|
이외에도 format() 내장 함수를 이용하면 접두어(b:2진수, o:8진수, x:16진수 소문자, X:16진수 대문자, d:10진수)를 없앨 수 있습니다.
# 접두어 없애기
print(format(42, 'b'))
print(format(42, 'o'))
print(format(42, 'x'))
print(format(42, 'X'))
print(format(42, 'd'))
# 접두어 포함시키기
print(format(42, '#b'))
print(format(42, '#o'))
print(format(42, '#x'))
print(format(42, '#X'))
print(format(42, '#d'))
|
문제 전체 코드를 보시려면 더보기를 클릭하시면 됩니다.
더보기
get ascii value of character
# My Code
def get_ascii(c):
return ord(c)
if __name__=='__main__':
print(get_ascii("A"))
print(get_ascii(" "))
print(get_ascii("!"))
|
반응형
'알고리즘 > 코드워' 카테고리의 다른 글
[python]Beginner Series #2 Clock (0) | 2020.05.07 |
---|---|
[python]Watermelon (0) | 2020.05.06 |
[python]L1: Bartender, drinks! (0) | 2020.05.04 |
[python]Binomial Expansion (0) | 2020.05.01 |
[python]SpeedCode #2 - Array Madness (0) | 2020.04.28 |