ko ko ko en en en ko ko cs zh ko ko da ko ko ko ko en ko ko en ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko fr ko ko ko ko fr ko ko ko en en ko en zh en en
파이썬 코딩 도장: 20.4 논리 연산자를 사용하지 않고 3과 5의 공배수 처리하기
◀ 20.3 3과 5의 공배수 처리하기20.5 코드 단축하기 ▶︎
논리 연산자 and를 사용하지 않고 3과 5의 공배수를 검사하려면 어떻게 해야 할 까요? 3 * 5 = 15는 3과 5의 최소공배수이므로 15로 나눴을 때 나머지가 0인 값들은 3과 5의 공배수입니다.
for i in range(1, 101):      # 1부터 100까지 100번 반복     if i % 15 == 0:          # 15의 배수(3과 5의 공배수)일 때         print('FizzBuzz')    # FizzBuzz 출력     elif i % 3 == 0:         # 3의 배수일 때         print('Fizz')        # Fizz 출력     elif i % 5 == 0:         # 5의 배수일 때         print('Buzz')        # Buzz 출력     else:         print(i)             # 아무것도 해당되지 않을 때 숫자 출력
1 2 Fizz ... (생략) FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz
i를 15로 나눴을 때 나머지를 구하여 3과 5의 공배수를 구했습니다. 이때는 15라는 숫자 안에 3과 5의 최소공배수라는 뜻이 숨어 있습니다. 따라서 주석에 적절한 설명이 없다면 코드를 읽는 사람이 15의 속 뜻을 알아내야 합니다.
FizzBuzz는 문제가 간단해서 15가 3과 5의 최소공배수라는 것을 쉽게 알 수 있습니다. 하지만 실무에서는 i % 3 == 0 and i % 5 == 0처럼 의미를 명확하게 드러내는 것이 좋습니다.
요즘은 프로그래밍 언어의 성능도 좋아졌고, CPU도 매우 빨라졌으므로 사소한 부분에 신경쓰기 보다는 가독성을 높이는 쪽으로 코드를 작성합니다.
읽기 쉽고 이해하기 쉬운 코드를 가독성이 좋다고 말합니다. 코드를 복잡하게 작성할 수록 프로그래밍 실력이 뛰어나다고 착각하기 쉽지만 정반대입니다. 즉, 복잡한 로직을 간단하고 쉽게 작성할 수록 프로그래밍 실력이 뛰어나다고 할 수 있습니다.
프로그래밍은 만드는 것으로 끝나지 않고, 항상 유지보수가 뒤따릅니다. 특히 규모가 큰 프로젝트는 여러 사람이 협업하여 기능을 만들고 내가 작성한 코드를 다른 사람이 수정하거나, 내가 다른 사람의 코드를 수정하기도 합니다(실무에서는 내가 다른 사람의 코드를 수정해야 하는 일이 대부분입니다). 따라서 다른 사람이 내 코드를 유지보수하기 쉽도록 코드를 작성해야 하고, 내가 만든 코드를 나중에 내가 봤을 때도 이해하기 쉽도록 작성해야 합니다.
◀ 20.3 3과 5의 공배수 처리하기20.5 코드 단축하기 ▶︎
Unit 1. 소프트웨어 교육과 파이썬
Unit 2. 파이썬 설치하기
Unit 3. Hello, world!로 시작하기
Unit 4. 기본 문법 알아보기
Unit 5. 숫자 계산하기
Unit 6. 변수와 입력 사용하기
Unit 7. 출력 방법 알아보기
Unit 8. 불과 비교, 논리 연산자 알아보기
Unit 9. 문자열 사용하기
Unit 10. 리스트와 튜플 사용하기
Unit 11. 시퀀스 자료형 활용하기
Unit 12. 딕셔너리 사용하기
Unit 13. if 조건문으로 특정 조건일 때 코드 실행하기
Unit 14. else를 사용하여 두 방향으로 분기하기
Unit 15. elif를 사용하여 여러 방향으로 분기하기
Unit 16. for 반복문으로 Hello, world! 100번 출력하기
Unit 17. while 반복문으로 Hello, world! 100번 출력하기
Unit 18. break, continue로 반복문 제어하기
Unit 19. 계단식으로 별 출력하기
Unit 20. FizzBuzz 문제
20.1 1부터 100까지 숫자 출력하기
20.2 3의 배수일 때와 5의 배수일 때 처리하기
20.3 3과 5의 공배수 처리하기
20.4 논리 연산자를 사용하지 않고 3과 5의 공배수 처리하기
20.7 연습문제: 2과 11의 배수, 공배수 처리하기
20.8 심사문제: 5와 7의 배수, 공배수 처리하기
Unit 21. 터틀 그래픽스로 그림 그리기
Unit 22. 리스트와 튜플 응용하기
Unit 23. 2차원 리스트 사용하기
Unit 24. 문자열 응용하기
Unit 25. 딕셔너리 응용하기
Unit 26. 세트 사용하기
Unit 27. 파일 사용하기
Unit 28. 회문 판별과 N-gram 만들기
Unit 29. 함수 사용하기
Unit 30. 함수에서 위치 인수와 키워드 인수 사용하기
Unit 31. 함수에서 재귀호출 사용하기
Unit 32. 람다 표현식 사용하기
Unit 33. 클로저 사용하기
Unit 34. 클래스 사용하기
Unit 35. 클래스 속성과 정적, 클래스 메서드 사용하기
Unit 36. 클래스 상속 사용하기
Unit 37. 두 점 사이의 거리 구하기
Unit 38. 예외 처리 사용하기
Unit 39. 이터레이터 사용하기
Unit 40. 제너레이터 사용하기
Unit 41. 코루틴 사용하기
Unit 42. 데코레이터 사용하기
Unit 43. 정규표현식 사용하기
Unit 44. 모듈과 패키지 사용하기
Unit 45. 모듈과 패키지 만들기
Unit 46. 실전예제: 웹의 데이터로 그래프 그리기
C 언어 코딩 도장
- 이 사이트에 실린 모든 내용, 디자인, 이미지, 편집 구성의 저작권은 (주)도서출판 길벗과 지은이에게 있습니다.
- 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다.
- 책의 내용을 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다.
- 링크, SNS 공유는 허용합니다.
서울시 마포구 서교동 월드컵로 10길 56 (서울시 마포구 서교동 467-9)
Copyright © 2016-2021 Coding Dojang