2013-12-05 2 views
0

Меня попросят создать случайную строку, используя ранее определенное значение.Распечатка случайной строки (Python)

THREE_CHOICES = 'ABC' 
FOUR_CHOICES = 'ABCD' 
FIVE_CHOICES = 'ABCDE' 

import random 

def generate_answers(n: int) -> str: 
    '''Generates random answers from number inputted ''' 
    for i in range(0,n): 
     return random.choice(FOUR_CHOICES) 
     continue 

То, что я пытаюсь получить здесь происходит, если я подключить 7 в функцию Я бы получить что-то вроде « ABDCBBA»

случайной строки 7 символов из указанных букв , Тем не менее, этот код возвращает только один случайный символ независимо от того, в каком количестве я положил (должен быть ненулевой).

Я не знаю, что делать здесь, может кто-то указать мне в правильном направлении?

+0

' return' это конец вашей функции. Всегда. Так что аккумулируйте в некотором роде, а затем «возвращайте» накопленное значение. – roippi

+0

Спасибо, Roippi. –

ответ

0

не проверено, но должно работать.

THREE_CHOICES = 'ABC' 
FOUR_CHOICES = 'ABCD' 
FIVE_CHOICES = 'ABCDE' 

import random 

def generate_answers(n): 
    '''Generates random answers from number inputted ''' 
    answerList = "" 
    for i in range(0,n): 
     answerList += random.choice(FOUR_CHOICES) 
    return answerList 
1

вы могли бы просто вернуть список, как это:

def generate_answers(n): 
    '''Generates random answers from number inputted ''' 
    randoms = [random.choice(FOUR_CHOICES) for _ in range(0,n)] 
    return randoms 
    #return ''.join(randoms) to get string 

print generate_answers(7) 

это будет печатать список, как это: ['D', 'D', 'D', 'B', 'A', 'A', 'C']

вы могли бы join список, если вы хотите строку

+0

Спасибо Кристиан –

+0

@EricCuevas Нет проблем! удачи с остальной частью проекта :)! – Serial

Смежные вопросы