- Today
- Total
프로그래밍 농장
파이썬 입문 -5일차( 랜덤함수 ) 본문
파이썬의 경우, random함수를 내장하고 있지 않음으로, 모듈함수를 선언해주어야한다.
>> from random import random
이후, print( random( ) ) 와 같은 출력식을 통하여 random 함수의 값을 출력할수있다.
random 함수는, 0.0 - 1.0 미만의 난수 하나를 출력해준다.
만약, 위의 모듈함수를 선언하지않고 랜덤함수 사용시, 아래와같은 에러메세지가 발생한다.
응용법
- 1.0 이상의 더큰 값의 랜덤함수를 출력하고싶다면, 출력식에 원하는만큼의 크기를 곱하여 출력하면 그만큼의 임의의 난수값을 출력시킬수있다.
ex) print ( random( ) * 100 ) 과 같이 응용하여 사용할수있다.
- 실수값이 아닌, 정수값으로 랜덤함수를 출력하고싶다면, int 함수를 이용해주면 된다.
ex) 0부터 10미만의 임의의 정수값 : print( int ( random( ) * 10 ) )
-랜덤함수의 시작값을 지정해주고싶다면, 식의 끝에 원하는 시작값을 더해주면된다.
ex) 1부터 11미만의 임의의 정수값 : print ( int( random( ) * 10 ) +1 ) ex) 100부터 110미만의 임의의 정수값 : print( int ( random( ) * 10 ) +100 )
randint( )
randint 라는 함수는, 출력되는 난수의 시작과 끝, 즉 범위를 지정해주는 함수이다.
위와같은 함수를 사용하기위해서는, 모듈함수 >>from random import randint 를 선언해주어야한다. 이 모듈함수는 위의 내용들을 모두포함하고있음으로, 굳이 두번 사용할필요없다.
randrange( )
randint함수에서 추가로 증가폭을 지정해줄수있다.
모듈함수 >>from random import randrange 를 추가로 선언해주어야한다.
ex) print( randrange(5,10,2)) -> 5~10미만의 2씩증가되는 랜덤값 출력
응용) 아스키코드를 활용하여 랜덤한 문자 출력해보기
아래의 아스키코드표를 참고하여, 랜덤한 문자를 출력해보자.
풀이
대문자와 소문자가 나누어져 있음으로, 각각의 출력식을 표현하여 출력해본결과이다.
chr 문을 출력식에 넣어서 랜덤한 정수를 문자열로 변환하여주면 출력이 잘 되는것을 확인할수있다.
실습예제
1. 1 ~ 100 까지의 랜덤값을 출력하는 코드를 작성하시오.
( randint, randrange 사용 x )
2. 100 ~ 999 까지의 랜덤값을 출력하는 코드를 작성하시오.
( randint, randrange 사용 x )
3. 'A' 부터 'Z' 까지의 임의의 문자를 출력하는 코드를 작성하시오. ( randint, randrange 사용 x )
4. 1 ~ 99 까지의 랜덤값에 대해 짝수면 True, 홀수면 False 가 출력되는 코드를 작성하시오.
풀이
-1번
>> from random import random print ( int ( ( random( ) * 100 ) +1 ) )
random( ) * 100 : 0부터 100미만 지정 -> +1 : 1부터 101미만 지정 -> int : 정수값만 출력하게 설정
-2번
>> from random import random print ( int ( ( random( ) * (1000-100) ) +100 ) )
random( ) * 1000 : 0부터 1000미만 지정 -> +100 : 100부터 1000미만 지정 -> (1000-100) : 밀린 100만큼 -
* print ( int ( ( ( random( ) * 1000 )+100 ) ) 으로 식을 작성하면, 시작값을 100으로 지정한것떄문에 100만큼 더 범위가 밀리게 된다. 그러므로 시작값지정으로 밀린 100만큼 뺴주면 정상적으로나온다.
-3번
>> from random import random
print(chr(int((random()*26)+65)))
+65 : 65부터 -> random( ) * 26 : 65+26=90까지(25+1 = 미만포함) -> chr(int(.. : 실수를 정수변환후 문자변환
* print(chr(int((random()*26)+65))) 의 범위지정부분에서 26대신 (101-65)를 쓰면 다른 문자도 출력된다. 문자열 출력의 범위가 다르게 나타나는듯하다.
문자열출력의 경우 범위지정을 최대한 간단하게 하는것을 선호하도록하자.
-4번
>> from random import random
rand = ( int ( random ( ) * 99 )+1 )
print ( not bool ( rand % 2 ) )
True 는 0일경우이므로, not bool함수를 사용하여 나타낸다. 이후 범위지정문부분과 시작위치를 선언해주면된다.
-
'Python' 카테고리의 다른 글
파이썬 입문 -7일차( 반복문 for ) (0) | 2019.07.01 |
---|---|
파이썬 입문 -6일차( 조건문 ) (0) | 2019.06.26 |
파이썬 키워드 검색용 페이지 (0) | 2019.06.21 |
파이썬 입문 -4일차( 연산자 ) (0) | 2019.06.21 |
파이썬 입문 -3일차( 입력함수 ) (0) | 2019.06.19 |