2016-12-07 1 views
0
#TODO: QUESTION 1 
    num = random.randint(1, 100) 
    print(num) 
    # Male or Female probabilities = 35% 
    if num > 0 and num <= 18: 
     femaleCheck(People) 
     printPeopleList(People) 
    if num > 18 and num <= 35: 
     maleCheck(People) 
     printPeopleList(People) 
    # Wearing a T-Shirt probabilities = 15% 
    if num > 35 and num <= 50: 
     tShirtCheck(People) 
     printPeopleList(People) 
    #Eye Color probabilities 25% 
    if num > 50 and num <= 63: 
     eyeColorBrownCheck(People) 
     printPeopleList(People) 
    if num > 63 and num <= 75: 
     eyeColorBlueCheck(People) 
     printPeopleList(People) 
    #Showing Teeth probabilities 25% 
    if num > 75 and num <= 100: 
     showingTeethCheck(People) 
     printPeopleList(People) 

여기는 내가 만든 게임을 추측하기위한 코드의 일부입니다. 현재 구현되어 있으므로 목록에서 임의의 번호를 선택하고 해당 번호에 기능을 수행하도록 요청합니다. 일단 질문 1이 남은 사용 가능한 옵션들 중에서 질문 2에 질문하기를 바란다. 질문 3에는 남은 2 가지 옵션이 포함되며 새로운 기능을 소개합니다. 어떤 방법이 가장 효율적인지 알아 내려고 애 쓰고 있습니다. 나는 각 질문에 다음과 같은 들여 쓰기를 할 수 있다는 것을 알고 있지만, 그것은 지독히 지저분하고 읽기가 어려울 것입니다. 다음 질문을 단순한 방식으로 묻는 데 사용할 수있는 방법이 있습니까? 잠재적 인 범위를 임의의 정수에서 제거 하시겠습니까?Python, 반복하지 않고 질문하기

+0

어떤 Python 버전을 사용하고 있습니까? – joeb

+0

코드와 설명 모두 현재하고있는 일과 현재의 문제에 대해 정말로 분명하지 않습니다. – polku

+0

@joeb 여러 장치에서 일반적으로 3.4 및 3.6의 구색을 사용하고 있습니다. – zSynonym

답변

3

3.6을 사용하는 경우 함수에 대해 weights 키워드 인수를 사용하여 random.choices을 사용할 수 있습니다.

checkFunction = random.choices([femaleCheck, maleCheck, tShirtCheck, ...], weights=[35, 15, 25, ...]) 
checkFunction(People) 
printPeopleList(People) 

그렇지 않은 경우 유사하게 구현하는 방법에 대해서는 this answe r을 확인하십시오.