본문 바로가기

루프7

파이썬처음배우기: VI. 빠르게 또또또, 7부 369게임, 레벨 3(ft. escape sequence, f-string). help() 이스케이프 시퀀스 end 가지런히 박수를 친 총 횟수 이번 글은 루프의 마지막이자 디지털 369 게임의 3단계입니다. 우선 앞에서 언급한 대로 369 게임의 출력 형식부터 다음처럼 변경하겠습니다. 결과: 1 2 짝 ... 짝 짝짝 100 앞에서와 달리 숫자든 박수든 한쪽만 출력하되, 빈칸 하나로 간격을 유지합니다. 물론 결과가 출력되는 창의 너비에 따라 여러 행으로 나뉘기는 합니다. 아래는 지난 글에서 구현한 369 게임 레벨 2의 코드입니다. # game369_lv2.py for i in range(1, 101): str_i = str(i) count_369 = 0 for x in str_i: if (x == '3') or (x == '6') or (x == '9'): count_369 +.. 2020. 5. 17.
파이썬처음배우기: VI. 빠르게 또또또, 6부 369게임, 레벨 2 DRY 레벨 2의 전체 구조 Wishful Thinking 3·6·9의 개수 판단 디버깅 최종 코드 이번에는 앞에서 구현한 디지털 369 게임을 한 단계 업그레이드해 보겠습니다. 2단계 369 게임의 규칙은 다음과 같습니다. 1부터 100까지 숫자를 세다가 3이나 6, 9가 들어가는 숫자에서는 숫자를 말하지 않고 박수를 친다. 단, 박수는 3이나 6, 9가 들어간 총 개수만큼 친다. 다음은 게임을 실행한 결과입니다. 결과: 1: 1 ... 3: 짝 ... 96: 짝짝 ... 100: 100 1단계보다 조금(?) 더 어려워졌죠? 우선 지난 369 게임 레벨 1의 소스 코드를 다시 확인하겠습니다. 이 코드를 바탕으로 추가할 곳은 추가하고 다듬을 곳은 다듬어 레벨 2의 목적을 달성해야 합니다. 다시 처음부터,.. 2020. 5. 6.
파이썬처음배우기: VI. 빠르게 또또또, 5부 - for(feat. 369게임) 디지털 369게임, 레벨 1 논리의 틀 최종 코드 디지털 369게임, 레벨 1 이번에는 for 루프를 연습하겠습니다. 앞으로 세 단계에 걸쳐 369게임의 디지털 버전을 구현해 보겠습니다. 우선 1단계는 다음 규칙을 적용하겠습니다. 1부터 100까지 숫자를 세다가 3이나 6, 9가 들어가는 숫자에서는 숫자를 말하지 않고 박수를 친다. 단, 박수는 한 번만 친다. 3이나 6, 9의 배수가 아닙니다. 3이나 6, 9가 들어가는 수에서 박수를 쳐야 합니다. 결과는 다음과 같습니다. 결과: 1: 1 2: 2 3: 짝 ... 13: 짝 ... 99: 짝 100: 100 전체 논리 구조부터 세워 볼까요? 1에서 100까지 숫자를 센다는 것은 for 루프가 적당해 보입니다. 횟수가 정해진 루프니까요. 이 루프 안에서 .. 2020. 4. 28.
파이썬처음배우기: VI. 빠르게 또또또, 4부 - for(feat. range()) for 반복 변수 루프의 중첩 for 이번에는 for 루프를 살펴보겠습니다. 앞서 소개한 대로 for는 횟수를 미리 정해 두고 반복하는 루프입니다. 프로그래밍에서 반복 횟수를 지정하는 방식은 여러 가지입니다. 파이썬에 적용된 방식이 어떤 논리 구조를 바탕으로 만들어졌는지 다음 상황을 빗대어 소개하겠습니다. 철수는 앞으로 100일 동안 하루도 빠짐없이 줄넘기를 하기로 했다. 횟수는 그때그때 몸 상태에 따라 달라질지언정 100일 ‘개근’을 꼭 이루고 싶었다. 다만 처음부터 욕심을 부리면 중간에 포기할 것 같아 일단 일주일 동안 빠지지 않는 것을 1차 목표로 삼았다. 그래서 오늘부터 일주일을 종이에 쓰고, 줄넘기를 하러 나갈 때마다 해당 날짜에 커다랗게 X 표시를 했다. 줄넘기를 print('jump rope.. 2020. 4. 25.
파이썬처음배우기: VI. 빠르게 또또또, 3부 - while(feat. DRY) 암호 변경 예 논리 흐름 최종 코드 지난 2부에서는 while을 연습했습니다. 여기서는 한 번 더 연습을 이어가겠습니다. 암호를 변경할 때는 대개 새 암호를 두 번 입력해야 합니다. 사용자에게 확인을 받는 과정인 겁니다. 여기서는 이 과정을 단순화해 흉내를 내 보겠습니다. 다만, 아직은 내공이 부족하니 ‘입력 횟수 초과’나 ‘적절한 암호 여부’ 등은 고려하지 않겠습니다. 그리고 사용자가 암호를 입력할 때 ‘*’ 등으로 대신 보여 주는 기능도 배제하겠습니다. 지금은 무조건 같은 암호가 두 번 입력될 때까지 무한대로 입력을 요구하고, 입력한 두 암호가 일치하면 암호가 변경되었다는 안내 문구만을 출력하겠습니다. 자, 어떻게 논리를 세워야 할까요? 우선 결과를 제시하자면 다음과 같습니다. 결과 1: 새 암호를 .. 2020. 4. 17.
파이썬처음배우기: VI. 빠르게 또또또, 2부 - while(feat. 함수 만들기) while 완성하기 increase madness 다듬기 practice wellness 다듬기 최종 코드 지난 1부에서는 먼저 루프loop의 개념을 살펴보았습니다. 반복 조건을 따지는 while과 반복 횟수를 따지는 for가 대표적인 두 루프였습니다. 물론 프로그래밍 언어마다 조금씩 다른 루프를 다양하게 제공하지만, 따지고 보면 모두 이 두 루프의 변형입니다. 그리고 while 루프의 구조와 작동 과정을 살펴보았습니다. while에서는 루프가 끝나는 상황을 직접 만들어 넣어야 한다는 것이 핵심이었습니다. while 완성하기 여기서는 지난 내용을 바탕으로 실제 코드를 작성해 보겠습니다. 일단 설명을 위해 지난 글에서 소개한 가짜 파이썬 코드를 다시 싣겠습니다. madness = 0 at_home = Tr.. 2020. 4. 9.
파이썬처음배우기: VI. 빠르게 또또또, 1부 - 루프 속으로 빠르게 또또또, 루프 속으로 루프의 정의 while VI. 빠르게 또또또, 루프 속으로 일상생활에서든 전문분야에서든 우리는 컴퓨터를 사용해 원하는 바를 얻어냅니다. 컴퓨터가 할 수 있는 일은 이루 헤아릴 수 없이 많겠지만, 어떤 일을 하더라도 내부적으로는 빠른 속도의 반복 처리가 기본입니다. TOP500 슈퍼컴퓨터 사이트에 따르면 2019년 11월을 기준으로 세계에서 가장 빠른 컴퓨터는 IBM의 서밋Summit입니다. 순간 처리 속도가 무려 200페타클롭스까지 올라갔다고 합니다. 플롭스FLOPS는 floating-point operations per second, 즉 초당 부동소수점 연산 횟수를 가리키고, 페타는 테라(기가의 1,000배)의 1,000배이므로 10의 15제곱, 즉 1천 조에 해당합니다. .. 2020. 4. 8.