코딩공부/점프 투 파이썬

## 점프 투 파이썬 - 4장 연습문제

integerJI 2020. 2. 1. 23:08

## 점프 투 파이썬 - 4장 연습문제 

 

출처 : https://wikidocs.net/12769#04

 

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

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

print(is_odd(3)) >>> False 

# is_odd(3)은 2로 나눴을 때 0이 아니라 홀수인 False가 출력된다. 



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

 

# 해설

def avg_numbers(*args): # 입력 개수에 상관없이 사용하기 위해 *args를 사용

    result = 0

    for i in args:

        result += i

    return result / len(args)

 

print(avg_numbers(1, 2)) #>>> 1.5

print(avg_numbers(1,2,3,4,5)) #>>> 3.0


# 나의 문제 일단 문제 이해력이 딸린다.

# 입력된 문자라 생각해서 input을 사용했다.

# 입력된 값이 어캐 입력되는지 너무 복잡하게 생각했다.


# Q3. 다음은 두 개의 숫자를 입력받아 더하여 돌려주는 프로그램이다. 
''' 
input1 = input("첫 번째 숫자를 입력하세요:") 
input2 = input("두 번째 숫자를 입력하세요:") 

total = input1 + input2 
print("두 수의 합은 %s 입니다" % total) 
이 프로그램을 수행해 보자. 

첫번째 숫자를 입력하세요:3 
두번째 숫자를 입력하세요:6 
두 수의 합은 36입니다
3과 6을 입력했을 때 9가 아닌 36이라는 결괏값을 돌려주었다. 이 프로그램의 오류를 수정해 보자. 

※ int 함수를 사용해 보자. 
''' 

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

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

# input 받은 값이 int형이 아니었다. 바꿔보니 해결 


# Q4. 다음 중 출력 결과가 다른 것 한 개를 골라 보자. 
''' 
1. print("you" "need" "python") 
2. print("you"+"need"+"python") 
3. print("you", "need", "python") 
4. print("".join(["you", "need", "python"])) 
''' 

# 3번이다. ","로 나눴기 때문에 모두 youmeedpython이 출력되지만 3번은 you need python이다. 


# 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() 

# 닫아주는 문장이 없었다 ;; 넣으니까 바로 되네 


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

text= input("") 
f = open('test.txt', 'a') 
f.write(text) 
f.write("\n") 
f.close() 

# 기존 작성한 내용을 유지하기 위해 'a'를 사용했다. 그리고 그대로 저장하니까 줄 바꿈이 안되어서 \n도 추가했다. 

# Q7. 다음과 같은 내용을 지닌 파일 test.txt가 있다. 이 파일의 내용 중 "java"라는 문자열을 "python"으로 바꾸어서 저장해 보자. 
''' 
Life is too short 
you need java 
※ replace 함수를 사용해 보자. 
''' 

 

# 해설

 

f = open('test.txt', 'r')

body = f.read()

f.close()

 

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

 

f = open('test.txt', 'w')

f.write(body)

f.close()

 

# 나의 문제 파일에 관한부분에 약하다.