16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
영일이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.
A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')
print('%X'%n) #n에 저장되어있는 값을 16진수(hexadecimal) 형태로 출력
작은 따옴표 2개를 사용해서 print(..., sep='') 으로 출력하면, 공백없이 모두 붙여 출력된다.
작은 따옴표 2개 '' 또는 큰 따옴표 2개 "" 는 아무 문자도 없는 빈문자열(empty string)을 의미한다.
B
B*1=B
B*2=16
B*3=21
B*4=2C
B*5=37
B*6=42
B*7=4D
B*8=58
B*9=63
B*A=6E
B*B=79
B*C=84
B*D=8F
B*E=9A
B*F=A5
n = int(input(), 16)
for i in range(1, 16):
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')
hex = int(input(), 16)
for n in range(1, 16):
result = hex * n
print('%X'%hex, '*', '%X'%n, '=', '%X'%result, sep="")
input(): 프롬프트를 띄워서 사용자의 입력 받을 수 있게 해준다.
(단, 입력 받은 것은 문자열로 저장된다. print(type()))으로 type() 괄호 안에 변수를 넣고 찍으면 정수인지, 문자열인지, 무슨 타입인지 확일 할 수 있다!)
int(n): 위의 input()에서 말했듯이 input으로 받은 값은 문자열로 저장된다.
산술을 하기 위해, 문자열을 정수로 변환시켜주는 int()를 써서 변환시켜준다.
int(n, 16): int(n)에서 콤마(,)하고 16을 쓰면 10진수가 아닌 16진수로 인식된다.
'%X'%n: '%X'%쓰고 n자리에 16진수가 담겨있는 변수를 쓰면 10진수 표현에서 16진수로 표현으로 변형된다.
for문: 반복을 데이터가 남을 때까지 밑에 내용 계속 반복 실행!
for i in 데이터:
(들여쓰기칸) 실행문
ex)
for i in [1, 2 ,3]:
print(i)
출력: 1
2
3
데이터에는 iterable이 들어갈 수 있다.
range(): 괄호 안에 들어가는 숫자만큼의 수열을 표현해준다.
range(3) -> 0, 1, 2 (0부터 3직전까지 표현)
range(1, 3) -> 1, 2 (1부터 시작해서 3직전까지 표현)
range(1, 3, +2) -> 1 (1부터 시작해서 2씩 늘려가서 3직전까지 표현. (1 + 2는 3이므로 3직전까지 표현))
print(): 괄호 안의 내용을 출력!
sep="": print() 내용들의 콤마(,)자리에 공백이 생기는데 그곳을 쌍따옴표("")의 내용으로 채워준다.
입력: print(a, b, c)
출력: a b c
입력: print(a, b, c, sep="-")
출력: a-b-c