Language/Python

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

림밤빵 2020. 12. 30. 01:13
728x90

PyCharm을 이용하여 연습문제를 풀었다.

 

Q1.

매개변수로 number을 받는 함수 is_odd(number)를 작성하였다

2로 나눈 나머지가 0 이면 True를 반환하고 그렇지 않으면 False를 반환한다.

13,12,10을 넣어 출력 값을 확인하였다.

def is_odd(number):
    if number % 2 == 0:
        return True
    else:
        return False

print(is_odd(13))
print(is_odd(12))
print(is_odd(10))

 

Q1 출력 결과

 

Q2.

매개변수로 *number을 받는 함수 average(*number)를 작성하였다.

매개변수 앞에 *을 붙여서 여러 개의 입력을 받을 수 있도록 하였다.

for문에서 number를 차례로 더해준다.

result값으로 sum/number의 개수를 한 뒤 반환해준다.

입력 개수를 다르게 하여 코드를 확인해 보았다.

def average(*number):
    sum = 0
    for i in number:
        sum += i
    result = sum/len(number)
    return result

print(average(1,2,3))
print(average(10,11,12,13,14,15))

 

Q2 출력 결과

 

Q3.

input함수는 입력 값을 문자열로 저장한다.

따라서 input1 + input2를 문자열의 덧셈 형태로 계산하여 3과 6을 순서대로 출력한 형태인 36을 출력한다.

이를 정수로 바꿔주는 함수 int()를 이용하였다.

input1과 input2에 정수 값이 저장되어  total = 3 + 6을 계산한다.

결괏값은 9이다.

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

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

 

Q3 출력 결과

 

Q4.

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

print함수에서 1번과 2번은 같은 의미로, 띄어쓰기 없이 문자열들을 더해 출력한다.

띄어쓰기를 하고 싶으면 ,를 적어주면 된다.

.join앞의 ""를 각 단어 사이에 넣어 리스트의 문자열을 하나로 출력하는데 띄어쓰기를 하지 않았으므로 4번의 결과 또한 출력 없이 문자들이 나열된 형태이다.

따라서 2번의 출력 값만 다르다.

 

Q4 출력 결과

 

Q5.

f1에서 파일을 열어준 후, f1.close()로 닫아 주어야 오류 없이 읽기가 가능하다.

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

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

Q5 출력 결과

 

Q6.

다시 실행하여도 해당 문자들을 유지하기 위하여 'a'로 해당 파일을 열어준다.

input함수를 통해 사용자에게 문자를 입력받고, f.write()로 파일에 입력해준다.

with를 이용하여 파일을 열었으므로 자동으로 close된다.

두 번째 with에서는 'r'모드로 f.read()로 파일을 읽고, print로 화면에 출력해준다.

abcd를 입력하고 다시 실행하여 efg를 입력하였을 때 이전 문자열과 함께 abcdefg가 출력된 것을 확인할 수 있다.

with open("test.txt", 'a')as f:
    f.write(input("저장할 문자를 입력하세요: "))

with open("test.txt", 'r')as f:
    print(f.read())

Q6 출력 결과 1
Q6 출력 결과 2

 

Q7.

우선 java가 있는지 확인하기 위하여 'r'으로 해당 파일을 연다.

data에 f1.read()를 이용하여 해당 파일의 내용을 저장한다.

만약 "java"가 있다면, f1을 닫고, replace()를 이용하여 data의 java부분을 python으로 바꾼다.

파일을 f2로 열고, 바뀐 데이터를 다시 파일에 써준다. 

이때, 'w'로 파일을 열었으므로 이전 내용은 삭제되어 열린다.

만약 data에 "java"가 없다면 찾지 못하였다는 메세지를 출력한다.

마지막으로, f3로 파일을 열어 제대로 바뀌었는지 확인한다.

f1 = open("test.txt", 'r')
data = f1.read()
if "java" in data:
    f1.close()
    data = data.replace("java", "python")
    with open("test.txt", 'w') as f2:
        f2.write(data)
else:
    print("java를 찾지 못하였습니다.")

with open("test.txt", 'r') as f3:
    print(f3.read())

Q7 출력 결과

728x90