[Python] 점프투파이썬 04장 연습문제

미남로그·2021년 10월 18일
0

4장 정리

1️⃣ 함수
2️⃣ 입력과 출력
3️⃣ 파일 읽고 쓰기
4️⃣ 연습 문제

점프투파이썬 교재

Q1

주어진 자연수가 홀수인지 짝수인지 판별해 주는 함수(is_odd)를 작성해 보자.

def is_odd(num):
	if num % 2 == 0: print("짝수")
    else: print("홀수")

정답

def is_odd(num):
	if num % 2 == 1:
    		return True
    	else:
        	return False
            
is_odd(3)
is_odd(4)

Q2

입력으로 들어오는 모든 수의 평균 값을 계산해 주는 함수를 작성해 보자. (단 입력으로 들어오는 수의 개수는 정해져 있지 않다.)

def avg(*n):
	result = 0
    	for i in n:
    		result += i
    	return result / len(n)

정답

def avg(*n):
	result = 0
	for i in range(n):
    		result += i
   	return result / len(n)

Q3

다음은 두 개의 숫자를 입력받아 더하여 돌려주는 프로그램이다.

input1 = input("첫번째 숫자를 입력하세요:")
input2 = input("두번째 숫자를 입력하세요:")

total = input1 + input2
print("두 수의 합은 %s 입니다" % total)

프로그램 수행시,

첫번째 숫자를 입력하세요:3
두번째 숫자를 입력하세요:6
두 수의 합은 36 입니다

3과 6을 더했더니 36이라는 결괏값이 나옴. 오류를 고쳐보자.

input1 = input("첫번째 숫자를 입력하세요:")
input2 = input("두번째 숫자를 입력하세요:")

total = int(input1) + int(input2)
print("두 수의 합은 %s 입니다" % total)

int를 사용하면 됨

Q4

다음 중 출력 결과가 다른 것 한 개를 골라 보자.

print("you" "need" "python") # 1
print("you"+"need"+"python") # 2
print("you", "need", "python") # 3
print("".join(["you", "need", "python"])) # 4

3번 - 'you need python' 이 출력되고
1, 2, 4 - 'youneedpython' 출력

print문 안에서 문자열과 ',' 사용시 띄어쓰기가 들어간다

Q5

다음은 "test.txt"라는 파일에 "Life is too short" 문자열을 저장한 후 다시 그 파일을 읽어서 출력하는 프로그램이다.

f1 = open("test.txt", 'w')
f1.write("Life is too short")

f2 = open("test.txt", 'r')
print(f2.read())

이 프로그램은 우리가 예상한 "Life is too short"라는 문장을 출력하지 않는다. 우리가 예상한 값을 출력할 수 있도록 프로그램을 수정해 보자.

정답

f1 = open("test.txt", 'w')
f1.write("Life is too short")
f1.close()

f2 = open("test.txt", 'r')
print(f2.read())
f2.close()

문제의 예에서 잘못된 부분은 close() 파일을 닫아주지 않았기 때문에 다시 열면 저장한 데이터를 읽을 수가 없다.

Q6

사용자의 입력을 파일(test.txt)에 저장하는 프로그램을 작성해 보자. (단 프로그램을 다시 실행하더라도 기존에 작성한 내용을 유지하고 새로 입력한 내용을 추가해야 한다.)

정답

any = input("저장할 내용을 입력하세요: ")
f = open('test.txt', 'a')
f.write(any)
f.close()
f.write('\n')
f.close()

Q7

다음과 같은 내용을 지닌 파일 test.txt가 있다. 이 파일의 내용 중 "java"라는 문자열을 "python"으로 바꾸어서 저장해 보자.

Life is too short
you need java

틀린 답

f = open('text.txt', 'w')
f.write(f.replace('java', 'python'))
print(f.read())

replace를 그냥 아무데나 갖다 쓰면 안 된다...🤮

정답

f = open('test.txt', 'r')
new = f.read()
f.close()

new = new.replace('java', 'python')

f = open('text.txt', 'w')
f.write(new)
f.close()

파일을 모두 읽은 후에, 문자열의 replace 함수를 사용하여 java라는 문자열을 python으로 변경한 다음 저장한다.

profile
미남이 귀엽죠

0개의 댓글