본문 바로가기

미래 먹거리를 위하여

[파이썬 정복하기] 점프 투 파이썬 6장 – 파이썬 프로그래밍, 어떻게 시작해야 할까? (책 없이 시작하기)

6. 파이썬 프로그래밍, 어떻게 시작해야 할까?

여기서 부터는 대화형 인터프리터가 아닌 에디터로 작성해야한다.

에디터란 파이썬 코드를 직접 작성할 수 있는 프로그램(코드 편집기) 을 말하는데, Mac에서는 idle(아이들)3를 뜻한다.

6-1. 내가 프로그램을 만들 수 있을까?

문제 입력 출력
<구구단을 작성해보자 (2단)>
1. 함수이름: gugu
2. 입력값: 2
3. 출력값: 2,4,6,8,10,12,14,16,18
4. 결과: 연속된 자료형=리스트로 저장
1. 에디터 실행
2. IDLE Shell 창에 내용 입력
3. 함수 입력
print(gugu(2))
[2, 4, 6, 8, 10, 12, 14, 16, 18] 

# while i < 10: 은 i가 1~9일 때까지만 반복

6-2. 3과 5의 배수를 모두 더하기

문제: 1,000 미만의 자연수에서 3의 배수와 5의 배수의 총합을 구하라.

 

생각해보자. 

총합을 구하라 = 정수의 총합 = total = 0

3의 배수와 5의 배수 = 3 또는 5의 배수 = if i%3==0 or i%5==0: total + = i

1,000 미만의 자연수에서 = 1부터 999까지 =whlie or for in 사용 =범위가 명확할때는 = for in 사용

3과 5의 배수를 모두 더하는 문제풀이

TIP. 코딩 연습을 할 수 있는 사이트 바로가기(프로젝트 오일러)

6-3. 게시판 페이징하기

문제: 게시물의 총 개수(a)한 페이지에 보여 줄 게시물 수를 입력(b)으로 주었을 때 총 페이지 수를 출력(x)하는 프로그램이 필요 

        ex. 총 개수가 5이고 한 페이지에서 보여 줄 게시물 수가 10이면 총 페이지 수는 1이다. (a/b=x(정수))

5/10=1. 즉, a/b=x(정수)가 나오면 값은 그대로 반환 하지만, 소수점이 나오면 +1이 필요하다.

게시판 페이징하기

6-4. 간단한 메모장 만들기

# 내용 예시
1 에디터 실행
> File- New File
> #memo.py 생성

memo.py는
doit 폴더에 저장
2 터미널 실행
> cd /Users/유저네임/doit
python3 memo.py -a "Life is too short"
3 memo.py 실행
코드 수정

4 터미널 실행
> 코드 입력
> cat memo.txt 입력
(파일 안의 텍스트 내용을 터미널에 바로 출력하는 코드)

5 but 에러 발생 시

현재 경로 확인
> pwd 입력

실제 memo.py의 위치 확인
> ls /Users/유저네임/doit 입력
(여기서 memo.py 파일이 꼭 보여야 함)

수정시간확인
ls -l /Users/유저네임/doit/memo.py 입력

※ 두 위치에 서로 다른 memo.py가 두 개 있는 상태라서 Home 쪽을 지우기로 함 
rm /Users/유저네임/memo.py

6 터미널 doit 폴더
> cat memo.txt 입력
(파일 안의 텍스트 내용을 터미널에 바로 출력하는 코드)
> 결과 확인

 

6-5. 탭 문자를 공백 문자 4개로 바꾸기

문제: 문서 파일 안에 있는 탭 문자(Tab)=\t를 공백 문자(Space) 4개로 바꾸어 주는 스크립트를 작성해 보자. 

# 내용 예시
1 에디터 실행 >
tabto4.py 파일 작성
2 터미널 실행 >
터미널 두잇으로 변경
(cd /Users/유저네임/doit)
> 코드입력
3 Spotlight> 텍스트편집기 검색
상단 메뉴 '포멧'> 일반 텍스트 만들기 >  
파일명 및 폴더 지정 및 저장
4 tabto4.py 파일 실행
> 코드 수정 및 저장 >
tabto4.py 파일 끄기
5 터미널 두잇에서 코드 입력
>
python3 tabto4.py a.txt b.txt
> a.txt에 저장된 내용 출력됨
6 tabto4.py 파일 실행
> 코드 수정(탭 문자가 공백 4개로 변경되어 출력) 및 저장
> tabto4.py 파일 끄기
터미널 두잇에서 코드 입력
> 
python3 tabto4.py a.txt b.txt
doit 폴더에 b.txt 생성됨.
 8  에디터 > b.txt 열기
 > 코드 입력
9 에러출력 FileNotFoundError: [Errno 2] No such file or directory: 'b.txt' < 에러코드가 출력되면
현재 에디터의 위치를 확인한다.
10 절대경로로 파일여는 코드입력
> 결과 확인

6-6. 하위 디렉터리 검색하기

문제: 파일 중 파이썬 파일(*.py)만 출력해 주는 프로그램을 만들어 보자. 

# 내용 예시
1 에디터 실행 >
sub_dir_search.py 파일 작성
2 sub_dir_search.py 파일
> 코드 수정 및 저장
> sub_dir_search.py 파일끄기


※ os.listdir를 사용하면 해당 디렉터리에 있는 파일의 리스트를 구할 수 있다. 
os.path.join 함수 = 디렉터리를 포함한 전체 경로를 구할 수 있다.(OS에 맞는 경로 구분자를 자동으로 사용)
3 IDLE 셸 실행
> FIle > Open > sub_dir_search.py 선택 > F5 >
아이들 셸에 doit폴더 내 파일명이 출력됨


파일 하나만 출력된 건, 다른 파일들이 보이지 않게 필터링되거나, 스크롤이 짧아서 일부분만 출력됐을 가능성이 있음.
4 확장자가 .py인 파일만을 출력하도록 코드를 수정 및 저장
> F5


 os.path.splitext는 파일 이름에서 확장자만 추출하는 코드
   ex) os.path.splitext('test.py')를 실행하면 ('test', '.py')라는 튜플을 반환

         os.path.splitext(full_filename)[-1]은 해당 파일의 확장자 '.py'인 경우만 출력
5 IDLE 셸에 출력값 확인
6 하위 디렉터리도 검색이 가능하도록 다음과 같이 코드 변경

try-except 문 사용
: 에러(오류)가 나더라도 프로그램이 멈추지 않게 해주는 예외 처리 구문(에러는 무시하고 나머지 계속 진행)
7 IDLE 셸에 출력값 확인

 

개인사정으로 공부하는게 잠시 중단됐었다.

다시 매일 매일 해야지.

AI교육은 회사에서 못가게한다. 다른 사람들은 다 가게 하면서..

서글프다.