※ 개인 공부기록을 위한 TIL 로그입니다,,,
참고: 코드업 Python 기초 100제 (빠른 시간에 기초 확인하기에 좋은 것 같다) + 내가 개인적으로 공부하다가 메모해둔 것들
map()은 map객체 타입을 반환하므로 list형에 대입시 list()로 감싸 convert 해줘야 함
arr = list(map(int,input().split()))
함수 밖 scope의 전역변수를 함수 안에서 사용하려면, global 키워드를 사용해 선언해주어야 함
g = 0
def foo():
global g
아래와 같은 방법으로 리스트를 선언할 수 있다. (for, if 사용)
보통 2차원 리스트 선언 시 많이 쓰임.
arr = [[0]*10 for _ in range(10)]
arr2 = [list(map(int,input().split())) for _ in range(n)]
arr3 = [x for x in range(1, 10+1) if x % 2 == 0]
arr4 = [ x for x in range(10) if x < 5 if x % 2 == 0 ]
파이썬에서 제공하는 포함 연산자( in, not in )
객체 in (not in) 시퀀스의 형태로 사용 가능 (문자열, 리스트, 튜플, 딕셔너리)
if 'p' in 'python':
print(True)
else:
print(False)
--> 이 링크 참고
input()은 속도가 다소 느리기에, 대량의 데이터를 입력받을 때는 sys.stdin.readline() 을 이용하는 것이 좋음. ( 이유는 모르고 그렇구나~ 했었지만 서치하다보니 누가 설명을 해줬다 -> 참고 )
sys.stdin.readline() 은 input()과 같이 한 라인을 입력받지만, 개행문자와 공백까지 끝에 포함이 되기 때문에 rstrip()까지 해주도록 해야 한다.
import sys
data = sys.stdin.readline().rstrip()
range(끝)
range(시작, 끝)
range(시작, 끝, 증감) #증감이 -1이면 거꾸로 내려옴
우선 리스트를 뒤집는 가장 쉬운 방법은 슬라이싱을 이용하는 것임 (l[::-1]
close = [1,2,3,4,5]
reversed_close = close[::-1]
reverse
는 list가 제공하는 함수.reversed
는 내장함수.--> 이 링크 참고
l = ['a', 'b', 'c']
l.reverse()
print(l) # ['c', 'b', 'a']
l = ['a', 'b', 'c']
list(reversed(l)) # ['c', 'b', 'a']
python에서는 3항 연산을 (?:)가 아니라 아래와 같이 표현함.
c = a if (조건문) else b
print(a if a>b else b)
c = input()
d = {
'A':'best!!!',
'B':'good!!',
'C':'run!',
'D':'slowly~'
}
print(d.get(c,'what?')) # dic.get(a,b) -> dic에서 a의 value를 반환하되
# a에 해당하는 key가 없으면 b를 반환
비트단위 or연산 - a | b
비트단위 xor연산 - a ^ b
filter(a,b) -> 리스트 b에 대해, a(함수)에 해당하는 항목만 필터링해주는 함수.
a에는 lambda가 잘 사용됨.
filter 역시 filter객체를 반환하므로 list()로 감싸 convert해야 한다.
# n까지 3,6,9게임하는 코드...
n = int(input())
for i in range(1,n+1):
c = len(list(filter(lambda x: int(x) == 3 or int(x) == 6 or int(x) == 9, str(i))))
if c > 0:
print('X'*c, end = ' ')
else:
print(i, end = ' ')
# 16진수 구구단 출력하는 코드...
n = int(input(), 16) # 입력받은 문자를 16진수로 인식하여 정수 변환
for i in range(1, 17):
print('%X'%n, '*%X'%i, '=%X'%(n*i), sep='')
# 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
# B*10=B0
문자열에서 인자로 들어온 문자가 있는 인덱스를 찾아 반환하고, 없을 경우 -1을 리턴함.
** 문자열에만 사용할 수 있음!
a = 'hello'
a.find('o')) #4
a.find('o', 1, 3) #-1
# 두번째 인자 - 시작위치
# 세번째 인자 - 끝위치
find()와 비슷하지만, 문자열/리스트/튜플에 사용할 수 있고, 해당하는 값이 없을 경우 ValueError가 발생한다는 점이 다름.
a = 'hello'
a.index('o')) #4
a.index('o', 1, 3) #ValueError
# 두번째 인자 - 시작위치
# 세번째 인자 - 끝위치
python에서는 for-else 용법을 지원하는데,
for문이 중간에 break되지 않고 끝까지 수행되었을 때, else문의 내용이 실행되는 용법이다.