티스토리 뷰

728x90

"""

파이썬 공부 12일차

20200730

"""

 

벌써 내일이면 7월도 끝나네 미쳤네

오랜만에 월간 윤정현 써재끼겠군

 

오늘은 4단원 연습 문제 푸는 날이다.

참 음 어 알듯말듯하네

 

1. 주어진 자연수가 홀수인지 짝수인지 판별해주는 함수(is_odd)를 작성해보자.
def is_odd(number):
	if number % 2 == 1:
		return True
	else:
		return False

 

2로 나누었을 때 나머지가 1이면 홀수이므로 나머지함수를 썼을 때 1이면 True(홀수), 그렇지 않으면 False(짝수)

3과 4를 판별했을 때 True, False가 맞게 나왔음

 

2. 입력으로 들어오는 모든 수의 평균 값을 계산해 주는 함수를 작성해 보자.
(단, 입력으로 들어오는 수의 개수는 정해져 있지 않다.)
def avg_number(*args):
	result = 0
	
    for i in args:
		result += i
	
    return result / len(args)

 

입력값이 몇개인지 모르니 *arg를 매개변수로 지정한다.

평균을 구해야되니까 길이를 구하는 함수를 쓰면 분모가 해결되니까 len함수를 쓰는 건 알았는데, len(i)인 줄 알고 했으나 당연히 오류

생각해보니 매개변수는 args여서 args 쓰니까 해결됐다. 

 

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

total = input1 + input2

print('두 수의 합은 %s 입니다.' % total)
3과 6을 입력했을 때 9가 아닌 36이라는 결과값을 돌려주었다. 이 프로그램의 오류를 수정해보자.
input1 = int(input('첫 번째 숫자를 입력하세요: '))
input2 = int(input('두 번째 숫자를 입력하세요: '))

total = input1 + input2

print('두 수의 합은 %d 입니다.' % total)

input의 경우 모든 결과 값을 string으로 돌려준다.

3과 6의 문자열을 + 연산하면 그냥 나란히 출력하는 거니까 36이라는 결과가 나온다.

input을 정수나 실수로 바꾸려면 저번에 말한 것처럼 앞에 int / float을 붙이면 된다.

%s는 굳이 안 바꿔도 됐을 것 같았지만 숫자니까 바꿔봤다.

 

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

답은 3번이다.

1, 2, 4 모두 띄어쓰기 없이 각각의 문자를 출력하는 구문이지만 3번은 띄어쓰기가 들어가있다.

만약 4번에서 띄어쓰기를 넣고싶다면 큰따옴표 사이에 스페이스 하나 넣으면 된다.

1, 2, 4: youneedpython

3: you need python

 

5. 다음은 "text.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()

파일을 열고 닫지 않은 상태에서 다시 뭔가를 하려고 하면 오류가 발생한다는 건 저번에 언급했었다.

따라서 닫아주는 문장을 작성하면 해결된다.

 

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

f = open('test.txt', 'a')
f.write(user_input)
f.write('\n')

f.close()

저 괄호안의 조건을 충족할 파일모드는 'a'이다.

파일에 user_input을 write 한 다음 줄을 나누기 위해 \n 옵션을 추가하였다.

 

7. 다음과 같은 내용을 지닌 파일 test2.txt가 있다. 이 파일의 내용 중 'java'라는 문자열을 'python'으로 바꾸어서 저장해 보자.
Life is too short
You need java
f = open('test2.txt', 'r')
body = f.read()

f.close()

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

f = open('test2.txt', 'w')
f.write(body)

f.close()

일단 body라는 변수에 test2 파일의 내용을 지정해준다.

그리고 나서 replace 함수로 body의 java를 python으로 바꿔준다.

그 다음 다시 작성해주면 끝

 

4단원도 끝냈당

5단원부턴 클래스랑 모듈 패키지 와다다 나오는데 정신 단단히 차려야징

벌써 낼 금요일이네

 

728x90

'🐍파이썬 > 📕점프 투 파이썬' 카테고리의 다른 글

14. 클래스 2  (0) 2020.12.15
13. 클래스 1  (0) 2020.12.15
11. 사용자 입력과 출력, 파일 읽고 쓰기  (0) 2020.12.15
10. 함수  (0) 2020.12.10
9. 제어문 연습문제  (0) 2020.12.10
댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Total
Today
Yesterday