-
파이썬을 파이썬답게_1Python 2019. 9. 30. 11:33
프로그래머스의 파이썬을 파이썬답게 라는 강의를 보고 정리한 글이다.
몪과 나머지 - divmod
두개의 수가 주어지고 몫과 나머지를 구해야 할때가 있다.
ex) 7을 3으로 나눈 몫과 나머지 구하기
- 일반적으로
a = 7 b = 3 print(a//b, a%b) # 2 1
방법으로 몫과 나머지를 계산 할 수 있다.
그런데
- 파이썬에는 divmod라는 것이 있는데
a = 7 b = 3 print(divmod(a, b)) # (2, 1) print(*divmod(a, b)) # 2 1
* 를 이용한 unpacking과 같이 사용하여 코드를 작성 할 수 있다.
-
무조건 divmod를 사용하는 것이 좋은 방법은 아니다.
-
가독성이나 스타일에 따라서 첫번째 방법을 사용할 수도 있는데 divmod는 큰 숫자를 다룰때 좀 더 속도가 빠르다.
n진법으로 표기된 string을 10진법 숫자로 변환하기 - int함수
-
입력
12 3 444 5
-
출력
5 124
-
내가 작성한 코드
num, base = map(int, input().strip().split(' ')) res = 0 n = -1 while num >= 10: n += 1 num, rest = divmod(num, 10) res += (rest*(base**n)) n += 1 res += (num*(base**n)) print(res)
-
for문과 enumerate를 이용한 코드
num, base = input().split() base = int(base) answer = 0 for idx, i in enumerate(num[::-1]): answer += int(i) * ( base ** idx ) print(answer)
-
파이선의 int함수를 이용한 코드
num, base = input().split() base = int(base) answer = int(num, base) print(answer)
int에 관한 공식 문서
문자열 정렬하기
-
예시
'abc ' # 좌측정렬 ' abc' # 우측 정렬 ' abc ' # 가운데 정렬
-
입력
# 문자열s 자연수n abc 7
- 출력
abc abc abc
-
내가 작성한 코드
s, n = input().strip().split(' ') size = int(n) - len(s) size_half = size//2 print(s + ' '*size) print(' '*size_half + s + ' '*size_half) print(' '*size + s)
-
파이썬의 ljust, center, rjust 메소드를 이용한 코드
s, n = input().strip().split(' ') n = int(n) l = s.ljust(n) # 좌측 정렬 c = s.center(n) # 가운데 정렬 r = s.rjust(n) # 우측 정렬 print(l) print(c) print(r)
알파벳 출력하기
0을 입력하면 소문자 알파벳, 1을 입력하면 대문자 알파벳을 사전 순으로 출력
-
입력
0 1
-
출력
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
-
내가 작성한 코드
num = int(input().strip()) word = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" if num: print(word) else: print(word.lower())
-
파이썬에서는 알파벳을 상수(constants)로 미리 정의 해 뒀다.(참고)
import string lower = string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz upper = string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ letters = string.ascii_letters #대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ digits = string.digits # 숫자 0123456789 print(lower) print(upper) print(letters) print(digits) # abcdefghijklmnopqrstuvwxyz # ABCDEFGHIJKLMNOPQRSTUVWXYZ # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ # 0123456789
이어서
2019/11/22 - [Python] - 파이썬을 파이썬답게_2
파이썬을 파이썬답게_2
원본을 유지한채 정렬된 리스트 구하기 - sorted 파이썬의 sort() 함수를 사용하면 리스트의 원소를 정렬할 수 있다. sort 함수는 원본의 순서를 변경 시킨다. deep copy와 sort 함수 이용 list1 = [4, 3, 2, 1] l..
dev-lagom.tistory.com
'Python' 카테고리의 다른 글
파이썬을 파이썬 답게_3 (0) 2019.11.29 파이썬을 파이썬답게_2 (0) 2019.11.22 [Python] zip() 함수 (0) 2019.09.10 Python Anaconda 가상환경 설정하기 (0) 2019.08.29 SyntaxError: Non-ASCII Character 관련 에러 (0) 2019.08.12