파이선 기초
기본 타입
자바스크립트와 달리 파이썬에서는 숫자형이 정수형과 부동소수형으로 나뉘어있으며, null∙undefined∙void가 None 하나로 퉁쳐지는 듯하다. 각 타입의 이름과 동일한 타입캐스트 함수들을 사용하면 타입을 바꿀 수 있다.
var1: str = "Ayden Blair"
var2: int = 42
var3: float = 3.1415
var4: bool = True
var5: None = None
불 연산은 자바스크립트와 비슷하지만, 연산자 대신 키워드를 쓴다는 점이 다르다. 또한, 파이썬에서 ==은 동등 비교가 아니라 일치 비교를 수행한다.
bool1 = True and False # False
bool2 = True or False # True
bool3 = nor False # True
ans1 = 6 / 2 # 나눗셈은 늘 float 형으로 결과가 나온다
print(ans1) # 3.0
ans2 = 2.0 + 5 # 다른 연산자에서도 float이 사용되면 역시 float 형으로 결과가 나온다
print(ans2) # 7.0
ans3 = 7 // 2 # 버림 나눗셈은 몫(3)만 남기고 나머지(0.5)는 버림한다
print(ans3) # 3
ans4 = round(3.141592, 2) # 두번째 파라미터에 따라 반올림 한다
print(ans4) # 3.14
formating
PI = 3.14 # 상수는 대문자로
radius = 3 # 변수는 소문자로
print(f"{PI}에 {radius}의 제곱을 곱하면 원의 넓이인 {round(PI * radius * radius, 2)}를 구할 수 있습니다.")
함수 정의
파이썬의 함수는 def 키워드로 선언되며, 자바스크립트와 마찬가지로 1급 객체이다. 따라서 함수를 아규먼트로 받을 수 있다.
from typing import Callable
def calCircleSurface(round: Callable[[float, int], float], radius: float, PI: float = 3.14) -> float:
return round(radius * radius * PI, 2)
print(calCircleSurface(round, 2)) # 12.56
lambda 키워드로 선언하는 람다 함수라는 것도 있다. 일종의 익명 함수인데, 람다 함수는 단일 표현식만 허용되므로 길이가 길어지면 람다 함수 내에서 처리할 수 없다. 콜론 앞에 파라미터를 정의하고, 콜론 뒤에 리턴 키워드 없이 리턴할 표현문을 작성한다.
add: Callable[[float, float], float] = lambda a, b: a + b
조건문
파이썬의 조건문은 주로 if, elif, else를 사용하여 조건을 설정하고, 조건에 맞는 코드를 실행하는 형식이다. 자바스크립트의 삼항 연산자 비슷하게 한 줄로 조건문을 처리할 수는 있지만, 가독성의 문제가 있으니 가능하면 이건 안 쓰는 게 좋을 듯하다.
radius = 2
if calCircleSurface(radius) >= 25:
print("큰 원인갑소")
elif calCircleSurface(radius) >= 15:
print("적당한 원인갑소")
else:
print("작은 원입갑소")
x = 10
print("x는 5보다 큽니다." if x > 5 else "x는 5보다 작거나 같습니다.")
파이썬에는 스위치가 없지만, dict를 사용하여 유사하게 구현할 수 있다.
def switch_example(option):
switch_dict = {
1: "첫 번째 선택",
2: "두 번째 선택",
3: "세 번째 선택"
}
return switch_dict.get(option, "잘못된 선택") # 기본값은 "잘못된 선택"
print(switch_example(2)) # 출력: 두 번째 선택
반복문
자바스크립트와 동일하게 while 문은 주어진 조건이 참인 동안 반복하는 구조이다. 조건이 거짓이 될 때까지 계속해서 반복을 실행한다. break와 continue 역시 자바스크립트와 동일하게 동작한다.
i: int = 1
while i < 10:
j: int = 1
while j < 10:
print(f"{i} * {j} = {i * j}")
j += 1
i += 1
for 문은 주로 시퀀스(리스트, 튜플, 문자열 등)나 이터러블(반복 가능한 객체)을 순회하며 반복 작업을 할 때 사용된다. range()는 숫자의 범위를 생성하는 함수로, 이를 이용해 반복문을 실행할 수 있다. 자바스크립트의 Object.keys 등과 같이 객체dict의 메서드를 사용하여 순회를 할 수도 있다.
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
for i in range(2, 10, 2): # 2부터 8까지 2씩 증가
print(i)
my_dict = {"a": 1, "b": 2, "c": 3}
for key in my_dict.keys():
print(key)
for value in my_dict.values():
print(value)
for index, (key, value) in enumerate(my_dict.items()):
print(f"인덱스: {index}, 키: {key}, 값: {value}")
재미있게도 파이썬에서는 for문 뒤에 else를 사용해 반복문이 정상적으로 완료되었을 때 할 동작을 지정할 수 있다. break로 인해 반복문이 정상적으로 완료되지 않았다면 else는 실행되지 않는다.
for i in range(3):
print(i)
else:
print("반복문이 끝났습니다.")
블로그의 정보
Ayden's journal
Beard Weard Ayden