[PYTHON]파이썬 기초

박민하·2022년 5월 26일
0

PYTHON

목록 보기
1/11
post-thumbnail

# PEP8 : 파이썬 스타일 가이드

  코드의 가독성을 개선하고 코드의 일관성을 유지하기 위한 규칙을 제공하는 가이드. 절대적인건 아니니 상황에 따라 판단하자. 아래는 몇 개만 따로 정리해둔 것이고 더 자세한 내용은 제목을 클릭해보자.

  • 들여쓰기를 할 때는 공백 4개(또는 tab 키)를 사용한다.
  • 2항 연산자는 연산자 전에 줄바꿈한다.
  • 표현식 및 명령문에 불필요한 공백은 자제한다.
  • 변수명은 특수문자와 공백은 사용할 수 없으며, 숫자로 시작할 수 없다.
  • 클래스명은 카멜 케이스(CamelCase) 형식으로 작성한다.
  • 함수명은 스네이크(snake_case) 형식으로 작성한다.

# 파이썬 공식 용어집

  다른 언어와 혼동해서 잘못 이해하는 경우가 많다. 용어는 꼭 제대로 학습하자. 제목 클릭클릭.

# 파이썬의 특징 - 객체(Object)

  • 파이썬에서는 데이터, 함수, 클래스, 모듈, 패키지 등을 모두 객체로 취급한다.

  • 객체는 메모리(저장공간)을 차지하고, 자료형(data type)과 식별 번호(identity)를 가진다.
    💁‍♀️id() 함수를 사용하면 객체의 식별 번호를 알 수 있다.

  • 즉, 파이썬의 변수는 값을 갖지 않고, 단지 객체를 참조하는 이름에 불과하다(참조 타입)
    ⇒ 변수는 값을 저장하는 상자가 아니라 단순한 이름일 뿐!
    💁‍♀️원시 타입(primiltive types) : 변수에 직접 값이 저장되는 타입이다.

  • 예를 들어 x=10은 x가 10이라는 값을 갖고 있다고 말할 수 없고, x가 객체 10을 참조한다고 본다.

# 객체의 동일성(idendtity) vs 동등성(equality)

  • is 연산자(idendtity) : 두 객체가 동일한 주소에 할당된 '동일한 객체'인가를 비교
  • == 연산자(equality) : 두 객체의 '데이터 값'을 비교(객체비교x)

개별 자료형(숫자, 문자)과는 달리 묶음 자료형(리스트, 튜플, 집합, 딕셔너리)은 따로 만들어지기 때문에 ‘다른 객체’다.

예1) a=3, b=3 은 동일 객체, 동일 값이고 a=[1,2,3], b=[1,2,3]은 동일 값이지만 다른 객체다.

예2) a=”wecode”, b="wecode!” 일 때, a와 b[:-1]의 데이터 값은 같지만 서로 다른 객체다.

예3) 단, a is a[:] 의 값은 객체에 아무 변화가 없기 때문에 true 값이 나온다.**

# 자료형 별 동일성과 동등성 비교

1. Print

print()

  파이썬에서 화면에 출력을 하고자 할때는 print 명령어를 사용한다.

print("따옴표 안에는 문자열(string)이 들어간다!")
# 따옴표 안에는 문자열(string)이 들어간다!

2. Data Types(자료형)

  Data type은 해당 데이터가 숫자인지 문자인지 등의 데이터의 종류를 말한다. 예를 들어, 숫자 2 와 문자 "2", 그리고 소수점 숫자 2.0은 사람에게는 문맥상 같은 의미를 가지지만 컴퓨터에게는 3개가 전부 다른 의미를 가진다. 따라서 정확한 data type의 값을 지정하는것이 중요하다.

1. String(문자열)

  큰따움표("") 안에 있는 글자들은 문자열(string) 이다.

ex) "안녕하세요", "Hello World!", "100"

2. Integer(정수)

ex) 1, 2, 100

3. Float(소수점)

ex) 2.0, 3.7, 9.99

4. Complex Numbers(복소수)

  실수와 허수를 포함하고 있는 복소수다. 파이썬에서는 j를 사용하여 허수를 표현한다.

ex) 1+3j, 2-4j

5. Boolean

  True 나 False 이 2가지 값만 가지고 있으면 조건문에서 많이 사용된다.

ex)
1 == 1 → True
2 == 3 → False
3 == "3" → False (Data type이 틀리기 때문)

3. Variables(변수)

  파이썬에서 variables(변수)는 데이터의 별명(식별자)라고 생각할 수 있다. 예를 들어

  • 현재 서울 날씨는 맑다.
    라는 문장을 보고, 지역과 날짜라는 변수 이름에 "서울"과 "맑음" 값을 넣을 수 있음을 알 수 있다.
local = "서울"
weather = "맑음"
# 여기서 '=' 기호는 "assignment" 즉 값 지정을 뜻한다.

물론 변수 값은 변경 가능하다. weather = "흐림" 으로 입력하고 print()문을 사용해 변수를 출력하면 "맑음"이 아닌 "흐림" 값이 나올 것이다.

