a, b =input().split() : 공백을 기준으로 입력된 값들을 나누어 자른다.
n = ord(input()) : 입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.
a = bool(int(input())) : 한 단계씩 계산/처리/평가
xor
a, b = input().split()
c = bool(int(a))
d = bool(int(b))
print((c and (not d)) or ((not c) and d))
숫자인지 판단할 때
변수.isdigit()
16 진수 입력 하기
n = int(input(), 16)
n = int(input())
: 개수를 입력받아 n에 정수를 저장
a = input().split()
: 공백을 기준으로 잘라 a에 순서대로 저장
map을 사용하여 정수로 변환하기 (실수일 때는 float)
a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
map을 사용하여 입력받은 값을 콤마를 기준으로 분리하기
a, b = map(int, input('숫자 두 개를 입력하세요: ').split(',')) # 입력받은 값을 콤마를 기준으로 분리
map을 사용하여 입력받은 값을 list로 저장하기
list_array = list(map(int,input().split()))
## 2차원 배열, list에 저장
array = [[0] * 20 for i in range(20)]
for i in range(1,20):
array[i] = list(map(int,input().split()))
2차원 배열 입력받기
array = [[0 for col in range(11)] for row in range(10)]
array = [[0]*11 for i in range(10)]
2차원 배열 [1][1] ~ [20][20]
까지 입력받기
list_data = [[0] * 20 for i in range(20)]for i in range(1,20): list_data[i][1:20] = list(map(int,input().split()))
00010
와 같은 배열 입력받은 후 2차원 배열에 숫자로 저장하기
n, m = map(int,input().split())graph = []for i in range(n): graph.append(list(map(int, input())))print(graph)
2차원 배열을 사용할 때, 행의 길이는 지정, 열의 길이는 입력할 때마다 늘리기
n, m, k, x = map(int,input().split())graph = [[] for _ in range(n+1)]for i in range(m): a, b = map(int, input().split()) graph[a].append(b) # a번째 행의 열의 길이 늘어남
2차원 배열문자열 입력받기
n = int(input())list_arr = []for i in range(n): list_arr.append(list(input().split()))print(list_arr)
똑같은 문자 여러 번 출력하기
w, n = input().split()print(w*int(n))
in, not in
# 1. 문자열if 'p' in 'python': print(True)else: print(False)-------------------------Trueif 'k' not in 'python': print(True)else: print(False)-------------------------True# 2. List############## in ##############if 'a' in ['a','b','c']: print(True)else: print(False)--------------------------------True############## not in ##############if 'd' not in ['a','b','c']: print(True)else: print(False)-------------------------------- True# 3. Tuple############# in #############if 'a' in ('a','b','c'): print(True)else: print(False)-------------------------True############# not in #############if 'd' not in ('a','b','c'): print(True)else: print(False)-------------------------True# 4. 딕셔너리########### in ###########if 'a' in {'a':1,'b':2}: print(True)else: print(False)---------------------------True########### not in ###########if 'c' not in {'a':1,'b':2}: print(True)else: print(False)---------------------------False
ord, str
ord : 영문자 1개를 숫자로 변환하기
str : 숫자를 영문자 1개로 변환하기
문자열.isalpha()
문자열 합치기
문자열 += "".join(문자열)
문자열 나누기
str = "Hi my name is limcoing"splitted_str = str.split()
문자열에서 만난 오류
TypeError: 'str' object does not support item assignment
파이썬에서 문자열 수정이 불가능하다.
S = 'hi hello'S[0] = 'p'# 결과# TypeError: 'str' object does not support item assignment
문자열은 수정이 불가능한 자료구조이며, 튜플 또한 해당된다.
수정이 불가능한 자료구조를 immutable type이라고 한다.
수정이 불가능한 자료구조를 수정하려면 type을 변경해야한다.
1) 리스트로 변환하여 수정
S = 'hi hello'S = list(S)S[0] = 'p'
//
/
%
print(format(a,".2f"))
비트 단위 not 하여 출력하기
비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력
~ : tilde, 틸드
& : ampersand(and), 비트단위 연산자
~n = -n - 1-n = ~n + 1n = input()print(~int(n))print(3&5)
비트 단위 연산자
xor : ^
or : |
1) 한 줄로 두 변수 중 큰 값 반환
c = (a if (a>=b) else b)
2) 가장 작은 값
min(a,b,c)
3) 짝수만 출력하기
None : 빈 값, null
def odd(n): if n % 2 == 0: return na, b, c = input().split()a = int(a)b = int(b)c = int(c)if odd(a) != None: print(a)if odd(b) != None: print(b)if odd(c) != None: print(c)
1) range
2) sep=''
3) 이차원 배열 list 만들기
d = [] # 대괄호 []를 이용해 아무것도 없는 빈 리스트 만들기for i in range(20): d.append([]) # 리스트 안에 다른 리스트 추가해 넣기 for j in range(20): d[i].append(0) # 리스트 안에 들어있는 리스트 안에 0 추가해 넣기n = int(input())for i in range(n): x, y = input().split() d[int(x)][int(y)] = 1for i in range(1, 20): for j in range(1, 20): print(d[i][j], end=' ') # 공백을 두고 한 줄로 출력 print()
array = [[0] * 11 for i in range(10)]
한 줄에 여러 숫자가 입력되어 있을 때, List에 저장하기
n = int(input())list_data = []list_data = input().split()print(list_data[0])# 입력받은 수 정렬하기list_data.sort()
list 길이 알고 싶을 때, len(list)
여러 개 입력 받고 한 번에 list 형식 int형으로 변형하기
list_array = [int(x) for x in input('정수를 여러개 입력하세요 : ').split()]print(list_array)
def rotate_a_matrix_by_90_degree(a): n = len(a) # 행 길이 계산 m = len(a[0]) #열 길이 계산 result = [[0]*n for _ in range(m)] # 결과 리스트 for i in range(n): for j in range(m): result[j][n-i-1] = a[i][j] return result
mutable : 변경 가능 (객체의 상태를 변경할 수 있음)
Immutable : 변경되지 않는 객체 (객체의 상태를 변경할 수 없음)
mutable
def updateList(list1): list1 += [10]n = [5, 6]print(id(n)) # 140312184155336updateList(n)print(n) # [5, 6, 10]print(id(n)) # 140312184155336
Immutable
def updateList(n): print(id(n)) n += 10b = 5print(id(b)) # 10055680updateNumber(b) # 10055680print(b) # 5
mutable : call by reference를 주로 사용
immutable : pass by value를 주로 사용
전역변수
함수 밖의 전역 공간에서 선언된 변수
함수 안에서 참조가 가능하지만 변경은 하지 못한다.
a = 5def sum(): print(a) sum()a = 5def sum(): a = 10 print(a) sum()print(a)# 결과# 10# 5
지역변수
함수의 안에서 생성되는 변수
해당 지역을 벗어날 때 메모리에서 제거되므로 외부에서 참조를 할 수 없는 변수이다.
def test(): a = 10print(a) # NameError : name is not defined
global
함수안에서도 전역변수의 값을 수정할 수 있도록 해준다.
a = 10def sum(): global a a = 5sum()print(a)# 결과# 5
함수 안에서 전역변수를 생성할 수도 있다.
def sum(): global a a = 5sum()print(a)# 결과# 5
일차원 배열 선언할 때
q = deque([1])print(q.popleft()) # 1
참고 자료