diff --git a/quote.py b/quote.py new file mode 100644 index 0000000..a954ba1 --- /dev/null +++ b/quote.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +"""Terminal random quote CLI. + +Prints one randomly chosen quote from a local list each time it runs. + +Examples: + python quote.py +""" + +import argparse +import random +import sys + + +QUOTES = [ + ("성공은 열정을 잃지 않고 실패를 거듭할 수 있는 능력이다.", "윈스턴 처칠"), + ("삶이 있는 한 희망은 있다.", "키케로"), + ("시작이 반이다.", "아리스토텔레스"), + ("배움에는 지름길이 없다.", "속담"), + ("최고의 복수는 큰 성공이다.", "프랭크 시나트라"), + ("어제로부터 배우고, 오늘을 위해 살고, 내일을 위해 희망하라.", "알버트 아인슈타인"), + ("길이 없으면 만들면 된다.", "한니발"), + ("천 리 길도 한 걸음부터.", "노자"), + ("실패는 성공의 어머니다.", "속담"), + ("피할 수 없으면 즐겨라.", "로버트 엘리엇"), + ("행동하지 않으면 아무 일도 일어나지 않는다.", "요한 볼프강 폰 괴테"), + ("오늘 할 수 있는 일을 내일로 미루지 마라.", "벤저민 프랭클린"), + ("지혜의 시작은 자신이 모른다는 것을 아는 것이다.", "소크라테스"), + ("당신이 할 수 있다고 믿든 할 수 없다고 믿든, 믿는 대로 될 것이다.", "헨리 포드"), + ("위대한 일은 갑자기 이루어지지 않는다.", "에픽테토스"), + ("실패를 두려워하지 마라. 시도하지 않는 것을 두려워하라.", "속담"), + ("자신을 아는 것이 모든 지혜의 시작이다.", "아리스토텔레스"), + ("인생은 자전거를 타는 것과 같다. 균형을 잡으려면 계속 움직여야 한다.", "알버트 아인슈타인"), + ("변화를 두려워하지 마라. 정체를 두려워하라.", "속담"), + ("좋은 습관은 평범한 사람을 비범하게 만든다.", "속담"), + ("포기하지 않는 한 실패한 것이 아니다.", "속담"), + ("가장 어두운 밤도 끝나고 해가 뜬다.", "빅토르 위고"), + ("당신의 시간은 한정되어 있다. 다른 사람의 삶을 사느라 낭비하지 마라.", "스티브 잡스"), + ("작은 발걸음이 큰 여정을 만든다.", "속담"), +] + + +def load_quotes(): + """Return the list of (quote, author) tuples, or empty list if unavailable.""" + return QUOTES + + +def pick_quote(quotes): + """Randomly select one (quote, author) tuple from `quotes`.""" + return random.choice(quotes) + + +def build_parser(): + parser = argparse.ArgumentParser( + prog="quote.py", + description="터미널 무작위 명언 출력 CLI", + ) + return parser + + +def main(): + parser = build_parser() + parser.parse_args() + + quotes = load_quotes() + if not quotes: + print("안내: 표시할 명언이 없습니다. 명언 목록이 비어 있습니다.", file=sys.stderr) + return + + text, author = pick_quote(quotes) + print(f'"{text}" — {author}') + + +if __name__ == "__main__": + try: + main() + except KeyboardInterrupt: + print("\n중단됨") + sys.exit(130)