-
[Python] 유니코드란? & 활용한 문제 예시(feat.CodeUp : 6,069 평가 입력 받아 다르게 출력하기(py))언어/Python 2024. 4. 17. 08:56
유니코드(Unicode)
전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 국제 표준 문자 인코딩 시스템입니다. 이것은 전 세계의 다양한 문자 집합을 컴퓨터에서 표현하기 위한 표준 방법을 제공하여, 다양한 언어와 문화를 다루는 데 사용됩니다. 간단히 말해서, 유니코드는 문자와 숫자, 기호 등을 컴퓨터에서 표현하는 데 사용되는 규칙의 모음입니다. 이는 다양한 언어의 텍스트를 하나의 시스템에서 처리하고 표시할 수 있게 해줍니다.
ex) A == 65, B == 66,....등등
아래 문제의 출처는 -> https://codeup.kr/problem.php?id=6069
문제 요약
1. 평가를 A, B, C, D, 나머지 문자들 총 5가지로 평가 받는다.
2. 각 평가를 입력 받아 내용을 다르게 출력하는 문제이다.[처음에 시도해본 코드]
a = input() # 사용자로 부터 입력을 받고 / 평가를 5가지 중에 하나로 받고 if a == A: # 만약 A를 입력 받았다면 print("best!!!") # best!!! 를 출력 elif a == B: # B 입력 print("good!!") # good!! 출력 elif a == C : print("run!") elif a==D: print("slowly~") else: # 그 외 문자들일 때 print("what?") # what? 출력
NameError: name 'A' is not defined. Did you mean: 'a'?
코드에서 A를 참조하려고 했지만, A가 정의되지 않았기 때문에 발생한 문제.코드에서 A를 사용하려고 하지만 'A'가 변수나 값으로 정의되지 않았기 때문에 이런 오류가 발생하는 것.
따라서 A는 사실 변수가 아니라 사용자로부터 입력 받은 문자열 이니 문자열로 고쳐보자.
a = input() if a == "A": print("best!!!") elif a == "B": print("good!!") elif a == "C" : print("run!") elif a== "D": print("slowly~") else: print("what?")
A를 변수가 아닌 문자열로 취급하자 오류를 해결할 수 있었다.
사실 위에 나온 방법으로 문제를 풀지 않았고, 나는 유니코드를 통해서 풀었다.
(글을 작성하려고 찾아보다가 알게되었음...)
아래는 유니코드로 푼 풀이이다.
a = ord(input()) # 문자를 입력 받으면 해당하는 숫자로 변환해줌 if a == 65: # A 입력 받으면 -> 65로 치환 따라서 a ==65일 때 print("best!!!") elif a == 66: print("good!!") elif a == 67 : print("run!") elif a==68: print("slowly~") else: print("what?")
+++
유니코드 → 10진수
n = ord(input())
print(n)
그 반대는 10진수 → 유니코드
c = int(input())
print(chr(c)
'언어 > Python' 카테고리의 다른 글
왜 Python에서 `str`타입이 append 메소드를 지원하지 않을까? (0) 2024.05.28 [Python] 당신의 for문에서 map()이 안되는 이유 (0) 2024.04.22 [Python] List Comprehensions이란? (0) 2024.04.22 [Python] print(a and b) 와 print(a & b) 차이 (0) 2024.04.16 [Python] int(input().split()) 가 안되는 이유 (0) 2024.04.16