Search
Duplicate

코테 Python 문법 정리

Created
2023/10/10 10:25
Tags

코테 Python 문법 정리

전역변수

a = 0 def func(): global a a += 1
Python
복사

자료형

실수형
지수 표현 방식 제공
최단경로 문제에서 가능한 최대값이 10억 미만일 때 자주 사용
a = 1e9 # 10^9 표현
Python
복사

산술연산자

나누기
# 나머지 구하기 x = 10 % 3 # 몫 구하기 y = 10 // 3 # 나누기 -> 실수로 변환 z = 7 / 3
Python
복사
거듭제곱
x = 2**3 # 8
Python
복사

문자열

1.
문자열 반복
hi = '안녕'*5
Python
복사
2.
문자열 formatting
% 이용
height = 172.5 a = '키는 %.2f입니다.' % height print(a) # 키는 172.5입니다.
Python
복사
str.format
→ 자료형 몰라도 가능
test = 'Hello {}'.format('HJ') print(test)
Python
복사
자릿수 맞추기
year = 2023 month = 10 day = 11 a = '%d-%02d-%02d' % (year, month, day) print(a)
Python
복사
역순 출력
# 방법 1 def strReverse1(string): return string[::-1] # 방법 2 def strReverse(string): return reversed(string) in_string = input('문자열을 입력하세요: ') result = strReverse(in_string) print(''.join(result))
Python
복사
비교
# 완전 일치 if str1 == str2: # 부분 일치 if str1 in str2: # 전방 일치 if str1.startswith(str2): # 후방 일치 if str1.endswith(str2):
Python
복사

화면 출력

1.
separator
각 항목 사이의 문자 정의
year = 2023 month = 3 day = 5 print(year, month, day, sep = '/') # 2023/3/5
Python
복사
2.
end
출력 내용의 마지막에 들어갈 문자열
a = 'Hello' print(a, end='') # Hello
Python
복사

입력

input()
유저로부터 한줄 읽어들이고 문자열 변환 후 추가 strip
name = input('이름을 입력하세요: ') print('%s님 반감습니다.' % name)
Python
복사
입출력 빠르게 하기
사용자의 입력만을 받는 buffer를 하나 만들어 그 buffer에서 읽어들임
맨 끝의 개행문자까지 같이 입력받음
import sys input = sys.stdin.readline
Python
복사

조건문

조건부 표현식
score = 85 result = "Success" if score >= 80 else "Fail"
Python
복사
a = [1, 2, 3, 4, 5, 5, 5] remove_set = {3, 5} result = [i for i in a if i not in remove_set] print(result) # [1, 2, 4]
Python
복사

반복문

1.
range(end)
‘0 ~ end-1’ 의 정수 범위(1씩 증가)의 값을 가진다.
2.
range(start, end)
start ~ end-1 의 정수 범위(1씩 증가)의 값을 가진다.
3.
range(start, end, 증가값)
start ~ end-1 의 정수 범위를 갖는데, 각 정수 사이의 간격은 증가값에 의해 결정된다.
4.
range(start, end, 감소값)
감소값, 즉 음수의 값을 가지는 경우 범위는 start ~ end+1 이 된다.

리스트

index(a)
리스트 요소 a의 인덱스 값 return
# 뒤에서 첫 번째 print(a[-1]) # 뒤에서 세 번째 print(a[-3])
Python
복사
pop(x)
x 번째 인덱스의 요소를 리스트에서 삭제
insert(x, y)
x 번째에 y 추가
remove(a)
리스트에서 값 a를 가진 요소 삭제
→ 여러개면 하나만
count(a)
리스트에서 값 a를 가지는 원소 개수
a = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] x = a.index(30) print(x) # 2 a.pop(x) print(a) # [10, 20, 40, 50, 60, 70, 80, 90, 100] a.remove(90) print(a) # [10, 20, 40, 50, 60, 70, 80, 100] a.clear() print(a) # []
Python
복사
sort()
리스트의 오름차순 정렬
내림차순은 reverse = True 이용
list = [-7, 1, 5, 8, 3, 9, 11, 13] list.sort() print(list) # [-7, 1, 3, 5, 8, 9, 11, 13] list.sort(reverse = True) print(list) # [13, 11, 9, 8, 5, 3, 1, -7]
Python
복사
List comprehension
array = [i for i in range(20) if i % 2 == 1] array = [] for i in range(20): if i % 2 == 1: array.append(i)
Python
복사
→ List comprehension 이용해 2차원 리스트 초기화
n = 3 m = 4 array = [[0] * m for _ in range(n)] # [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
Python
복사
- ?
반복을 수행하되 반복을 위한 변수값을 무시할 때

튜플

튜플과 리스트
튜플은 소괄호 () 사용, 요소의 수정/삭제 불가능
→ 리스트에 비해 공간효율적, 각 원소의 성질이 다를 때 주로 사용
# tuple의 존재 자체를 완전히 삭제 del tuple
Python
복사

