프로그램을 만들 때, 가장 먼저 '입력'과 '출력'을 생각하라!
n 입력하면 n단 출력
- 함수 이름은?
GuGu- 입력 받는 값은?
2- 출력하는 값은?
2, 4, 6, 8,.., 18- 결과는 어떤 형태로?
리스트
# for문
def GuGu(n):
result = []
for i in range(1, 10):
result.append(n*i)
return result
print(GuGu(2))
>>> [2, 4, 6, 8, 10, 12, 14, 16, 18]
# while문
def GuGu(n):
result = []
i = 1
while i < 10:
result.append(n*i)
i += 1
return result
print(GuGu(2))
>>> [2, 4, 6, 8, 10, 12, 14, 16, 18]
10미만의 자연수에서 3과 5의 배수를 구하면 3, 5, 6, 9이고 이들의 총합은 23이다.
1000미만의 자연수에서 3의 배수와 5의 배수의 총합을 구하라.
- 입력 받는 값은?
1~999(1000 미만의 자연수)- 출력하는 값은?
3의 배수와 5의 배수의 총합- 생각해 볼 것은?
3의 배수와 5의 배수는 어떻게 찾지?
3의 배수와 5의 배수가 겹칠 때는 어떻게 하지?
sum = 0
for n in range(1, 1000):
if n % 3 == 0 or n % 5 == 0:
sum += n
print(sum)
>>> 233168
게시물의 총 건수와 한페이지에 보여줄 게시물 수를 입력으로 주었을 때 총 페이지 수를 출력하는 프로그램
- 함수 이름은?
GetTotalPage- 입력 받는 값은?
게시물의 총 건수(m), 한 페이지에 보여줄 게시물 수(n)- 출력하는 값은?
총 페이지 수
def getTotalPage(m, n):
if m % n == 0:
return m // n
else:
return m // n + 1
print(getTotalPage(5, 10))
print(getTotalPage(15, 10))
print(getTotalPage(25, 10))
print(getTotalPage(30, 10))
>>> 1
2
3
3
원하는 메모를 파일에 저장하고 추가 및 조회가 가능한 간단한 메모장을 만들어보자.
python3 memo.py -a "Life is too short"
- 필요한 기능은?
메모 추가하기, 메모 조회하기- 입력 받는 값은?
메모 내용, 프로그램 실행 옵션- 출력하는 값은?
memo.txt
# 테스트
import sys
option = sys.argv[1] #-a
memo = sys.argv[2] #"Life is too short"
print(option)
print(memo)
실행 >>> python3 memo.py -a "간단한 메모장 만들기!"
결과값 >>>
# 쓰기모드
import sys
option = sys.argv[1] #-a
if option == '-a': #쓰기
memo = sys.argv[2] #"간단한 메모장 만들기!"
f = open('memo.txt', 'a')
f.write(memo)
f.write('\n')
f.close()
실행 >>> python3 memo.py -a "간단한 메모장 만들기!"
결과값 >>>
# 읽기모드 추가
import sys
option = sys.argv[1] #-a
if option == '-a': #쓰기
memo = sys.argv[2] #"간단한 메모장 만들기!"
f = open('memo.txt', 'a')
f.write(memo)
f.write('\n')
f.close()
elif option == '-v': #읽기
f = open('memo.txt')
memo = f.read()
f.close()
print(memo)
실행 >>> python3 memo.py -v
결과값 >>>
python3 tabto4.py a.txt b.txt
- 필요한 기능은?
문서 파일 읽어 들이기, 문자열 변경하기- 입력 받는 값은?
탭을 포함한 문서 파일- 출력하는 값은?
탭이 공백으로 수정된 문서 파일
# 테스트
import sys
src = sys.argv[1]
dst = sys.argv[2]
print(src)
print(dst)
실행 >>> python3 tabto4.py a.txt b.txt
결과값 >>>
# a.txt = tab으로 적은 파일 / b.txt = tab을 space*4로 변경해준 파일
import sys
src = sys.argv[1]
dst = sys.argv[2]
f = open(src) #a.txt 오픈
tab_content = f.read()
f.close()
space_content = tab_content.replace("\t", " "*4) #\t = tab
f = open(dst, 'w') # tab을 space로 바꾼걸 b.txt 생성해서 저장해주기
f.write(space_content)
f.close()
실행 >>> python3 tabto4.py a.txt b.txt
결과값 >>>
특정 디렉터리부터 시작해서 그 하위 모든 파일 중 파이썬 파일(*.py)만 출력해 주는 프로그램을 만들어보자.
# 하위 폴더, 파일 나열
import os #외장함수
def search(dirname):
print(os.listdir(dirname))
search("/Users/choihyerin")
>>> choihyerin 밑에 있는 파일이나 폴더들이 쫘르륵 나열됨! #파일 하나하나의 이름, 전체 경로 X
# 전체 경로(os.path.join)
import os #외장함수
def search(dirname):
filenames = os.listdir(dirname)
for filename in filenames:
full_filename = os.path.join(dirname, filename)
print(full_filename)
search("/Users/choihyerin")
# 파이썬 확장자가 있는 것만 출력(splitext)
import os #외장함수
def search(dirname):
try: #에러 예외처리
filenames = os.listdir(dirname)
for filename in filenames:
full_filename = os.path.join(dirname, filename)
if os.path.isdir(full_filename):
search(full_filename)
else:
ext = os.path.splitext(full_filename)[-1]
if ext == ".py":
print(full_filename)
except PermissionError:
pass
search("/Users/choihyerin")
입력과 출력을 고려해서 원하는 프로그램을 단계적으로 작성해야한다..!
Reference
참고한 영상