- [BW 10] 대입식을 사용해 반복을 피하라31514대입식은 := 를 사용하고 왈러스 연산자라고도 부른다.만약 기존의 코드가 아래와 같을 때, count 변수는 if 문의 첫 번째 블록 안에서만 사용된다.count = fresh_fruit.get('레몬', 0)if count: print("레몬 있어요! " + str(count) + "개")else: print("없어요!")이를 다음과 같이 왈러스 연산자를 사용해서 수정할 수 있다.if count := fresh_fruit.get('레몬', 0): print("레몬 있어요! " + str(count) + "개")else: print("없어요!")만약 다음과 같은 while 문이 있다고 해도 왈러스 연산자를 사용하면 불필요한 변수 선언을 줄이고 가독성 있게 수정할 수 있다.# 수정 전..
- 2024-10-22 16:08:59
- [BW 9] for나 while 루프 뒤에 else 블록을 사용하지 말라31514💡 파이썬에서는 루프가 반복 수행하는 내부 블록 바로 다음에 else 블록을 추가할 수 있다. 루프가 모두 실행되어도 else 블록은 실행된다.for i in range(3): print('Loop', i)else: print('Else Block!') >>>Loop 0Loop 1Loop 2Else Block!루프가 한 번도 실행되지 않아도 else 블록은 실행된다.while False: print('No')else: print('While Else block!')>>>While Else block!루프 중 break문을 만나서 빠져나오면 else 블록은 실행되지 않는다.for i in range(3): print('Loop', i) if i == 1: brea..
- 2024-10-22 16:07:40
- [BW 8] 여러 이터레이터에 대해 나란히 루프를 수행하려면 zip을 사용하라31514문제 : 가장 긴 이름을 가진 동물을 찾아라.초기 세팅 코드longest_name = Nonemaxi = 0animals = ['outer', 'hamster', 'dog']counts = [len(n) for n in animals]배열 인덱스 i를 사용한 코드# 인덱스 i를 두 번 참조하여 시각적으로 잡음이 많다.for i in range(len(animals)): count = counts[i] if maxi >>hamsterzip을 사용한 코드for name, count in zip(animals, counts): if count > maxi: longest_name = name maxi = countprint(longest_name)>>>hamsterzi..
- 2024-10-22 16:06:45
- [BW 7] range보다는 enumerate를 사용하라31514💡 리스트를 이터레이션하면서 리스트의 몇 번째 원소를 처리 중인지 알아야 할 때는 enumerate를 사용하는 것이 좋다. range를 사용한 코드animal_list = ['수달', '아기비단털쥐', '짱구']for i in range(len(animal_list)): animal = animal_list[i] print(f'{i + 1}번은 {animal}.')>>>1번은 수달.2번은 아기비단털쥐.3번은 짱구.enumerate를 사용한 코드enumerate는 이터레이터를 지연 계산 제네레이터(lazy generator)로 감싼다.enumberate는 루프 인덱스와 이터레이터의 다음 값으로 이뤄진 쌍을 넘겨준다.# 다음 코드를 살펴보면 enumerate가 반환한 이터레이터가 어떻게 동작하는..
- 2024-10-22 16:02:41
- [BW 6] 인덱스를 사용하는 대신 대입을 사용해 데이터를 언패킹하라31514💡 tuple : 값으로 이뤄진 불변 순서쌍을 만들어낼 수 있는 내장 타입💡 언패킹 구문 : 한 문장 안에서 여러 값을 대입할 수 있다. 언패킹 구문 예시 1animals = ('수달', '강아지')outer, dog = animalsprint(outer, '&', dog)>>>수달 & 강아지언패킹 구문 예시 2animals = [('모카', '수달'), ('짱구', '강아지')]for rank, (name, cate) in enumerate(animals, 1): print(f'#{rank}: {name}는 {cate}입니다.)>>>#1: 모카는 수달입니다.#2: 짱구는 강아지입니다.결론언패킹은 시각적인 잡음을 줄이고 코드를 더 명확하게 한다.
- 2024-10-22 16:01:46
- [BW 5] 복잡한 식을 쓰는 대신 도우미 함수를 작성하라31514파이썬은 문법이 간결하므로 상당한 로직이 들어가는 식도 한 줄로 작성할 수 있다. 다음과 같은 질의 문자열이 있다고 가정해보자.from urllib.parse import parse_qsvar = parse_qs('빨강=5&파랑=0&초록=', keep_blank_values=True)print(repr(var))>>>{'빨강': ['5'], '파랑': ['0'], '초록': ['']}파라미터가 없거나 비어 있을 경우 0이 디폴트 값으로 대입되게 하려면 어떻게 해야할까? 다음과 같이 if 문이 아닌, if 식을 사용할 수 있다.red = var.get('빨강', [''])[0] or 0green = var.get('초록', [''])[0] or 0outer = var.get('수달', [''])[0] or..
- 2024-10-22 16:00:24
- [BW 4] f-문자열을 통한 인터폴레이션31514💡 형식화 : 미리 정의된 문자열에 데이터 값을 끼워 넣어서 사람이 보기 좋은 문자열로 저장하는 과정 % 형식화 연산자 사용과 문제점a = 12345b = 6789print('a의 값: %d, b의 값: %d' % (a, b))>>>a의 값: 12345, b의 값: 6789형식 지정자 : %s, %x, %f, %d 등을 말하며, 해당 위치에 지정한 문자를 형식화한다. 첫 번째 문제점오른쪽에 있는 tuple 내 데이터의 순서를 바꾸거나 값의 타입을 바꾸면 오류가 발생할 수 있다.key = "outer"value = 8.23miss_ordered_tuple = '%-10s = %.2f' % (value, key)print(miss_ordered_tuple)>>>TypeError: must be real n..
- 2024-10-22 15:58:11
- [BW 2] PEP 8 스타일 가이드를 따르라31514💡 PEP 8 : 파이썬 코드를 어떤 형식으로 작성할지 알려주는 스타일 가이드 PEP 8의 장점코드에 더 친숙하게 접근하고, 가독성이 좋아진다.다른 파이썬 프로그래머들과 쉽게 협력할 수 있다. 공백탭 대신 스페이스를 사용해 4칸 들여쓰기하라.라인 길이는 79개 문자 이하여야 한다.긴 식을 다음 줄에 이어서 쓸 경우에는 4칸 들여쓰기하라.파일 안에서 각 함수와 클래스 사이에는 빈 줄을 두 줄 넣어라.클래스 안에서 메서드와 메서드 사이에는 빈 줄을 한 줄 넣어라.딕셔너리에서 키와 콜론(:) 사이에는 공백을 넣지 않고, 콜론 다음에 빈 칸을 넣고 값을 넣어라.변수 대입에서 = 전후에 빈 칸을 넣어라.타입 표기를 덧붙이는 경우에는 변수 이름과 콜론 사이에 공백을 넣지 않도록 주의하고, 콜론과 타입 정보 사이에..
- 2024-10-22 15:55:35
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)