Eat Study Love

먹고 공부하고 사랑하라

SW 만학도/Jump to Python

Jump To Python 내장/외장함수 5장 연습문제(2) [7]

eatplaylove 2022. 12. 16. 13:11

  연습문제 풀이 이어서 가볼까나

 

# Q7. 다음 리스트의 최댓값과 최솟값의 합을 구해 보자.

# [-8, 2, 7, 5, -3, 5, 0, 1]

이지하다

 

print(min(a)+max(a))
 

=> -1

 

# Q8. 17 / 3의 결과는 다음과 같다.

#  17 / 3 = 5.666666666666667

# 소숫점 4자리까지만 반올림하여 표시하라.

 

round함수를 요렇게 쓰면 된다.

print(round(17/3,4))

 

# Q9. 다음과 같이 실행할 때 입력값을 모두 더하여 출력하는 스크립트(C:\doit\myargv.py)를 작성해 보자.

# C:\> cd doit
# C:\doit> python myargv.py 1 2 3 4 5 6 7 8 9 10
# 55

이건 뭐, 뭔지 모르겠다. 해설은 아래와 같다.

 

# myargv.py
# 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 명령의 결과를 출력한다.

이것도, VS Code로만 파이썬을 짜서 그런가 뭔지 모르겠다. cmd로 파이썬 할 때 말하는건가..

여튼 해설은 아래와 같다.

 

# import os
# os.chdir("c:/doit") # 디렉터리 이동

# result = os.popen("dir") # 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'] # glob 모듈 사용

 

# Q12. time 모듈을 사용하여 현재 날짜와 시간을 다음과 같은 형식으로 출력해 보자.
# 2018/04/03 17:20:32
 

드디어 써보는 외장함수, import time으로 아래와 같이 나타낸다.

 

# import time

# print(time.time())
# print(time.strftime("%Y/%m/%d %H:%M:%S"))
 
 

 

첫번째 꺼는 1970년 1월1일인가? 기준으로 지금까지 흐른 초를 나타내는 거라고 해서 좀 숫자가 복잡다.

아래처럼 strftime 모듈을 통해 깔끔하게 년월일 시간분초를 나타낼 수 있다.

 

# Q13. random 모듈을 사용하여 로또 번호(1~45 사이의 숫자 6개)를 생성해 보자
# (단 중복된 숫자가 있으면 안 됨).

 

순간 어떻게 해야 하나 싶었는데, 해설보니 if문으로 깔끔하게 정리했다.

 

# import random

# result = [] #result 빈 리스트 생성
# while len(result) < 6:  # 숫자 6개가 채워지면 Finish

#     num = random.randint(1, 45)   # 1부터 45까지의 난수 생성

#     if num not in result:
#         result.append(num)

# print(result) # 출력
 
 

 

randint로 난수 생성을 알았으면 어느 정도 풀 수 있었을 문제

 

-E. O. D-