Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

Carambola Dev

파이썬 노트 본문

Computer Science

파이썬 노트

carambola 2020. 1. 18. 12:41

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