본문 바로가기
Codeit/프로그래밍 기초 in Python

프로그래밍 핵심 개념 in Python / 추상화

by 에파 2021. 3. 18.
728x90

 

프로그래밍 핵심 개념 in Python / 추상화

 

 

x = 7
x = x - 3
print(x)

#<Run>
#4

프로그래밍에서 '=' 등호는 같다가 아닌 지정연산자 (오른쪽 값이 왼쪽에 저장)


def square(x):
    print("함수 시작")
    return x * x
    print("함수 끝")

print(square(3))

#<Run>
#함수 시작
#9

함수 리턴문의 성질

 

함수에서 리턴을 만나면 항상 바로 종료한다. 함수를 호출하면 그저 함수 구문을 차례대로 실행한다.

때문에 print(print("함수 시작")) 일것 같지만 print("함수 시작") 만 읽고 리턴값만 print() 안으로 반환받게 된다.


def myself(name, age, nationality="한국"):
    print("이름 : {}".format(name))
    print("나이 : {}살".format(age))
    print("국적 : {}".format(nationality))

myself("이민건", 20)

#<Run>
#이름 : 이민건
#나이 : 20살
#국적 : 한국

함수 파라미터 기본값

 

파라미터 값을 아무것도 입력하지 않았을때 기본값으로 출력하게 한다.


# 다음 두 줄은 같습니다
x = x + 1
x += 1

# 다음 두 줄은 같습니다
x = x + 2
x += 2

# 다음 두 줄은 같습니다
x = x * 2
x *= 2

# 다음 두 줄은 같습니다
x = x - 3
x -= 3

# 다음 두 줄은 같습니다
x = x / 2
x /= 2

# 다음 두 줄은 같습니다
x = x % 7
x %= 7

Syntactic Sugar (자주 쓰이는 표현을 간략하게 쓸 수 있게 해주는 문법)

유용하니 익혀두자.


x = 2  # 글로벌변수

def my_function():
    x = 3  # 로컬변수
    print(x)

my_function()
print(x)

#<Run>
#3
#2

scope (범위)

 

글로벌변수(전역변수)와 로컬변수의 개념

글로벌변수는 구문 전체에서 쓰이지만 로컬변수는 함수 내에서만 작동한다.

함수 내에서는 로컬변수가 1순위로 쓰이지만 해당 이름의 로컬변수가 없을땐 2순위로 글로벌변수를 끌어다쓴다.


PI = 3.14

상수를 지정할때는 항상 변수이름을 대문자로 설정한다.

문법상 맞고 틀리고는 없지만, 프로그래머들간의 약속이라고 한다.

(상수 = 바뀌지 않는 수)


프로그래밍도 코드마다 각각 스타일이 다르다. 여러가지의 스타일이 있는데 그중 파이썬에서는 PEP8 의 스타일이 가장 괜찮다고 한다.

 

원본 링크 : https://www.python.org/dev/peps/pep-0008

 

PEP 8 -- Style Guide for Python Code

The official home of the Python Programming Language

www.python.org

중요하고 기본적인 PEP8 의 스타일가이드 몇가지를 아래에 적어보았다.

 

#모든 변수와 함수 이름은 소문자로 써 주시고, 여러 단어일 경우 _로 나눠 주세요.

# bad
someVariableName = 1
SomeVariableName = 1

def someFunctionName():
    print("Hello")


# good
some_variable_name = 1

def some_function_name():
    print("Hello")

 

#모든 상수 이름은 대문자로 써주시고, 여러 단어일 경우 _로 나눠주세요.

# bad
someConstant = 3.14
SomeConstant = 3.14
some_constant = 3.14


# good
SOME_CONSTANT = 3.14

 

#의미 있는 이름

# bad (의미 없는 이름)
a = 2
b = 3.14
print(b * a * a)


# good (의미 있는 이름)
radius = 2
pi = 3.14
print(pi * radius * radius)


# bad (의미 없는 이름)
def do_something():
    print("Hello, world!")


# good (의미 있는 이름)
def say_hello():
    print("Hello, world!")

 

#들여쓰기는 무조건 스페이스 4개를 사용하세요.

# bad (스페이스 2개)
def do_something():
  print("Hello, world!")


# bad (스페이스 8개)
i = 0
while i < 10:
        print(i)


# good (스페이스 4개)
def say_hello():
    print("Hello, world!")

 

#함수 정의 위아래로 빈 줄이 두 개씩 있어야 합니다. 하지만 파일의 첫 줄이 함수 정의인 경우 해당 함수 위에는 빈 줄이 없어도 됩니다.

# bad
def a():
    print('a')
def b():
    print('b')

def c():
    print('c')



# good
def a():
    print('a')


def b():
    print('b')


def c();
    print('c')

 

#괄호 바로 안에는 띄어쓰기를 하지 마세요.

# bad
spam( ham[ 1 ], { eggs: 2 } )


# good
spam(ham[1], {eggs: 2})

 

#함수를 정의하거나 호출할 때, 함수 이름과 괄호 사이에 띄어쓰기를 하지 마세요.

# bad
def spam (x):
    print (x + 2)


spam (1)


# good
def spam(x):
    print(x + 2)


spam(1)

 

#쉼표 앞에는 띄어쓰기를 하지 마세요.

# bad
print(x , y)


# good
print(x, y)

 

#지정 연산자 앞뒤로 띄어쓰기를 하나씩만 해 주세요.

# bad
x=1
x    = 1


# good
x = 1

 

#기본적으로는 연산자 앞뒤로 띄어쓰기를 하나씩 합니다.

# bad
i=i+1
submitted +=1


# good
i = i + 1
submitted += 1

 

#하지만 연산의 "우선 순위"를 강조하기 위해서는, 연산자 앞뒤로 띄어쓰기를 붙이는 것을 권장합니다.

# bad
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)


# good
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

 

#일반 코드와 같은 줄에 코멘트를 쓸 경우, 코멘트 앞에 띄어쓰기 최소 두 개를 해 주세요.

# bad
x = x + 1# 코멘트


# good
x = x + 1  # 코멘트

 

댓글