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

Я имею

    print(randint(0,12))

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

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

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

    (RandNum("number"))

Когда мне нужно случайное число?

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

4 ответа

Решение

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

from random import randint

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

RandNum(3)

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

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

Таким образом, вы хотите, чтобы случайный 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:)

Надеюсь, я помог.

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

number1 = random.randint(0,12)

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

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

number1 = RandNum()
number2 = RandNum()

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

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

def function():
        return 3
        return 2
        return 1

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

Другие вопросы по тегам