본문 바로가기
[스파르타코딩클럽]데이터분석 과정/PYTHON

[Python] 점프 투 파이썬 (복습 차원)

by doo_ 2024. 1. 8.

잊을 것 같은 내용들을 정리해봤다.

 

[ 문자열 ]

\n  줄바꿈 \t \\ \를 그대로 표현 \' or " ' or " 그대로 표현

 

> 인덱스 a[ n ] / 슬라이싱 a[ n : m : h ]

* 슬라이싱할 때 n <= x < m 이라는 점 주의, h는 기준 if  h = 2라면 2씩 증가

 

[ 문자 포매팅 ]

%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체)
>>> "I eat %f apples." %X 
'I eat 3 apples.'

- 소수점 표현

>>> "%0.4f" % 3.42134234
'3.4213'

- - 정렬하기

>>> "{0:^10}".format("hi")
'    hi    '
>>> "{0:=^10}".format("hi")
'====hi===='
>>> "{0:!<10}".format("hi")
'hi!!!!!!!!'

> format함수를 활용한 포매팅

>>> "I eat {0} apples".format(X)
'I eat 3 apples'

# 값이 2개 이상일 때
>>> number = 10
>>> day = "three"
>>> "I ate {0} apples. so I was sick for {1} days.".format(number, day)
'I ate 10 apples. so I was sick for three days.'

 

> F-string

>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'

> 문자열에 쓰이는 함수

- count / find / index

- join

>>> ",".join('abcd') or join(['a', 'b', 'c', 'd'])
'a,b,c,d'

- strip : 공백 제거

- replace, split

 

[리스트]

> pop() : 맨 뒤에 있는 값을 삭제

> count(x) : 리스트에 포함 된 'x' 개수 구하기.

> extend(list) : list 1 + list 2와 같다.

>>> a = [1, 2, 3]
>>> a.extend([4, 5])
>>> a
[1, 2, 3, 4, 5]

 

[튜플]

> 리스트와 가장 큰 차이점 : 요솟값을 바꿀 수 있는지 여부

> 다루는 것은 리스트와 동일

 

[딕셔너리]

> a = { 'key' : 'value'}

> a[key] = 'value'   / or  a.get(key)

* key는 중복되면 안 된다.

> keys() : key값 리스트업 / values() : value값들 리스트업 / item() : key와 value 묶음으로 리스트업

>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])

* 하지만 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.

> so, 변경하려면 아래 과정 수행

>>> list(a.keys())
['name', 'phone', 'birth']

 

[불 자료형] _ bool( )

"python"
"" 거짓
[1, 2, 3]
[] 거짓
(1, 2, 3)
() 거짓
{'a': 1}
{} 거짓
1
0 거짓
None 거짓

> 알고리즘 문제를 풀면서도 이를 활용하는 방법들이 있었다. 참고로 알아두면 좋을 것 같아서 기록했다.

ex. false일 때까지 출력할 때,

 

[저장, 변수]

>>> a = [1, 2, 3]
>>> b = a
>>> id(a)
4303029896
>>> id(b)
4303029896
# 즉 a를 수정하면 b도 바뀐다.
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 4, 3]

> a의 변수들을 복사하되 a와 다른 주소 값을 넣고자 한다면,

>>> a = [1, 2, 3]
>>> b = a[:]
# 또는
>>> from copy import copy
>>> a = [1, 2, 3]
>>> b = copy(a)
# 또는
>>> a, b = ('python', 'life') # or [   ]
>>> (a, b) = 'python', 'life' # or [   ]

 

[ IF ]

# 한 줄 표현
message = "success" if score >= 60 else "failure"

[while 문] 참일 동안 실행

[FOR 문]

> Continue : 다음 문장 실행하지 않고 for문 처음으로 되돌아가기,

# marks2.py
marks = [90, 25, 67, 45, 80]

number = 0 
for mark in marks: 
    number = number +1 
    if mark < 60:
        continue 
    print("%d번 학생 축하합니다. 합격입니다. " % number)

> 한 줄 표현

[표현식 for 항목 in 반복_가능_객체 if 조건문]
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a if num % 2 == 0]

>>> result = [x*y for x in range(2,10)
...               for y in range(1,10)]

 

[함수]

> 함수 정의 과정에서 매개변수가 몇개가 될 지 모를 때,

 def add_many(*args): # args는 인수를 뜻하는 영어 단어 arguments의 약자이며 관례적으로 자주 사용
...     result = 0 
...     for i in args: 
...         result = result + i   # *args에 입력받은 모든 값을 더한다.
...     return result
# 예시
>>> def add_mul(choice, *args): 
...     if choice == "add":   # 매개변수 choice에 "add"를 입력받았을 때
...         result = 0 
...         for i in args: 
...             result = result + i 
...     elif choice == "mul":   # 매개변수 choice에 "mul"을 입력받았을 때
...         result = 1 
...         for i in args: 
...             result = result * i 
...     return result

> **kwargs처럼 매개변수 이름 앞에 **을 붙이면 매개변수 kwargs는 딕셔너리가 되고 모든 Key=Value 형태의 입력값이 그 딕셔너리에 저장

>>> def print_kwargs(**kwargs):
...     print(kwargs)
#  ‘keyword arguments’의 약자이며 args와 마찬가지로 관례적으로 사용
# 예시
>>> print_kwargs(a=1)
{'a': 1}
>>> print_kwargs(name='foo', age=3)
{'age': 3, 'name': 'foo'}

 

[파일 읽고 쓰기] _ 활용할 때 다시 볼 것.

파일_객체 = open(파일_이름, 파일_열기_모드)
#모드 : r(읽기), w(쓰기), a(추가)

참고) 파일 경로 쓸 때, 역슬래쉬(\)를 써도 되지만, \\ 두번 써야 한다.

 

뒷부분 내용들_ 활용할 때 다시 보기.