[파이썬] 익히고 응용하기

osdsoonhyun·2022년 1월 31일
0

파이썬

목록 보기
9/10
post-thumbnail

지금까지 파이썬 문법을 배웠으니 응용하기!

구구단

  • 함수 이름은?
    - GuGu
  • 입력 받는 값은?
    - 2
  • 출력하는 값은?
    - 2,4,6,8,...,18
  • 결과는 어떤 형태로?
    - 리스트
>>> def GuGu(n):
>>> 	result = []
>>> 	i = 1
>>> 	while i < 10
>>> 		result.append(n*i)
>>> 		i = i + 1
>>> 	return result
>>> print(GuGu(2))

3과 5의 배수 합하기

문제
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)총 페이지 수
5101
15102
25103
30103
>>> 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

탭을 4개의 공백으로 바꾸기

  • 필요한 기능은?
    - 문서 파일 읽어 들이기, 문자열 변경하기

  • 입력 받는 값은?
    - 탭을 포함한 문서 파일

  • 출력하는 값은?
    - 탭이 공백으로 수정된 문서 파일

#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드라이브 밑에 있는 폴더들이 다 나온다

0개의 댓글