2021. 4. 21. 10:53ㆍPYTHON/Do it! 점프 투 파이썬
Q1. 다음은 Calculator 클래스이다.
class Calculator:
def __init__(self):
self.value=0
def add(self,val):
self.value+=val
위 클래스를 상속하는 UpgradeCalculator 를 만들고 값을 뺄 수 있는 minus 메서드를 추가해보자. 즉 다음과 같이 동작하는 클래스를 만들어야 한다.
cal=UpgradeCalculator()
cal.add(10)
cal.minus(7)
print(cal.value)
A.
class UpgradeCalculator(Calculator):
def minus(self, val):
self.value-=val
Q2. 객체변수 value가 100 이상의 값은 가질 수 없도록 제한하는 MaxLimitCalculator 클래스를 만들어보자. 즉 다음과 같이 동작해야 한다.
cal=MaxLimitCalculator()
cal.add(50)
cal.add(60)
print(cal.value)
단 반드시 다음과 같은 Calculator 클래스를 상속해서 만들어야 한다.
class Calculator:
def __init__(self):
self.value=0
def add(self, val):
self.value+=val
A.
class MaxLimitCalculator(Calculator):
def add(self, val):
self.value+=val
if self.value>100:
self.value=100
Q3. 다음 결과를 예측해 보자.
1. >>>all([1,2,abs(-3)-3])
False
2. >>>chr(ord('a'))=='a'
True
>>> all([1,2,abs(-3)-3])
False
>>> chr(ord('a'))=='a'
True
Q4. filter와 lambda를 사용하여 리스트 [1, -2, 3, -5, 8, -3]에서 음수를 모두 제거해보자.
list(filter(lambda x:x>0, [1, -2, 3, -5, 8, -3]))
[1,3,8]
Q5. 234라는 10진수의 16진수는 다음과 같이 구할 수 있다.
hex(234)
'0xea'
이번에는 반대로 16진수 문자열 0xea를 10진수로 변경해보자.
int('0xea', 16)
234
Q6. map과 lambda를 사용하여 [1,2,3,4] 리스트의 각 요소값에 3이 곱해진 리스트 [3,6,9,12]를 만들어보자.
list(map(lambda x:x*3, [1,2,3,4]))
[3,6,9,12]
Q7. 다음 리스트의 최대값과 최소값의 합을 구해보자.
[-8, 2, 7, 5, -3, 5, 0, 1]
a=[-8, 2, 7, 5, -3, 5, 0, 1]
max(a)+min(a)
-1
Q8. 17/3의 결과 5.666666666666667을 소수점 4자리까지만 반올림하여 표시해보자.
round(17/3, 4)
5.6667
Q9. 다음과 같이 실행할 때 입력값을 모두 더하여 출력하는 스크립트(C:\doit\myargv.py)를 작성해보자.
C:\> cd doit
C:\doit> python myargv.py 12345678910
55
A.
import sys
numbers=sys.argv[1:]
result=0
for number in numbers:
result+=int(number)
print(result)
Q10. os 모듈을 사용하여 다음과 같이 동작하도록 코드를 작성해보자.
1. C:\doit 디렉터리로 이동한다.
2. dir 명령을 실행하고 그 결과를 변수에 담는다.
3. dir 명령의 결과를 출력한다.
import os
os.chdir("c:/doit")
result=os.popen("dir")
print(result.read())
abc.txt
bidusource.html
Q11. glob 모듈을 사용하여 C:\doit 디렉터리의 파일 중 확장자가 .py인 파일만 출력하는 프로그램을 작성해보자.
import glob
glob.glob("c:/doit/*.py")
['c:/doit/doit01.py', 'c:/doit/test.py']
Q12. time 모듈을 사용하여 현재 날짜와 시간을 다음과 같은 형식으로 출력해보자.
2018/04/03 17:20:32
import time
time.strftime("%Y/%m/%d %H:%M:%S")
'2018/04/05 10:56:27'
Q13. random 모듈을 사용하여 로또 번호(1~45 사이의 숫자 6개)를 생성해보자. (단 중복된 숫자가 있으면 안 됨)
import random
result=[]
while len(result) < 6:
num=random.randint(1, 45)
if num not in result:
result.append(num)
print(result)
'PYTHON > Do it! 점프 투 파이썬' 카테고리의 다른 글
[Do it! 점프 투 파이썬-스터디 노트] 06장 파이썬 프로그래밍, 어떻게 시작해야할까?(06-4~06-6) (0) | 2021.04.21 |
---|---|
[Do it! 점프 투 파이썬-스터디 노트] 06장 파이썬 프로그래밍, 어떻게 시작해야할까?(06-1~06-3) (0) | 2021.04.21 |
[Do it! 점프 투 파이썬-스터디 노트] 05장 파이썬 날개 달기(05-6 라이브러리) (0) | 2021.04.20 |
[Do it! 점프 투 파이썬-스터디 노트] 05장 파이썬 날개 달기(05-5 내장 함수) (0) | 2021.04.20 |
[Do it! 점프 투 파이썬-스터디 노트] 05장 파이썬 날개 달기(05-4 예외 처리) (0) | 2021.04.18 |