Ayden's journal

파이선 기초

기본 타입

자바스크립트와 달리 파이썬에서는 숫자형이 정수형과 부동소수형으로 나뉘어있으며, 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

활동하기