Я работал над функцией all_dice (), которая должна принимать значение выбора, сколько кубиков хочет бросить пользователь, а затем бросает соответствующее количество кубиков. Я хочу сохранить каждую переменную roll_ () в пустом наборе thisset = set (), чтобы иметь возможность получить окончательный результат, просто вернув и распечатав all_dice (). Но я получаю только одно значение. Идея набора, кажется, перехватывает while l oop. Например, когда я устанавливаю choice == 5, этот набор содержит только {4}. Если он работает, как задумано, функция должна начинаться с выбора = 5, получать число roll_ (), сохранять его в thisset {}, затем вести обратный отсчет по выбору = выбор-1, go до выбора == 4 и скоро. Итак, с choice = 5, id ожидает 5 значений внутри thisset {}.
без функции thisset.add () функция all_dice () работает так, как задумано - обратный отсчет вариантов и получение соответствующих значений.
Может кто подскажет, почему в то время как l oop перехватывается / в чем проблема?
Это моя первая программа, поэтому будьте осторожны со мной -thx за вашу помощь!
#function to role many dice
import random
choice =5
print("choice is:",choice)
def all_dice(choice):
while choice>=1:
thisset=set()
if choice==1:
roll_1=random.randint(1,6)
thisset.add(roll_1)
choice=choice-1
if choice==2:
roll_2=random.randint(1,6)
thisset.add(roll_2)
choice=choice-1
if choice==3:
roll_3=random.randint(1,6)
thisset.add(roll_3)
choice=choice-1
if choice==4:
roll_4=random.randint(1,6)
thisset.add(roll_4)
choice=choice-1
if choice==5:
roll_5=random.randint(1,6)
thisset.add(roll_5)
choice=choice-1
return thisset
print(all_dice(choice))