#python
#python
Вопрос:
На моей первой неделе изучения cs и работы над моим первым заданием проекта (на python3) Я столкнулся с препятствием. В проекте есть встроенная функция, к которой я не могу получить доступ, функция в основном делает это-
«Тестовая игральная кость является детерминированной: она всегда циклически перебирает фиксированную последовательность значений, которые передаются в качестве аргументов. Функция генерирует тестовые кубики make_test_dice
. »
test_dice = make_test_dice(4, 1, 2)
>>>test_dice()
4
1 on the 2nd call, 2 on the 3rd call and 4 on the 4th call
Теперь, после довольно долгого исследования, я наткнулся на аргументы и функцию yield для выполнения этой работы, но я не смог ее реализовать из-за ошибок.
Любая помощь по реализации этой определенной функции будет оценена!
Комментарии:
1. Итак, что вы пробовали и какие ошибки? В общем, у вас больше шансов получить помощь, если вы покажете людям, что вы пытались, и ошибки, которые вы получили, чем если бы вы просто намекнули на то, что пытались что-то сделать, и сказали, что это не работает.
Ответ №1:
Вы могли бы сделать следующее cycle
с помощью стандартной библиотеки itertools
:
from itertools import cycle
def make_test_dice(*args):
next_dice = cycle(args)
def dice():
return next(next_dice)
return dice
С помощью
test_dice = make_test_dice(4, 1, 2)
test = [test_dice() for _ in range(5)]
вы получите
[4, 1, 2, 4, 1]
Но: действительно ли это ваше первое назначение Python?
Комментарии:
1. Огромное спасибо за это! На прошлой неделе я решил несколько основных вопросов, но это часть первого серьезного задания, за которое я взялся. Это своего рода игра в кости.