Carambola Dev
파이썬 노트 본문
C나 Java랑 다르거나 기억해야할 부분들 노트 테이킹.
파이썬은 {}대신 indentation(들여쓰기) 사용
a ** b = a의 b 제곱
a // b = a를 b로 나누고 내림
변수 선언 시 데이터 타입 설정 안 해도 됨
x, y, z = 1, 2, 3 이렇게도 가능
변수명은 문자, 숫자, _(underscore)만 사용 가능, 공백 불가, 문자나 _로 시작해야
무조건 소문자만 사용 가능, _로 단어 분리
a ** b = a 제곱 b
a // b = a / b 내림
boolean 타입
True, False 앞글자는 대문자로
String 타입에서 쌍따옴표랑 작은따옴표 둘 다 ok
따옴표 내에서 따옴표 쓰고 싶으면 앞에 백슬래시 붙이기
SyntaxError: invalid syntax
>>> print('hello' * 2)
hellohello
len(): 문자열 길이 나타내는 함수
type(): 데이터 타입 알려주는 함수
islower(): 소문자인지 알려줌, True/False
>>> print("hello me".title())
Hello Me
format() 함수
format(): string 함수, 문장 내에서 {}에 들어갈 문자열을 마음대로 바꿀 수 있음
>>> print("I like {}".format("blue"))
I like blue
"{:nd}".format(): int 자료형 지정, n 칸 맞춰서 출력
"{:0nd}".format(): n칸 맞춰서 남은 칸은 0 채워넣기
"{:n.kf}".format(): float 자료형, n칸 맞춰서 정수부 출력, k칸만큼 소수부 출력
"{0} {1} {2}".format(0, 1, 2)
split(): string 함수, 단어 별로 쪼개줌, 디폴트는 스페이스
작은따옴표 안에 있는 걸로 숫자보다 하나 더 많게 쪼개줌
>>> "hell yeah no nfk".split(' ', 2)
['hell', 'yeah', 'no nfk']
리스트에서 마이너스 부호 사용 가능
>>> months = ['January', 'February', 'March', 'April', 'May']
>>> print(months[-2])
April
데이터 타입 상관없이 한 리스트에 넣을 수 있음
리스트 쪼개기
변수명[lower bound : upper bound]
lower bound는 그 숫자 포함, upper bound는 포함 안 함
처음이랑 끝은 숫자 생략 가능
'~' in '~'
'~' not in '~'
있는지 없는지에 대한 boolean 값
리스트는 mutable, 내용물을 바꿀 수 있다
스트링 뒤에는 스트링만 붙일 수 있음
TypeError: can only concatenate str (not "list") to str
>>> songs = ['one', 'fade', 'bell']
>>> print("songs: " + str(songs))
songs: ['one', 'fade', 'bell']
max() 함수
데이터 타입 섞이면 에러, 숫자일 경우에는 가장 큰 숫자 반환, 문자나 문자열이면 가장 큰 알파벳
del() 함수
원소 삭제 함수
sorted() 함수
작은 데서 큰 순서로 나열, 원 리스트는 변동 없음
join() 함수
원하는 문자열 원소 뒤마다 추가하기
>>> songs = ['one', 'battery', 'enter sandman', 'master of puppets', 'creeping death']
>>> print(", ".join(songs))
one, battery, enter sandman, master of puppets, creeping death
append() 함수
리스트에 원소 추가
insert() 함수
리스트에 원하는 위치에 원소 추가
insert(4, 'hello')
튜플(tuple)
내용물을 바꿀 수 없는 data structure
>>> dimensions = 3, 6, 4
>>> length, width, height = dimensions
>>> print("The dimensions are {} x {} x {}".format(length, width, height))
The dimensions are 3 x 6 x 4
세트
순서가 없고, 내용물을 바꿀 수 있고, 모든 원소가 다 다른 데이터 타입, 중복은 없앰
add() 함수로 원소 추가, pop() 함수로 랜덤 삭제
딕셔너리
원소에 순서 부과, 딕셔너리 안에 딕셔너리 만들 수 있음
>>> animals = {"Pigs": 3, "Sheep": 4}
>>> animals["Dogs"] = 3
>>> print("Dogs" in animals)
True
>>> print(animals.get("Pigs"))
3
>>> floyd = {'piper': ['scarecrow', 'bike', 'flaming', '24'], 'moon': ['time', 'money', 'breathe', 'us']}
>>> print(floyd['piper'][2])
flaming

