본문 바로가기
Etc./Python

[Python] int 함수

by ahj 2021. 10. 9.

입력된 정수를 몇진수로 바꾸는 함수가 for문을 이용하는것이 아니라 아주 간단한 int 함수로 가능했다.

def num_base(num, base):
    num_str=str(num)
    num_list=[]
    for _ in range(len(num_str)):
        num_list.append(num%10)
        num=num//10
    val = 0
    for i, n in enumerate(num_list):
        val+=n*(base**i)
    return val
        
num, base = map(int, input().strip().split(' '))
print(num_base(num, base))

내가 짠 처참한 코드... 보통의 for문 돌리는 거랑 비교해봐도 최악이다.

num, base = map(int, input().strip().split(' '))
num=str(num)
answer = 0
for idx, number in enumerate(num[::-1]):
    answer += int(number) * (base ** idx)
print(answer)

이렇게라도 짰어야 됐는데... 정말 바보가 따로 없다.

난 결국 숫자로 쓰인 문자열을 int화 시킬 생각도(모르는게 아니면서도) 못했고

밑에 위키독스에 나오는 list에서 사용하는 step(::)도 쓸줄 몰랐다..

list[::-1] 이렇게 써주면 reverse되는 구나

https://wikidocs.net/16037

 

11. List(리스트)(2) - 리스트 인덱싱, 리스트 슬라이싱

## 1.list indexing(리스트 인덱싱) - 파이썬에서 리스트 인덱싱은 `-`(음수 인덱싱) 값도 허용합니다. - `-` 값은 역순으로도 인덱싱됩니다. - 다른 ...

wikidocs.net

암튼 별로 쓰고 싶지 않은.. for문 대신

num, base = map(int, input().strip().split(' '))
int(num, base)

이토록 간단하고 아름다운 코드라니... 공부하자

'Etc. > Python' 카테고리의 다른 글

[Python] string 모듈  (0) 2021.10.09
[Python] 문자열 정렬  (0) 2021.10.09
[Python] 몫과 나머지 - divmod, unpacking  (0) 2021.10.09
[Python] 파이썬을 파이썬 답게 시작  (0) 2021.10.09
[Python] 상속, list, dict comprehension  (0) 2021.10.08

댓글