[Python] 기본 문법1

MinI0123·2023년 3월 7일
0

자료형

파이썬은 JAVA, C와 달리 모든 것이 객체(Object)이다. 이는 모든 변수가 실제 데이터를 저장하고 있는 것이 아니라 데이터가 저장되어 있는 객체의 주소를 저장하고 있음을 의미한다.

파이썬의 자료형은 immutable 자료형mutable 자료형으로 나뉜다.

  • immutable : 정수, 실수, 문자열, 튜플
  • mutable : 리스트, 딕셔너리

immutable 자료형은 저장된 값이 변경될 수 없는 자료형이다. 따라서 값을 변경하면 새로운 값을 가지는 객체를 새로 생성해서 대체한다. 반면 mutable 자료형은 값 변경시 객체를 변경하지 않고 값만 변경할 수 있다.

정수 정적 할당
파이썬은 자주 사용되는 정수인 -5 ~ 256을 정적 할당하여 사용한다.

List (Array)

리스트(list)는 여러 데이터를 연속적으로 저장하는 시퀀스 자료형이다. 다른 언어와 달리 다양한 자료형을 하나의 리스트에 담을 수 있다는 특징이 있다.

  • 인덱싱 (indexing)
    list의 값들은 index(offset)를 사용하여 값에 직접 접근할 수 있다.

  • 슬라이싱 (slicing)
    list[시작 위치, 끝 위치, step] : index를 기반으로 부분 값 반환

  • 리스트 연산
    concat : '+' 연산자를 이용해 두 리스트를 합친 리스트를 반환
    is_in : 리스트에 값이 포함되었는지 확인
    append : 값 추가
    extend : 리스트를 이용해 값 한번에 추가
    insert : 특정 위치에 값 추가
    remove : 값 삭제
    del : 값 삭제 (메모리를 없애는 연산)

  • 패킹 / 언패킹

arr = [1, 2, 3] #패킹
a, b, c = t #언패킹
print(a, b, c) 

-------result---------
1 2 3

String

리스트와 같은 시퀀스 자료형으로 문자형 데이터를 저장한다. 시퀀스 자료형이므로 인덱싱, 슬라이싱을 사용할 수 있다.

String Formatting

문자열 출력 시 원하는 형식을 만들기 위해 formatting을 사용할 수 있다.

1. % string

'%s %d' %("hello", 8) 
'%10.2f' %(1.23456) # %전체 공간 . 소수점 아래 숫자

2. format 함수

'{} {}'.format("hello", 8)
'{0:10.2f}'.format(1.23456) # {argumentIndex : 전체 공간.소수점 아래 숫자}
'{0:>10s} {}'.format("hello", 8) # > : 정렬

3. fstring
python 3.6 이후 formatting 방법

age = 23
f'my age : {age}.'

str = hello
f'{str : *>20}' # {변수 : (빈칸 채울 문자)(정렬)(전체 공간)}

함수

def func(param : typeHint, ...) -> returnType:
	```
    docstring
    ```
	statements
    ...
    return returnValue
  • 함수 호출 방식
    함수 호출 방식은 3가지로 나눌 수 있다.
  1. call by value
    함수의 인자로 변수 값을 복사하여 전달한다. 함수 안에서 값을 변경하여도 함수 외부 변수는 영향을 받지 않는다.

  2. call by reference
    함수의 인자로 변수의 주소를 전달한다. 함수 안에서 인자의 값을 변경하면 원래 변수의 값도 변경된다.

  3. call by object reference
    파이썬에서 함수를 호출할 때 사용하는 방식이다. 함수의 인자로 객체의 주소를 전달한다.

    Immutable 변수는 함수 안의 변경 사항이 원래 객체에 영향을 미치지 않는다.

    Mutable 변수의 경우에는 함수 안의 변경 사항이 원래 객체에 영향을 미칠 수 있다.

참고

call by object reference : https://foramonth.tistory.com/20

0개의 댓글