>>> def GuGu(n):
>>> result = []
>>> i = 1
>>> while i < 10
>>> result.append(n*i)
>>> i = i + 1
>>> return result
>>> print(GuGu(2))
문제
10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다 1000미만의 자연수에서 3의 배수와 5의 배수의 총합을 구하라.
입력 받는 값은?
- 1 ~ 999(1000미만의 자연수)
출력하는 값은?
- 3의 배수와 5의 배수의 총합
생각해 볼 것은?
- 3의 배수와 5의 배수는 어떻게 찾지?
- 3의 배수와 5의 배수가 겹칠 때는 어떻게 하지?
>>> // while문
>>> n = 1
>>> while n < 1000:
>>> print(n)
>>> n += 1
>>> /// for문
>>> result = 0
>>> for n in range(1,1000):
>>> if n % 3 == 0 or n % 5 == 0
>>> result += n
>>> print(result)
게시판의 총 건수와 한 페이지에 보여줄 게시물 수를 입력으로 주었을 때 총 페이지수를 출력하는 프로그램
함수 이름은?
- GetTotalPage
입력받는 값은?
- 게시물의 총 건수(m), 한 페이지에 보여 줄 게시물 수(n)
출력하는 값은?
- 총 페이지 수
게시물의 총 건수(m)와 페이지당 보여줄 게시물 수(n)의 규칙을 알아보자
게시물의 총 건수(m) | 페이지 당 보여줄 게시물 수(n) | 총 페이지 수 |
---|---|---|
5 | 10 | 1 |
15 | 10 | 2 |
25 | 10 | 3 |
30 | 10 | 3 |
>>> def getTotalPage(m,n):
>>> if m % n == 0:
>>> return m // n
>>> else:
>>> return m//n + 1
원하는 메모를 파일에 저장하고 추가 및 조회가 가능한 간단한 메모장을 만들어보자
필요한 기능은?
- 메모 추가하기, 메모 조회하기
입력 받는 값은?
- 메모 내용, 프로그램 실행 옵션
출력하는 값은?
- memo.txt
>>> #memo.py
>>>
>>> option = sys.argv[1]
>>>
>>> if option == '-a':
>>> memo = sys.argv[2]
>>> f = open('memo.txt','a')
>>> f.write(memo)
>>> f.write('\n')
>>> f.close()
asdf
>>> elif option == '-v':
>>> f = open('memo.txt')
>>> memo = f.read()
>>> f.close()
>>> print(memo)
asdf
필요한 기능은?
- 문서 파일 읽어 들이기, 문자열 변경하기
입력 받는 값은?
- 탭을 포함한 문서 파일
출력하는 값은?
- 탭이 공백으로 수정된 문서 파일
#tabto4.py
>>> import sys
>>>
>>> src = sys.argv[1]
>>> dst = sys.argv[2]
>>>
>>> f = open(src)//파일을 읽어서 탭을 교체해주기
>>> tab_content = f.read() //읽어오고
>>> f.close()
>>>
>>> space_content = tab_content.replace("\t"," "*4)
>>>
>>> f = open(dst,'w')//파일로 저장하기, 생성한 파일을 'w'모드로 열기
>>> f.write(space_content)
>>> f.close()
>>> python tabto4.py a.txt b.txt
문제
특정 디렉터리부터 시작해서 그 하위 모든 파일 중 파이썬 파일(*py)만 출력해 주는 프로그램을 만들려면 어떻게 해야 할까?
>>> import os
>>>
>>> def search(dirname):
>>> //print(os.listdir(names)) 전체 경로가 아니므로 절대 경로를 만들어줘야 한다
>>> try:
>>> filenames = os.listdir(dirname) //filenames에 리스트형태로 저장
>>> for filenames in filenames:
>>> full_filenames = is.path.join(dirname,filename) //전체 경로로 만들어준다
>>> if os.path.isdir(full_filename):
//폴더인지 파일인지 검사를 하여 폴더면 한번 더 들어가 수행하게 만들어야 한다
>>> search(full_file) //재귀함수
>>> else:
>>> ext = os.path.splitext(full_filename)[-1]// full_filename 중 확장자만 분리해준다
>>> if ext == ".py":
>>> print(full_filename)
>>> except PermissionError: //권한 때문에 파일이나 폴더에 접근 안될 시
>>> pass
>>>
>>> search("C:/")
//C:\ c드라이브 밑에 있는 폴더들이 다 나온다