<2주차_1일>파이썬 중급과 중급문풀

Nary Kim·2023년 5월 11일
0
post-thumbnail

파이썬 중급은 마무리로 예외처리와 파일 입출력에 대해 공부하였다.

1. 예외처리

  • 발생된 예외를 별도 처리함으로써 프로그램 전체의 실행에 문제가 없도록 함.
  • try ~ except ~ else ~ finally 로 감싼다.
	n1=10; n2 = 0
	try:
		print(n1/ n2)
	except:
		print('예상치 못한 예외가 발생했습니다.')
   		print('다른 프로그램 실행에는 문제 없습니다.')
    else:
    	print('try부분에 오류가 없어 이 부분이 실행되었습니다.')
    finally:
    	print('이 부분은 무조건 실행합니다. ')
  • raise 키워드를 이용하여 예외를 발생시킬 수 있다.

2. 파일 입출력

  • open(), rea(), write(), close()를 이용해 텍스트 파일을 다룬다.
  • open('파일명', '파일모드')
  • 어떤 목적으로 open 할지에 따라 파일모드를 정한다.
    'w' : 쓰기 전용(파일이 있으면 덮어씌움)
    'a' : 쓰기 전용(파일이 있으면 덮붙임)
    'x' : 쓰기 전용(파일이 있으면 에러발생)
    'r' : 읽기 전용(파일이 없으면 에러발생)
  • with ~ as 문을 이용하면 파일 닫기(close)를 생략할 수 있다.
  • write(데이터명)는 하나씩, writelines(데이터명)는 한꺼번에 쓸수 있다.
  • readline()은 한줄씩, readlines()는 한번에 읽을 수 있다.

3. 파이썬 중급 문풀

  • 48번 로또 모듈 만들기
	import random


	def setUserNum():
    	userNum = []
    	for i in range(6):
        	userNum.append(int(input('번호(1~45) 입력 : ')))
    	return userNum


	def setRandomNum():
    	randNum = []
    	randNum = random.sample(range(1,45),7)
    	return randNum


	def checkNum(usrs, coms):
    	bonus = coms[6]
    	del coms[6]

    	checkNum = []

    	for usr in usrs:
        	if usr in coms:
            	checkNum.append(usr)

    	n = len(checkNum)
    	if n == 6:
        	print('1등 당첨!!!!! 축하합니다!!!')
    	elif n == 5 and bonus in usrs:
        	print('2등 당첨!!!!! 축하합니다!!!')
    	elif n == 5:
        	print('3등 당첨!!!!! 축하합니다!!!')
    	elif n == 4:
        	print('4등 당첨!!!!! 축하합니다!!!')
    	elif n == 3:
        	print('5등 당첨!!!!! 축하합니다!!!')

    	if n > 2:
        	print('맞은 번호 :', sorted(checkNum))
    	else:
        	print('아쉽습니다. 다음기회에~~~')

    	print('로또 당첨 번호 :', sorted(coms))
    	print('보너스 번호 : ', bonus)
    	print('나의 로또 번호 :', sorted(usrs))
  • 59번 mp3 player 클래스 만들기.
	import random
	from time import sleep
	class Song:

    	def __init__(self, t, s, pt):
        	self.title = t
        	self.singer = s
        	self.playtime = pt

    	def printSongInfo(self):
        	print('{} 님의  {}  (재생시간 : {}초)'.format(self.singer, self.title, self.playtime))

	class Player:

    	def __init__(self):
        	self.songList = []
        	self.isLoop = False

    	def addSong(self, s):
        	self.songList.append(s)


    	def play(self):
        	if self.isLoop:
            	while self.isLoop:
                	for s in self.songList:
                    	self.printSongInfo(s)
                    	sleep(s.playtime)
        	else:
            	for s in self.songList:
                	self.printSongInfo(s)
                	sleep(s.playtime)

    	def printSongInfo(self, s):
        	print ('{} 님의  {}  (재생시간 : {}초)'.format(s.singer, s.title, s.playtime))


    	def shuffle(self):
        	random.shuffle(self.songList)
        	print('셔플!')

    	def setIsloop(self, flag):
        	self.isLoop = flag
profile
나는 무엇이 될것인가!!

0개의 댓글