if 문
if (조건):
시행
elif (조건):
시행
else:
시행
괄호는 없어도 되고, else if를 elif라고 씀, 문단 나타낼 때 중괄호를 안 써서 열 맞춰서 써야 함
'&, ||, ~' 기호 대신 'and, or, not'으로 씀
파이썬에서 False인 값
0, 0.0, 0j, Decimal(0), Fraction(0, 1), None, False, "", (), [], {}, set(), range(0)
for 루프
members = ['guitarist', 'drummer', 'bassist', 'singer']
for member in members:
print(member)
range() 함수
range(start = 0, stop, step = 1)
start는 처음 숫자, stop은 원하는 마지막 숫자 + 1이고 항상 정의해야, step은 순서 사이의 차이
팩토리얼 구현
<for 루프로>
number = 6
result = 1
yay = 1
for i in range(1, number, 1):
yay += 1
result *= yay
print('result = {}'.format(result))
<while 루프로>
number = 6
result = 1
yay = 1
while yay < number:
yay += 1
result *= yay
print('result = {}'.format(result))
break와 continue
continue는 루프 반복 하나를 스킵
zip() 함수
원소를 튜플로 합하기
enumerate() 함수
열거, 몇 번째 순서인지 열거해줌
list comprehension
리스트 내에 조건문 넣을 수 있음
함수 선언
def 함수이름(변수, 변수 = n(default argument)):
내용~
return ~~ (return 여러 개 가능 - tuple 형태로 리턴됨)
함수 부르기
함수이름(n, n) or 함수이름(변수 = n, 변수 = n)
주석 처리
한 줄은 '#'
여러 줄은 앞뒤로 따옴표 아무거나 세 개
람다 함수
함수명 = lamda 변수, 변수: 내용
input() 함수
string 변수 입력하기, 정수나 실수 원하면 int(input()) / float(input())
eval() 함수
string을 파이썬 코드처럼 인식
try except
try:
실행할 코드
except:
try 실패했을 때 실행할 코드
finally:
어떤 상황에서든 실행할 코드, except 블록에서 에러나도 이거 실행되고 프로그램 멈춤
파일 열기
f = open('파일 위치', 'r') r은 온리 읽기, w는 쓰기
file_data = f.read()
f.close()
with open('my_path/my_file.txt', 'r') as f:
file_data = f.read()
자동으로 파일 닫아줌
다른 파일 사용하기
import 파일이름 as 새로운 이름
약칭.함수() or 파일이름.함수()
if __name__ == "__main__"
이 프로그램이 메인 프로그램인지 확인
module로부터 함수 불러오기 from 모듈이름 import object_name as 새로운이름
여러 개도 가능, from 모듈이름 import object_name, object_name
generator
yield로 값을 한 번에 하나씩 리턴하게 해줌, 불려질 때마다 끝났던 곳에서 시작함
이차원 리스트 쓰는 방법
student = [[]]
x = int(input())
for n in range(x):
name = input()
score = float(input())
student[n].append(name)
student[n].append(score)
student.append([])
한 줄로 여러 변수 입력받기
x = map(int, input().split())
x를 리스트로 바꾸기
a = []
a = list(x)
소수점 원하는대로
format(x, '.5f')
Raw strings
escape characters, blackslash 무시
문자열 앞에 r 붙이기
Multiline strings
앞뒤로 따옴표 3 개, 문자열 내에서 엔터 쳐도 괜찮음
lo = """hello
hello
hello"""
print(lo)
>>>hello
hello
hello
string format
name = 'john'
print('hello %s' % (name))
>>>hello john
print("%10s" %'~'): 열 칸 맞춰서 출력
한 줄에 띄어쓰기로 여러 개 입력 받기
숫자: a, b = map(int, input().split())
문자: a, b = input().split()
한 줄에 띄어쓰기로 리스트에 바로 집어넣기
L = [int(n) for n in input().split()]
in 써서 문자열 인식
if last in "02468":
print("even")
if last in "13579":
print("odd")
'Computer Science' 카테고리의 다른 글
| access denied for user 'root'@localhost' 에러 (0) | 2021.01.04 |
|---|---|
| ubuntu 서버 하나에서 dev/prod 서버 따로 구축하기 (0) | 2020.08.30 |
| Shell (0) | 2020.03.16 |
| 깃 & 깃허브 도서 요약 (0) | 2020.03.14 |
| IntelliJ 노트 (0) | 2020.03.13 |