티스토리 뷰
"""
파이썬 공부 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단원부턴 클래스랑 모듈 패키지 와다다 나오는데 정신 단단히 차려야징
벌써 낼 금요일이네
끝
'🐍파이썬 > 📕점프 투 파이썬' 카테고리의 다른 글
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 |