-
1부터 100까지 중복없이 숫자를 뽑아보자.코딩공부/예시로 살펴보는 파이썬 2020. 4. 5. 16:24
학교에서 중복없이 학생들을 뽑을 일이 생각보다 많다. 발표하기 싫어하는 고학년에게 어쩔 수 없이 누군가에게 발표를 맡겨야하거나, 학생 자리를 바꾸거나, 당번을 뽑을 때도 많이 활용할 수 있다.
뭐든지 활용하기 나름이고 변형하기 나름이겠지만, 가장 기본적인 기능부터 살펴보도록 하자.
1. 랜덤으로 숫자를 뽑아보자.
중복과 관련없이 숫자를 뽑을 때 활용할 수 있는 코드이다.
12345import random # 파이썬 내장 모듈 임포트a = random.randint(1,100) # 1부터 100까지의 정수 중 랜덤으로 하나 뽑는다.print(a)범위를 지정하는 range함수와는 약간 다른데,
range(1,100)은 1부터 99까지, random.randint(1,100)은 1부터 100까지라는 것에 유의하자.
2. 랜덤으로 숫자를 여러번 뽑아보자.
for 반복문을 활용하면 된다. 참 쉽죠?
12345import random # 파이썬 내장 모듈 임포트for i in range(10): # 10번 뽑는다a = random.randint(1,100) # 1부터 100까지의 정수 중 랜덤으로 하나 뽑는다.print(a)3. 랜덤으로 뽑은 숫자를 한번에 살펴보자.
랜덤으로 나온 a를 그때마다 프린트하지 않고, 리스트에 넣어 한번에 프린트하면 되겠다.
123456import random # 파이썬 내장 모듈 임포트alist=[] # 빈 리스트를 생성한다.for i in range(10): # 10번 뽑는다a = random.randint(1,100) # 1부터 100까지의 정수 중 랜덤으로 하나 뽑는다.alist.append(a) # 리스트 끝에 a를 추가한다.print(alist)4. 중복없이 숫자를 뽑고싶다.
중복없이 숫자를 뽑아보자. 리스트에 있는지 비교해서 있으면 다시 뽑고, 없으면 뽑고 리스트에 추가하면 되겠다.
4.1. 기본 코드 작성
12345678910import randomalist=[] # 뽑은 a를 넣어 중복 방지해주는 리스트for i in range(10):a = random.randint(1,100)while a in alist : # a가 이미 뽑은 리스트에 있을 때까지 다시 뽑자a = random.randint(1,100)alist.append(a) # 새로운 a 값을 리스트에 추가print(alist)4.2. 함수로 만들어보자.
1234567891011121314import randomdef random_int_no_again():al_list=[] # 뽑은 a를 넣어 중복 방지해주는 리스트for i in range(100):a = random.randint(1,100)while a in al_list :a = random.randint(1,100)al_list.append(a)al_list.append(a)print (a)return al_listrandom_int_no_again()4.3. 재귀함수로 구현해보자
1234567891011121314151617import randomal_list=[]def recursive_random_int_no_again(count):if count == 0: #카운트가 0이 되면 작동 종료print(al_list)returna = random.randint(1,100)while a in al_list :a = random.randint(1,100)al_list.append(a)print(a)count-=1 # 카운트를 -1하고, 함수를 다시 호출한다.recursive_random_int_no_again(count)recursive_random_int_no_again(100)4.4. random 모듈에서 제공하는 기본 기능을 활용하자.
random.sample를 활용하면 중복없이 원하는 수만큼 뽑아낼 수 있다. 코드도 간결하고 오류가 날 가능성이 가장 낮기 때문에 이 방법이 가장 좋다고 할 수 있겠다.
1234import randoma = random.sample(range(1,101),10) # 1부터 100까지의 범위중에 10개를 중복없이 뽑겠다.print(a)다음 포스팅은 실제 교실에서 활용할 수 있도록 코드를 짜보겠다.
'코딩공부 > 예시로 살펴보는 파이썬' 카테고리의 다른 글
교실에서 활용할 수 있는 중복없는 랜덤 숫자 뽑기 (2) 2020.04.05