Python의 시간과 입출력과 랜덤

Jayce·2023년 5월 7일
0

Python 기초

목록 보기
3/10
post-thumbnail

오늘 시간측정과 콘솔입출력과 랜덤 모듈에 대해 공부해보려고 합니다.
해당 내용은 짧게 다루어 보겠습니다.


시간측정

input

import time  # 모듈 참조 
from time import gmtime
start=time.time() #현재 시각의 타임스탬프
print(start) #1683448872.4636652 글작성 시각

print(gmtime(1683448715.0903797))
for a in range(1000): # 0~999
    print(a,end=' ') # end 줄바꿈 대체 문자

end=time.time()
print() # 줄바꿈
print(end-start)

output

1683448983.327467
time.struct_time(tm_year=2023, tm_mon=5, tm_mday=7, tm_hour=8, tm_min=38, tm_sec=35, tm_wday=6, tm_yday=127, tm_isdst=0)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
0.0018625259399414062

time 모듈을 이용하여 작성시간 당시의 시간을 알 수 있습니다. time 함수는 현재 Unix timestamp을 소수로 리턴하는데요. 정수부는 초단위이고, 소수부는 마이크로(micro) 초단위 입니다. 결과적으로 1683448872.4636652라는 시간을 출력하게 되고 계산을 하기 위해서 gmtime함수를 이용하면 년월시분초까지 알 수 있습니다.
해당 방법을 이용하여 start와 end를 나누어 시작 시간과 끝나는 시간을 뺌으로써 시간 복잡도를 구할 수 있습니다.


시간지연

input

print('1')
time.sleep(1) # 1초간 멈춤 
print('2')
time.sleep(5)
print('7')

output

1
2
7

시간을 지연시켜서 동작 시켜야 할 때도 있기 때문에 sleep함수도 익혀줍니다.


시간지연응용(구구단)

input

import time 
# range(start,stop,step)
for dan in range(2,10):  # 2부터 9까지
    print(dan,'단')
    for i in range(1,10): # 1부터 9까지 
        print(dan,'x',i,'=',dan*i)
        time.sleep(0.2) #0.2초 멈춤 
    print() #줄바꿈 
    time.sleep(1)

output

2 단
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18


3 단
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
...

sleep을 응용하여 구구단을 출력하면 0.2초씩 지연하여 출력하게 됩니다. 시간지연은 팝업창 같은 경우 많이 사용됩니다.




콘솔입출력

input

a=input('입력하세요:')
print('결과:',a)

input함수를 사용하여 본인이 원하는 값을 넣을 수 있습니다.


콘솔입출력응용(구구단)

input

dan = eval(input("단을 입력하세요:"))
#dan = input("단을 입력하세요:")
#print(type(dan))
for i in range(1, 10): 
    print(dan,'x',i,'=',dan*i)

output

input값에 3을 넣는다고 가정
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27

dan에 값을 넣고, 1~10까지 곱셉을 하는 반복문에 값을 넣어 원하는 구구단을 출력할 수 있습니다.eval 함수를 사용하지 않는다면 dan의 타입이 string(문자열)이 되기 때문에 3, 33, 333, ... 과 같이 나오게 됩니다.

eval 함수는 매개변수로 받은 expression (=식)을 문자열로 받아서, 실행하는 함수 입니다.
즉, 매개변수로 받은 expression은 파이썬에서 실행 가능한 문자열이 들어와야 한다는것이고, 문자열로 들어온 그 expression을 파이썬이 실행해줍니다.


eval함수

input

a=10
b='print(a)'
print(b)
eval(b) # 문자열 내부의 명령어 해석 

output

print(a)
10


random 모듈

input

import random 
#random.seed(1000) # 랜덤시드를 고정하면 값이 변경되지 않음(재현성)  
for i in range(5):
    print(random.random()) # 0.0 ~ 1.0 실수 난수 

output

0.7773566427005639
0.6698255595592497
0.09913960392481702
0.35297051119014544
0.4679077429008419

*랜덤모듈은 자체적으로 매번 다른 값을 출력해주기 때문에 저와 값이 다를 수 있습니다.


input

for i in range(5):
    print(random.randint(1,10)) # 1~10 정수난수
for i in range(5):
    print(random.uniform(1,100)) # 1~100 실수난수

output

8
3
1
8
3
4.4168858518235075
34.756943540697876
41.01931494994938
35.978771858292035
35.062552661528144

randint함수를 이용하여 정수 값만 랜덤하게 출력할 수 있고,
uniform함수를 이용하여 실수 값만 랜덤하게 출력할 수 있습니다.


input

food=['짜장','짬뽕','탕수육','만두']
f=random.choice(food) #무작위 선택
print(f)

output

짜장


input

random.shuffle(food) #무작위로 섞음 
food 

output

['만두', '짬뽕', '탕수육', '짜장']


이상으로 오늘은 시간측정하는 방법과 콘솔입출력에 대해 공부해 보았습니다. 다음 시간엔 제어문에 대해 공부하려고합니다. 그럼 오늘도

power through to the end

profile
Dreamer

0개의 댓글