파이썬 : 처음 배우는 프로그래밍 8강 Quiz 오답풀이

마법사 슬기·2021년 10월 22일
0

파이썬

목록 보기
5/7

Q 파일 읽기 2

numbers.txt 파일에는 다음과 같이 숫자가 나열되어 있습니다.

324
103
90
...

이 파일을 읽어서 파일안에 등장하는 모든 숫자들 중 짝수의 합을 구하려 합니다.
다음중 코드의 빈칸에 알맞는 코드는 무엇인가요?

sum = 0
f = open("numbers.txt", "r")
for line in f:
	number = int(line.strip())
	if number % 2 != 0:
	____________
	sum += number
f.close()

해당 빈칸에 들어갈 답은 continue다.
처음엔 break를 골랐음... 그러면 반복문 자체가 깨지는 건데, 답을 몰랐다.

Python 기본 문법에 있어 pass, continue break의 차이점

  1. pass : 실행할 코드가 없는 것으로 다음 행동을 계속해서 진행합니다.
  2. continue : 바로 다음 순번의 loop를 수행합니다.
  3. break : 반복문을 멈추고 loop 밖으로 나가도록합니다.

출처) https://chancoding.tistory.com/7


Q 이미지를 다루는 코드 읽기

다음 함수는 무엇을 하는 함수인가요?

def foo(canvas, img, x1, y1):
	w,h = img.size()
		for y in range(h):
			for x in range(w):
				canvas.set(x1 + x, y1 +y, img.get(x,y))

나의 오답 : 이미지의 크기를 변경하는 함수
정답 : 이미지를 복사하여 다른 이미지에 붙여넣는 함수
틀린이유 : canvas와 image가 따로 있는 것을 알아차리지 못함
추가적으로 상기하고 가면 좋을 내용
: x1과 y1은 img 값을 놓을 위치다.
: img.get(x,y)는 x,y 점에 있는 색깔을 얻는 함수다.


Q 파일 파일 읽기 1

planets.txt 파일에는 다음과 같이 행성의 이름이 나열되어 있습니다.

Mercury
Venus
Earth
Mars
Jupiter

이 파일을 읽어서 행성의 이름으로 이루어진 리스트를 만드려 합니다. 다음 코드의 빈칸에 알맞는 코드는 무엇인가요?

planet = []
f = ____________
for line in f:
	planets.append(line.strip())
f.close()

내가 선택한 답 : "planets.txt".readlines()
정답 : open("planets.txt", "r")
틀린 이유 : readlines()의 개념을 몰라서.

이해해야 하는 부분
: 뒤에서 for 반복문을 통해 line.strip()를 append 해주고 있으므로, open만 하기!

readlines 함수는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다. 따라서 위 예에서 lines는 리스트 ["1 번째 줄입니다.\n", "2 번째 줄입니다.\n", ..., "10 번째 줄입니다.\n"]가 된다.

출처) https://wikidocs.net/26 (해당 링크를 참고하자)


profile
주니어 웹개발자의 성장 일지

0개의 댓글