2015-12-17 2 views
3

У меня естьЕсть ли лучший способ повторить код, кроме использования Защиты

print(randint(0,12)) 

Есть ли более быстрые более легким способом быть в состоянии выполнить это три раза в строке, кроме копирования все это или с помощью

def RandNum(number): 
     print(randint(0,12)) 

так что я просто могу запустить первый кусок кода очень быстро, а не продолжать и использовать.

(RandNum("number")) 

Когда мне понадобится случайное число?

Спасибо. Я хочу найти как можно больше альтернативных методов для этого.

+0

Почему вы не используете петлю? так как вы хотите использовать его 3 раза. – Arman

+0

Это не просто чисто три раза в одном определенном месте, к сожалению – Merlindima

ответ

2

Надеюсь, что это поможет!

from random import randint 

def RandNum(number): 
    l = [] 
    for _ in range(number): 
     l.append(randint(0,12)) 
    print " ".join(map(str, l)) 

RandNum(3) 
1

Так что вы хотите, чтобы случайный randint выполнялся всего 3 раза. Это как

from random import randint 
timesexecuted = int(0) 
while timesexecuted < 3: 
    print(randint(0,12)) 
    timesexecuted = timesexecuted + 1 

#after this anything you want happen next. 

Этот метод является наиболее эффективным, когда вы зацикливание вещи большее количество раз, например, вы хотите казнены print(randint(0,12)) более сотни раз, этот метод, вероятно, проще всего писать.

Объяснение

timesexecuted устанавливаются в int(0) поскольку никаких петель не были запущены, и мы должны определить timesexecuted. Нам нужно запустить цикл 3 раза, чтобы сделать это, в цикле мы добавим от 1 до timesexecuted с timesexecuted + 1 и поэтому один раз timesexecuted до 3 (начинается с 0, делает 1 цикл, теперь 1, после другого цикла, становится 2, делает третий цикл, теперь 3). И так как у нас есть цикл под while timesexecuted < 3:, так как timesexecuted теперь 3, потому что цикл работает 3 раза, timesexecuted < 3 больше не является истинным, и цикл больше не будет работать. 3 также может быть изменен на любое число, что делает этот метод, вероятно, лучшим, если цикл повторяется много раз. (например, зацикливание этой программы 200 раз с помощью while timesexecuted < 200:)

Надеюсь, что помогло.

+0

Большое спасибо, также спасибо за объяснение! – Merlindima

1

Если вы используете python 3, вы можете использовать функцию print() со списком из трех чисел. Необязательный параметр sep имеет значение по умолчанию для пробела, поэтому вам не нужно определять его, если вам нужны три числа, разделенные пробелом.

print(*[random.randint(0, 12) for _ in range(3)]) 
0

Во-первых, есть причина, по которой вы не можете скопировать «randint»? Это наиболее эффективное решение, однако это включать некоторые набрав:

number1 = random.randint(0,12) 

Если вы не возражаете, используя функцию (которую я рекомендую) попробуйте установить переменную с помощью функции:

def RandNum(): 
     return random.randint(0,12) 

number1 = RandNum() 
number2 = RandNum() 

Этот будет делать цифры случайными, но постоянными во всей программе. Удачи вам в вашей программе!

P.S. Команда return останавливает функцию и возвращает ее в основную программу. напримересли у меня есть код:

def function(): 
     return 3 
     return 2 
     return 1 

Только 3 будут возвращены и использованы основной программой.

+0

Причина, по которой я хочу достичь максимальной эффективности, на Python есть много людей, чем я, поэтому почему бы не спросить, я лично не знаю их всех. – Merlindima

+0

@Merlindima Самый эффективный способ сделать это - объявить все переменные в одной строке, поэтому, используя первое решение, и объединение трех дает 'number1, number2, number3 = random.randint (0,12), random.randint (0,12), random.randint (0,12) ' – Myleopard

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