1. 변수(Varaibles)
변수는 세로 작성을 원칙으로 한다.
a = 2
b = 3
c = a + b
a = 11
b = 13
print(c)
#출력: 5
변수명은 반드시 글자로 시작하며, 숫자는 중간이나 끝에만 들어갈 수 있다.
#옳은 예시
my_age = 88 (snake case)
myAge = 88 (camel case)
my1age = 88
myAge1 = 88
#틀린 예시
1myAge = 88
2. Data Type
데이터 형식을 문자로 나타내고 싶을 때는 "" 안에 작성한다.
my_name = sophie (x)
my_name = "sophie" (o)
my_age = "12"
Boolean은 대문자 True 혹은 False로 작성한다.
alive = True
dead = False
print(alive)
#출력: True
3. 함수(Function)
함수란, 우리가 작성해서 몇 번이고 재사용이 가능한 코드를 말한다.
함수를 정의할 때는 def 뒤에 함수명을 작성한다.
여기서 주의할 사항은 def say_hello(): 다음 줄에 들여쓰기(tap 혹은 space d두 번)를 하지 않고 함수를 정의할 경우, 에러가 난다.
왜냐하면 파이썬은 빈 공백을 이용해서 어떤 것 안에 어떤 게 있는지 이해하기 때문이다.
#옳은 예시
def say_hello():
print("hello how r u?")
say_hello()
#틀린 예시
def say_hello():
print("hello how r u?")
say_hello()
4. 매개변수(Parameter)&인자(argument)
매개변수란, 함수 내에 데이터가 들어갈 수 있는 공간, 혹은 함수 안으로 데이터를 보내 함수의 결과를 바꿀 수 있게 해주는 것을 말한다. 아래 예시에서 say_hello()라는 함수의 괄호 안에 들어가는 user_name이 여기에 해당한다. 여기서 user_name은 임의로 지정한 것일 뿐 user, member 등 다른 이름이 될 수 있으며, 특정한 값(예: 철수, 영희, sophie 등등)을 갖고 있지는 않다.
인자란, 함수가 호출될 때 우리가 지정한 매개변수의 자리에 들어갈 특정한 값을 가리킨다. 호출한 say_hello(sophie)에서 sophie가 바로 인자에 해당한다.
def say_hello(user_name):
print("hello", user_name, "how r u?")
say_hello("sophie")
#출력: hello sophie how are u?
만약 매개변수를 여러개 지정하고 싶다면 콤마를 사용하면 된다.
이때, 각각의 매개변수의 순서에 맞게 인자의 순서를 맞춰줘야 한다.
def say_hello(user_name, user_age):
print("hello", user_name)
print("you are", user_age, "years old")
say_hello("sophie", 12)
#출력: hello sophie
you are 12 years old
이때, 매개변수에 기본값을 지정할 수도 있는데,
아래 예시를 보면 say_hello 함수는 1개의 인자를 반드시 받아야하지만
만약 인자를 넣지 않았을 때 사용자에게 에러메세지를 띄우는 대신
위에서 지정한 기본값(anonymous)이 나타나도록 하는 것이다.
def say_hello(user_name="anonymous"):
print("Hello", user_name)
say_hello("sohpie")
say_hello()
#출력: Hello sophie
Hello anonymous
def plus(a=0, b=0):
print(a + b)
def minus(a=0, b=0):
print(a-b)
def multiplication(a=0, b=0):
print(a*b)
def division(a=0, b=1):
print(a/b)
def square(a=0, b=1):
print(a**b)
#수식으로 만든 예시
def plus(a=0, b=0):
print(a + b)
def minus(a=0, b=0):
print(a-b)
def multiplication(a=0, b=0):
print(a*b)
def division(a=0, b=1):
print(a/b)
def square(a=0, b=1):
print(a**b)
plus(1,3)
plus()
minus(2,4)
minus()
multiplication(2,7)
multiplication()
division(2,4)
division()
square(3,2)
square()
#출력
4
0
-2
0
14
0
0.5
0.0
9
0
5. 리턴(return)
리턴이란, 함수 바깥으로 값을 보내는 것을 의미한다.
지금까지는 함수로부터 도출된 값을 단순히 print()를 통해 콘솔창에 나타내기만 했다면,
return을 사용하면 함수로부터 받은 값을 함수 밖으로 꺼내 쓸 수 있게 된다.
아래 예시를 보면, tax_calc()의 리턴값을 pay_tax()에 사용하기 위해
두 개 함수의 연결고리인 to_pay 변수를 만들어준 것을 알 수 있다.
def tax_calc(money):
return money * 0.35
def pay_tax(tax):
print("thank you for paying", tax)
to_pay = tax_calc(150000000)
pay_tax(to_pay)
#출력: thank you for paying 52500000.0
해당 함수를 더 짧게 만들고 싶다면 to_pay 변수를 없애고
tex_calc(150000000)함수를 pay_tax의 인자 자리에 직접 넣어도 된다.
def tax_calc(money):
return money * 0.35
def pay_tax(tax):
print("thank you for paying", tax)
pay_tax(tax_calc(150000000))
#출력: thank you for paying 52500000.0
f"{변수}": 문자열 안에 변수를 넣는 방법
파이썬에서는 쌍따옴표("") 앞에 f(format)를 붙여주면 문자열 안에 중괄호를 써서 변수를 바로 사용할 수 있다.
my_name = "sophie"
my_age = 12
my_eyes_color = "brown"
f"Hello I'm {my_name}, I have {my_age} years in the earth, my eyes color is {my_eyes_color}"
#출력: Hello I'm sophie, I have 12 years in the earth, my eyes color is brown
이걸 리턴값과 함께 사용할 수 있는 예시를 보자.
def make_juice(fruit):
return f"{fruit}+🥤"
def add_ice(juice):
return f"{juice}+🧊"
def add_sugar(iced_juice):
return f"{iced_juice}+🍬"
juice = make_juice("🍎")
print(juice) #이해를 돕기 위해
cold_juice = add_ice(juice)
print(cold_juice) #이해를 돕기 위해
perfect_juice = add_sugar(cold_juice)
print(perfect_juice)
#출력:
🍎+🥤
🍎+🥤+🧊
🍎+🥤+🧊+🍬
return의 특징 중 하나는, 리턴을 사용하는 순간 함수가 종료된다는 점이다.
예를 들어, 아래 예시에서 return f"{fruit}+🥤"뒤에 작성된 print("lalala")는 실행되지 않고
곧바로 return f"{fruit}+🥤"이 불린 곳인 juice = make_juice("🍎")으로 돌아간다.
def make_juice(fruit):
return f"{fruit}+🥤"
print("lalala")
def add_ice(juice):
return f"{juice}+🧊"
def add_sugar(iced_juice):
return f"{iced_juice}+🍬"
juice = make_juice("🍎")
cold_juice = add_ice(juice)
perfect_juice = add_sugar(cold_juice)
print(perfect_juice)
각주, 코멘트
한 줄을 각주처리 할 때는 #을 문장 앞에 붙여주면 되고,
두 줄 이상을 각주처리 할 때는 코드 시작줄과 마지막줄 끝에 쌍따옴표(") 세 개를 써주면 된다.