2012-09-27 3 views
0

나는 게임을 내장하고 난 random.choice를 사용해야합니다 : 사용자가 로그인 할 때PYTHON - 랜덤 선택

, 그들은 무작위로 선택된 하나 (15)의 방으로 갈 필요가있다. random.choice을 사용하여 방을 선택하는 다음 코드를 어떻게 수정합니까? random.randint 사용 random.choice,
을 사용하지

#login 
self.enterRoom("1") 
+2

@ user1704332 .. 당신은 좋은 개념이 필요하지 않은 것을 유감스럽게 생각할 필요가 없습니다. :) 그리고 솔직하게 말해서 그것은 전혀 영어가 아닙니다. –

답변

7

:

import random 
room = random.randint(1,15) 
+0

안녕 Caner! "1"에서 "15"가 될까요? 아니면 1시 15 분? – user1704332

+1

@ user1704332 문자열이 아닌 int가됩니다. 필요한 경우 str() 메서드를 사용하여 문자열로 변환해야합니다. – zeebonk

+1

@ user1704332 [documentation] (http://docs.python.org/library/random.html#random.randint)을 읽는 방법에 대해 알려주십시오. 문서를 읽은 후에 일이 불분명 해지면 꼭 물어보십시오. 그러나 먼저 자신을 알아 내려고 노력해야합니다. –

3

당신은 거의 확실이에 대한 random.choice를 사용하지 않는다; Caner Korkmaz의 대답이 훨씬 낫습니다.

random.choice (서열)

반환 A :

그러나 어떤 이유로 당신이 정말로 (이 숙제이고 당신의 교수가 주장하기 때문에, 예를 들어) random.choice를 사용해야하는 경우, the documentation를 참조

비어 있지 않은 순서 seq의 무작위 요소. seq가 비어 있으면 IndexError가 발생합니다.

그래서 "1"에서 "15"까지의 문자열이 필요한 시퀀스를 가져와야합니다.

room = random.choice(rooms) 
0

는이 문제를 해결하기 위해 여러 가지 방법이 있습니다 :

rooms = [str(i) for i in range(1, 16)] 

다음 : 그렇게합니다. 귀하의 상황에 가장 편리한 것을 선택하고 가장 읽을 수있는 것을 찾으십시오.

random.choice() 자격의 선택의 인구가 목록에 이미있는 경우 방법은 잘 작동 :

>>> rooms = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'] 
>>> random.choice(rooms) 
'7' 

random.randrange() 선택이 숫자 때 기능이 작동하고 보기의 컴퓨터 과학 포인트

>>> str(random.randrange(1, 16)) 
'2' 

: (여전히 STR 이후에 전화를해야합니다하지만) 연속 마지막 하나가 가장 우아합니다. 그러나 게임에서 코드의 의도를 명확하게 표현하는면에서 첫 번째 코드는 "사용 가능한 룸을 임의로 선택"한다고 말합니다.