꺼내먹는지식 준

String 및 변수, 함수 관련 본문

Python/간단한 이해 글

String 및 변수, 함수 관련

알 수 없는 사용자 2022. 1. 17. 17:32

메모리

1 byte = $2^{8}$

int: 4 bytes 

$-2^{31} \sim 2^{31}-1$

float: 8 bytes

$-10^{308} \sim 10^{308}$

 

--> 메모리의 효율적 활용을 고려하자. 

 

Indexing

a = "Hajun always pushes himself to the end"

a[-3:] -3 부터 끝까지: end 

 

a[:] a 변수의 처음부터 끝까지: Hajun always pushes himself to the end

 

a[-100: 100] 범위를 넘어갈 경우 최대 범위 지정: Hajun always pushes himself to the end

 

a[::2] 2칸 단위로: Hjnawy uhshmeft h n

 

a[::-1] 역방향: dne eht ot flesmih sehsup syawla nujaH

 

간단한 함수

len(a): 리스트 문자 개수 

a.upper() 리스트 element 대문자로 변환 

a.lower() 리스트 element 소문자로 변환 

a.capitalize() 리스트 첫 문자 대문자로 변환

a.title() 'Hajun Always Pushes Himself To The End' 띄어쓰기 기준으로 각 첫 문자 대문자 변환 

a.count("a") 문자열 a에 a 가 들어간 횟수 반환 

a.find('sh') 문자열 a에 'sh' 가 들어간 index 반환 

a.rfind('sh') 

a.startswith('sh')  문자열 a가 sh 로 시작하는가 확인

a.endwidth('sh') 문자열 a가 sh로 끝나는가 확인 

 

a.strip() 좌우 공백 없앰 

a.rstrip() 오른쪽 공백 없앰 

a.lstrip() 왼쪽 공백 없앰 

a.split() 공백 기준으로 나눠 리스트로 반환 

a.split("sh") "sh" 기준으로 나눠 리스트로 반환 

a.isdigit() 문자열이 숫자인지 반환 '12345' 이런 경우도 사용 가능 유용

a.islower() 문자열 a가 모두 소문자인지

a.isupper() 문자열 a가 모두 대문자인지

 

a = 'I\m Hajun '

\ = ' 

 

혹은 큰 따움표로 문자열 선언

a = "I'm Hajun"

 

 

\n 을 사용하지 않고 

a = '''Hajun

is 

good

'''

이렇게도 사용 가능 

 

파이썬을 처음 배울 때 다 배우지만, 쉽게 잊는 개념 

Call by value 

$def\,f(x): \\x = 5$ 

f(a) 함수에 인자를 넘길 때 값을 넘기면 함수 내에서 인자의 값을 변경시켜도, 호출자에게는 영향이 없다. 

간단하게, 함수 콜 할때 값 넘기고 끝 

 

Call by reference 

C의 포인터 개념, 함수에 인자를 넘길 때 메모리 주소를 넘겨서 함수 내 인자 값 변경이 호출자에게도 영향을 준다. 

간단하게, 함수 콜 할때 넘긴 값을 바꾸면, 콜 할 때의 인자의 값도 변경 됨. 

 

Call by object Reference 파이썬의 함수 호출 방식 

파이썬은 흥미롭게도, 객체의 주소가 함수로 전달이 되어 

객체를 참조하여 변경하면 호출자의 값도 변하나 새로운 객체를 선언하면 아예 새로운 주소를 갖는다. 

 

\[def\, hajun(money):\\money.append(5000)\\money = [999999, 99991]\\money = [0]\\hajun(money)\\print(money)\\\#[0,5000]\]

 

함수 내에서 리스트 값을 변경시킬 경우, 

1) list의 전역 변수 값을 직접 변경 

2) 리스트 객체의 주소 값을 받아 값을 변경 

 

항상 리스트의 값을 매개변수로 던져줄때는 안정적으로 복사를 해주는 것이 좋다. [:]

 

전역 변수를 함수 안에서 사용하려면 

global 선언을 반드시 해줘야 한다. 

해주지 않으면 함수 내의 함수는 로컬(지역) 함수일 뿐이다. 

 

파이썬의 dynamic typing 특성으로 인해 사용자가 해당 변수가 어떤 type을 요구하는지 알기 어렵다. 

이에 따라 다음과 같은 방법으로 힌트를 줄 수 있다. 

$def\, hajun(var_name: var_type) -> return_type: \\ pass$

ex)

$def\, hajun(first_name: str) -> str: \\ return f"Hello, {name}"$

 

doc string 함수 설명 방법 

$def\, add\_money(a, b):$

'''

Return the sum of two big money numbers

        

        Parameters:

                       a (int): three digit number

                       b (int): four digit number

 

       Returns:

                    sum of a, b

"""

visual studio extension 에서 doc string generator 를 설치하면 많이 편리하다. 

 

코딩은 통일성이 중요하다. 

conda install flake8

flake8 ~~~.py

을 통해 통일 규칙에서 얼마나 벗어났는지 확인 가능 

conda install black 

black ~~~.py 

을 통해 자동으로 어느정도 수정을 할 수 있다. 

 

 

'Python > 간단한 이해 글' 카테고리의 다른 글

Python Zip  (0) 2022.02.04
Pandas  (0) 2022.01.18
numpy  (0) 2022.01.18
Python List  (0) 2022.01.17
컴퓨터 기본 내용 정리, 파이썬 기본 내용 정리  (0) 2022.01.17
Comments