변수 이름 짓기

변수 이름을 정하는 것에는 법칙이 있다.

  • 변수 이름은 영어 알파벳과 숫자 그리고 underscore(_) 으로만 구성해야 한다.
  • 변수 이름 첫글자는 알파벳이나 underscore(_)로만 시작해야 한다.
  • 숫자로 시작될 수 없다.
  • 영어 알파벳은 대문자와 소문자가 구분이 된다.

올바른 변수 이름: name, _name, my_name, myName
잘못된 변수 이름: 7name, my name

4. 연산식

  변수에 숫자 값을 넣으면 변수를 이용해 연산들을 실행할 수 있다.

1. 산술 연산자(Arithmetic Operators)

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / : 나눗셈
  • % : 나머지
  • ** : 제곱
  • // : 몫

2. 할당 연산자(Assignment Operators)

  • x = y : x에 y를 할당
  • x += y : x에 y를 더하고 결과를 x에 할당
  • x -= y : x에서 y를 빼고 결과를 x에 할당
  • x *= y : x에 y를 곱하고 결과를 x에 할당
  • x /= y : x에서 y를 나누고 결과를 x에 할당
  • x %= y : x에서 y를 나눈 나머지의 결과를 x에 할당
  • x //= y : x에 y만큼 제곱을 하고 결과를 x에 할당
  • x **= y : x에서 y를 나눈 몫의 결과를 x에 할당

3. 비교 연산자(Comparison Operators)

  • == : 같다
  • != : 다르다
  • x > y : x가 y보다 크다
  • x < y : x가 y보다 작다
  • x >= y : x가 y보다 크거나 같다
  • x <= y : x가 y보다 작거나 같다

4. 논리 연산자(Logical Operators)

  • x or y : x와 y 둘중에 하나만 참이어도 참이다
  • x and y : x와 y 모두 참이어야 참이다
  • not x : x가 거짓이면 참이다

5. 항등 연산자(Identity Operators)

  • True
  • False 거짓

falsy, truthy란?

  • falsy : false는 아니지만 거짓으로 평가되는 값
    1.   None
    2.   0으로 인식되는 값(0, 0.0, 0/1)
    3.   빈 자료형("”, (), [], {}, range(0))
  • truthy : true는 아니지만 참으로 평가되는 값(falsy 외의 값)
  • falsy, truthy는 bool(변수명) 으로 확인 가능하다.
    a = []
    bool(a)
    # False

6. 멤버 연산자(Membership Operators)

  • x in 리스트(또는 튜플, 문자열) : 리스트(또는 튜플, 문자열) 안에 x가 있으면 참이다
  • x not in 리스트(또는 튜플, 문자열) :리스트(또는 튜플, 문자열) 안에 x가 없으면 참이다

# 연산자 우선순위

( )  >  **  >  *, /, %  >  +, -

# 연산자 우선순위 예시
print(10+20*3)
> 70

5. 문자열 연결

  숫자와 마찬가지로 문자열(string) 도 더할 수 있다. 이를 string concatenation 이라고 하며, 2개 혹은 그 이상의 문자열들을 잇는걸 뜻한다. 예를 들어, 아래의 예시는 모두 같은 결괏값을 출력한다.

name="World"
print("Hello, World")
print("Hello, " + "World")
print("Hello, " + name)

# f-string

  보다 복잡한 문자열에는 일일히 +를 입력하기가 쉽지 않다. 이럴 경우에 사용되는 방법이 literal string interpolation 이다. formating string(f-string)이라고도 하는 이 방법은 문자열 앞에 f를 붙이고 중괄호{}를 사용해 파이썬의 표현식을 삽입할 수 있다.

name="World"
print(f"Hello, {name"})

# 문자열이 한 줄 이상이면?

  문자열이 여러 줄일 경우에는 따옴표를 세 개를 쓰면 된다(""").

print(f"""내용이 몇 줄에 걸쳐서 있지만
따옴표 3개를 입력하면 오류 없이 출력된다.
작은따옴표를 사용해도 된다!""")

6. Significant Whitespace

  Whitespace 란 바로 들여쓰기(indention)을 이야기 한다. 다른 언어에서의 들여쓰기는 단순히 코드의 가독성을 높이기 위해서 사용하는 수준이지만, 파이썬에서는 들여쓰기는 코드의 종속성을 나타내기 때문에 필수적으로 사용해야 한다.

  예를 들어. JavaScript나 자바등의 다른 언어들은 함수에 종속된 코드를 나타내기 위해서 중괄호 ({ }) 를 사용한다.

function func() {
    ... code here
}

  하지만 파이썬에서는 중괄호를 사용하지 않고 들여쓰기를 사용해서 종속된 코드를 나타냅니다.

def func():
	... code here

  들여쓰기의 칸 수는 일반적으로 4칸이며, 대부분 tab으로 들여쓰기를 한다.

profile
backend developer 🐌

0개의 댓글