알고리즘/코드워

[python]get ascii value of character

(ㅇㅅㅎ) 2020. 5. 5. 21:55
728x90
반응형

https://www.codewars.com/kata/55acfc59c3c23d230f00006d/train/python

 

Codewars: Train your coding skills

Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.

www.codewars.com

이 문제는 문자를 하나 입력받으면 그에 해당하는 아스키 십진수 값을 출력하는 것입니다.

 

이 문제가 어려운 것은 아니나 숫자 -> 문자, 문자 -> 숫자, 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