딕셔너리

key와 value로 구성
members = {'name': 'HJ', 'age': 28, 'nickname': 'Teed'} # 접근 print(members['name']) # HJ
Python
복사
추가, 수정, 삭제 가능
관련 함수
key_list = data.keys() value_list = data.values()
Python
복사
for문 활용
phones = {'아이폰 15': 2023, '아이폰 14': 2022, '아이폰 13': 2021, '아이폰 12': 2020} print(phones) for phone in phones: print('%s -> %s' % (phone, phones[phone])) print(len(phones))
Python
복사
정렬
fruits = {'apple': 2, 'banana': 1, 'pear': 2, 'melon': 0, 'plum': 1} # key 기준 정렬 res = sorted(fruits) print(res) # ['apple', 'banana', 'melon', 'pear', 'plum'] # value 기준 정렬 res = sorted(fruits, key=lambda k : fruits[k]) print(res) # ['melon', 'banana', 'plum', 'apple', 'pear']
Python
복사

집합

특징
중복 허용X, 순서X
초기화
data = set([1, 2, 3, 4, 5]) data = { 1, 2, 3, 4, 5 }
Python
복사
연산
합집합, 교집합, 차집합 제공
a = set([1, 2, 3, 4, 5]) b = set([3, 4, 5, 6, 7]) print(a|b) # {1, 2, 3, 4, 5, 6, 7} print(a&b) # {3, 4, 5} print(a-b) # {1, 2}
Python
복사
관련함수
data = set([1, 2, 3]) data.add(4) print(data) # {1, 2, 3, 4} data.update([5, 6]) print(data) # {1, 2, 3, 4, 5, 6} data.remove(3) print(data) # {1, 2, 4, 5, 6}
Python
복사

함수

n개의 매개변수
매개변수의 개수 정하지 않는다.
def average(*scores): sum = 0 for i in range(len(scores)): sum += scores[i] avg = sum / len(scores) print('%d과목의 평균: %.2f' % (len(scores), avg)) average(80, 90, 100) #3과목의 평균: 90.00 average(75, 80, 94, 78) # 4과목의 평균: 81.75 average(80, 73, 76, 86, 82) # 5과목의 평균: 79.40
Python
복사
할당에 의한 호출 (Call by Assignment)
함수 호출 시 전달되는 값이나 변수의 데이터 형에 따라 자동으로 call by value나 call by reference 선택
# call by value def func(X): x = 100 print('func(): x = ', x, ', id = ', id(x)) x = 10 print('메인: x = ', x, ', id = ', id(x)) # 메인: x = 10 , id = 140596947851856 func(x) # func(): x = 100 , id = 140596948043216 print('메인: x = ', x, ', id = ', id(x)) # 메인: x = 10 , id = 140596947851856
Python
복사
id()
# call by reference def func(x): x[0] = 100 print('func(): x = ', x, ', id = ', id(x)) x = [1, 2, 3] print('메인: x = ', x, ', id = ', id(x)) # 메인: x = 10 , id = 140207078906448 func(x) # func(): x = 100 , id = 140207079097808 print('메인: x = ', x, ', id = ', id(x)) # 메인: x = 10 , id = 140207078906448
Python
복사
람다 함수
lambda 매개변수 1, 매개변수 2, ... : 수식
Python
복사
f = lambda x, y, z: x + y + z print(f(10, 20, 30)) # 60 def mul(n): return lambda x: x * n g = mul(3) h = mul(5) print(g(10)) # 30 print(h(10)) # 50
Python
복사
전역변수
global 이용해 선언
파일 쓰기
file = open('sample.txt', 'w', encoding='utf-8')
Python
복사
파일 모드
r : 읽기 모드 - 파일을 읽을 때 사용
w: 쓰기 모드 - 파일에 내용을 쓸 때 사용
해당 파일이 존재하지 않으면, 새로운 파일을 열고, 해당 파일이 존재하면 파일을 쓸 때 기존 파일의 내용에 덮어씀
a: 추가 모드 - 기존의 파일에 새로운 내용을 추가할 때 사용

파이썬의 객체지향

class Member: def __init__(self, name, age): self.name = name self.age = age def showMember(self): print('이름: %s' % self.name) print('나이: %d' % self.age) mem1 = Member('HJ', 28) mem1.showMember() # 이름: HJ # 나이: 28 mem2 = Member('NM', 20) mem2.showMember() # 이름: NM # 나이: 20
Python
복사
상속
class Animal: def __init__(self, name): self.name = name def printName(self): print(self.name) class Dog(Animal): def __init__(self, name, sound): super().__init__(name) self.sound = sound def printSound(self): print(self.sound) dog1 = Dog('행복이', '멍멍!') dog1.printName() # 행복이 dog1.printSound() # 멍멍!
Python
복사