Python에서 random 모듈을 사용하는 방법
Python의 random 모듈에는 많은 랜덤 생성기가 포함되어 있습니다.
random은 Python 표준 라이브러리 중 하나로 직접 가져오면 사용할 수 있습니다.본고는 랜덤에서 자주 사용하는 방법의 용법을 소개한다.
1. 무작위 정수 생성
# coding=utf-8
import random
print(random.randint(1, 5))
print(random.randrange(0, 51, 5))
실행 결과:삼
사십
randint (start,end) 는 start에서 end 사이의 정수를 되돌려줍니다. 여기는 좌폐 우폐 구간입니다.즉, end값을 되돌릴 수 있다는 것이다. Python에서 이것은 비교적 특수한 곳으로 일반적으로 왼쪽에서 닫고 오른쪽으로 열리는 구간이다.
randrange (start,end,step) 는 range (start,end,step) 가 생성한 목록의 무작위 값을 되돌려줍니다.여기는 왼쪽으로 닫고 오른쪽으로 여는 구간입니다. 위 코드의 51이 50으로 바뀌면 50으로 돌아갈 수 없습니다.
매번 운행하는 결과는 다르다. 왜냐하면 무작위로 그 중 하나를 되돌려주기 때문이다.
2. 무작위 소수 생성
print(random.random())
print(random.uniform(2, 5))
실행 결과:0.49541524802465897
2.948656863619216
random () 은 0에서 1 사이의 임의의 부동 소수점을 되돌려줍니다.
uniform (start,end) 은 start에서 end 사이의 임의의 부동점수로 되돌아옵니다. 사실은 random () 의 결과를 곱하기 (end-start) 하는 것입니다. 코드는 이렇게 이루어집니다.
3. 문자열, 목록, 메타그룹에서 임의로 값을 되돌려줍니다.
choice_str = 'python'
print(random.choice(choice_str))
choice_list = [i for i in range(1, 6)]
print("choice_list: ", choice_list)
print(random.choice(choice_list))
choice_tuple = (10, 20, 30, 40, 50)
print(random.choice(choice_tuple))
실행 결과:h
choice_list: [1, 2, 3, 4, 5]
오
이십
choice () 는 교체 가능한 대상의 값을 되돌려줍니다.목록, 메타그룹, 문자열일 수 있으며 사전과 집합일 수 없습니다.
넷째, 문자열, 목록, 메타그룹에서 무작위로 한 번 또는 여러 번 되돌아오고 무게 설정
choice_list = [i for i in range(1, 6)]
print("choice_list: ", choice_list)
print(random.choices(choice_list))
choice_tuple = (10, 20, 30, 40, 50)
print(random.choices(choice_tuple, k=2))
choice_str = 'python'
print(random.choices(choice_str, weights=[0.5, 0, 0.5, 0, 0, 0], k=7))
print(random.choices(choice_str, cum_weights=[0, 0.5, 0.5, 1, 1, 1], k=7))
실행 결과:choice_list: [1, 2, 3, 4, 5]
[4]
[20, 50]
['t', 'p', 't', 'p', 'p', 't', 't']
['h', 'y', 'h', 'h', 'h', 'h', 'y']
choices(population,weights=none,cum_weights=none,k=1)는 교체 가능한 대상에서 한 번 또는 여러 번 값을 되돌려줍니다. 결과는 목록입니다.
weights는 모든 값에 대응하는 권중 목록입니다. 기본값은 None입니다. 모든 요소의 권중은 같습니다.권중 목록을 전송할 때, 목록의 길이는 교체 가능한 대상의 길이와 같아야 하며, 값과 권중은 색인에 따라 일일이 대응해야 한다.전송된 값은 모든 숫자가 될 수 있습니다. 서로 다른 값 사이의 권중 크기를 비교할 수 있다면 시스템은 권중대소에 따라 모든 값을 되돌릴 가능성을 계산합니다. 예를 들어 위의 예에서'python'의 p와 t만 되돌려줍니다. 다른 문자의 권중은 0이기 때문입니다.
cum_weights는 모든 값에 대응하는 누적 권중 목록입니다. 기본값은 None이고 모든 요소의 권중은 같습니다.권중 목록을 전송할 때, 목록의 길이는 교체 가능한 대상의 길이와 같아야 합니다.권중은 누적된 것이다. 모든 위치의 누적 권중은 앞의 모든 원소의 권중과 현재 위치 원소의 권중을 더한다. 즉, 이 목록 뒤의 값은 앞의 값보다 작을 수 없다.시스템은 누적 가중치에 따라 모든 요소의 가중치를 계산한 다음에 모든 값을 되돌릴 가능성을 계산합니다. 예를 들어 위의 예에서 "python"의 y와 h만 되돌려줍니다. 다른 문자의 가중치는 0이기 때문입니다.
주의: weights 및 cum_계산 결과가 같더라도 weights는 동시에 값이 있을 수 없습니다.
k값은 교체 가능한 대상에서 값을 얻는 횟수로 매번 그 중 하나만 취하고 k번을 반복하기 때문에 이론적으로 k번이 같은 요소를 얻을 수 있다.
5. 문자열, 목록, 메타그룹에서 무작위로 하나 이상의 값을 가져옵니다.
sample_list = [i for i in range(1, 6)]
print("sample_list: ", sample_list)
print(random.sample(sample_list, 1))
sample_tuple = (10, 20, 30, 40, 50)
print(random.sample(sample_tuple, 2))
sample_str = 'python'
print(random.sample(sample_str, 3))
실행 결과:sample_list: [1, 2, 3, 4, 5]
[1]
[10, 40]
['p', 'h', 'o']
sample(population,k)는 교체 가능한 대상에서 무작위로 k개의 요소를 되돌려주고 목록을 되돌려줍니다.
k는 원소를 되돌려주는 개수를 표시합니다. 이 매개 변수는 기본값이 없습니다. 값을 전달해야 합니다.그리고 한 번에 교체 가능한 대상에서 k개의 값을 되돌려줍니다. k회로 나누어지는 것이 아니라 모든 요소는 중복 추출되지 않습니다.그 밖에 k값은 교체할 수 있는 대상의 길이보다 크면 안 됩니다. 그렇지 않으면 오류를 보고할 수 있습니다. 위의 선택된 k는 필요하면 무한히 클 수 있습니다.사용 장면이 다르니 구별에 주의해야 한다.
6. 무작위 순서 혼란
cards = ['%s-%s' % (a, b) for a in ['Spade', 'Heart', 'Diamond', 'Club'] for b in
([str(i) for i in range(3, 11)] + [j for j in 'JQKA2'])] + ['Black joker', 'Red joker']
print("Before: ", cards)
random.shuffle(cards)
print("After: ", cards)
실행 결과:Before: ['Spade-3', 'Spade-4', 'Spade-5', 'Spade-6', 'Spade-7', 'Spade-8', 'Spade-9', 'Spade-10', 'Spade-J', 'Spade-Q', 'Spade-K', 'Spade-A', 'Spade-2', 'Heart-3', 'Heart-4', 'Heart-5', 'Heart-6', 'Heart-7', 'Heart-8', 'Heart-9', 'Heart-10', 'Heart-J', 'Heart-Q', 'Heart-K', 'Heart-A', 'Heart-2', 'Diamond-3', 'Diamond-4', 'Diamond-5', 'Diamond-6', 'Diamond-7', 'Diamond-8', 'Diamond-9', 'Diamond-10', 'Diamond-J', 'Diamond-Q', 'Diamond-K', 'Diamond-A', 'Diamond-2', 'Club-3', 'Club-4', 'Club-5', 'Club-6', 'Club-7', 'Club-8', 'Club-9', 'Club-10', 'Club-J', 'Club-Q', 'Club-K', 'Club-A', 'Club-2', 'Black joker', 'Red joker']
After: ['Spade-3', 'Diamond-J', 'Club-8', 'Club-7', 'Diamond-10', 'Spade-J', 'Heart-J', 'Diamond-A', 'Spade-K', 'Spade-10', 'Spade-8', 'Club-10', 'Club-J', 'Heart-9', 'Diamond-4', 'Diamond-5', 'Red joker', 'Spade-5', 'Club-4', 'Club-Q', 'Heart-7', 'Spade-Q', 'Club-A', 'Spade-6', 'Diamond-6', 'Black joker', 'Spade-7', 'Heart-Q', 'Club-9', 'Club-3', 'Heart-K', 'Diamond-Q', 'Diamond-K', 'Spade-2', 'Heart-5', 'Heart-A', 'Heart-4', 'Heart-3', 'Diamond-7', 'Club-K', 'Diamond-9', 'Spade-4', 'Heart-2', 'Spade-A', 'Club-6', 'Club-2', 'Heart-8', 'Diamond-2', 'Heart-10', 'Heart-6', 'Club-5', 'Spade-9', 'Diamond-8', 'Diamond-3']
shuffle () 은 교체 가능한 대상의 순서를 무작위로 어지럽힌다. 상기 예에서 우리는 포커를 모의한 다음에 shuffle () 로 카드를 씻는다.
주의: shuffle () 은 반환 값이 없습니다. 교체 가능한 대상을 직접 수정합니다.
random은 위의 방법 외에 수학 분포에 따라 무작위로 데이터를 생성하는 방법도 있습니다. 예를 들어 정태 분포, 지수 분포 등은 여기서 계속 예를 들지 않습니다. 사실 random 원본 코드도 많지 않습니다. 그 안의 방법 수량은 인공적으로 셀 수 있습니다. 필요하면 Pycharm에서 Ctrl점을 누르고 들어가 보십시오.
총결산
파이썬에서 랜덤 모듈의 상용 방법에 대한 사용 강좌를 소개합니다. 파이썬 랜덤 모듈의 상용 방법에 대한 더 많은 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.