:= 연산자는 바다코끼리(Walrus) 연산자로, Python 3.8에서 추가되었습니다.
이 연산자를 사용하면 표현식 안에서 변수에 값을 할당할 수 있습니다. 바다코끼리 연산자를 어떻게 활용할 수 있는지 예제와 함께 알아보겠습니다.
1. if문에서 := 연산자 사용하기
예를 들어, 사용자에게 숫자를 입력받아 양수인지 음수인지 판별하는 기능을 구현했습니다.
num = int(input("숫자를 입력하세요: "))
if num > 0:
print(f"{num}은 양수입니다.")
else:
print(f"{num}은 음수입니다.")
위 코드를 실행해서 10을 입력하면, 아래와 같이 num
변수에 10이 입력되고 양수라는 문자열을 출력됩니다.
숫자를 입력하세요: 10
10은 양수입니다.
만약 :=
연산자를 이용하면 아래와 같이 if문 안에서 변수에 값을 대입하고 조건을 체크할 수 있습니다. 조금 더 짧은 코드로 같은 내용을 구현할 수 있습니다. 또한, 상황에 따라 다르지만 가독성이 좋은 경우가 있을 수 있습니다.
if (num := int(input("숫자를 입력하세요: "))) > 0:
print(f"{num}은 양수입니다.")
else:
print(f"{num}은 음수입니다.")
두번째 예제
index(val)
은 리스트에 val이 있을 때 index를 리턴하며, 없으면 -1을 리턴합니다.
index 함수를 이용하여 아래와 같이 특정 요소의 index를 출력할 수 있습니다.
fruits = ['사과', '바나나', '딸기', '오렌지']
if (index := fruits.index('딸기')) != -1:
print(f"딸기는 인덱스 {index}에 있습니다.")
else:
print("딸기를 찾을 수 없습니다.")
Output:
딸기는 인덱스 2에 있습니다.
2. while문에서 := 연산자 사용하기
file.readline()
은 파일에서 텍스트 1줄을 읽고 문자열로 리턴합니다. 파일의 끝까지 읽으면 empty string을 리턴합니다.
아래와 같이 while문에서 :=
연산자와 readline()
함수로 문자열을 한줄 씩 읽고, 파일 끝에서 empty string이 리턴되면 while문을 탈출합니다.
with open('data.txt', 'r') as file:
while line := file.readline():
print(line.strip())
두번째 예제
while에서도 input 함수를 이용하여, 연속적으로 값을 입력받을 수 있습니다.
- 아래 예제는 음수를 입력받으면 while을 탈출하도록 구현
while (x := int(input("숫자를 입력하세요: "))) != 0:
if x < 0:
print("음수를 입력하셨습니다. 반복문을 종료합니다.")
break
print(f"{x}은(는) 양수입니다.")
Output:
숫자를 입력하세요: 1
1은(는) 양수입니다.
숫자를 입력하세요: 2
2은(는) 양수입니다.
숫자를 입력하세요: 3
3은(는) 양수입니다.
숫자를 입력하세요: -1
음수를 입력하셨습니다. 반복문을 종료합니다.
3. List comprehension에서 := 연산자 사용하기
리스트의 요소들을 제곱한 결과가 30 미만일 때, 그 결과를 리스트로 리턴하는 코드를 구현하였습니다.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [(x * x) for x in numbers if (x * x) < 30]
print(result)
Output:
[1, 4, 9, 16, 25]
위 코드를 보면, (x * x)
연산이 두번 있는데, 아래와 같이 바다코끼리 연산자를 사용하면 중복된 부분을 제거할 수 있습니다.
(x * x)
의 계산 결과를 바다코끼리 연산자를 사용하여 y에 대입하고, y를 리턴
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [y for x in numbers if (y := (x * x)) < 30]
print(result)
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)