Написать с использованием оператора match / case функцию rnd() от двух параметров (a и b=None), которая возвращает некоторое случайное значение в зависимости от того, какого типа и в каком количестве переданы ей параметры:

  1. целое → случайное целое в диапазоне [0…a]

  2. два целых → случайное целое в диапазоне [a…b]

  3. вещественное и целое/вещественное → случайное вещественное в диапазоне [a…b[

  4. индексируемая или итерируемая последовательность → случайный элемент a

  5. индексируемая или итерируемая последовательность и целое → список из b случайных элементов a

  6. строка и целое → случайная подстрока a длиной b

  7. строка → случайное слово из a.split()

  8. строка и строка → случайная строка из a.split(b)

В решении важно использовать только необходимые функции random, иначе тесты не пройдут.

   1 import random
   2 random.seed(123)
   3 print(*(rnd(3, 5) for i in range(11)))
   4 prnit(rnd(5))
   5 print(*(round(rnd(3., 5), 4) for i in range(4)))
   6 print(*(rnd("Substring", 4) for i in range(4)))
   7 print(*(rnd("We won oewn wow") for i in range(5)))
   8 print(*(rnd("We won oewn wow", "wo") for i in range(4)))
   9 print(*(rnd(range(10)) for i in range(12)))
  10 print(*(rnd({1, 3, 5, 7}) for i in range(12)))
  11 print(*(rnd(range(10), 3) for i in range(4)))
  12 print(*(rnd(enumerate("qwe"), 1) for i in range(5)))

3 4 3 4 4 3 3 4 5 5 4
2
4.7042 3.3193 3.6744 3.6676
ubst ubst Subs stri
We wow We We oewn
w n oewn  We  We
1 2 2 0 4 6 9 7 4 7 0 4
5 7 3 5 1 7 7 7 7 5 1 3
[7, 0, 4] [2, 3, 5] [8, 7, 3] [7, 0, 5]
[(2, 'e')] [(1, 'w')] [(2, 'e')] [(2, 'e')] [(1, 'w')] 

(нажмите «Комментарии» в шапке страницы, чтобы прочитать спойлер) Функции, которые использовались в эталонном решении:


CategoryHomework

LecturesCMC/PythonIntro2024/Homework_RndSwissknife (последним исправлял пользователь FrBrGeorge 2024-12-07 14:26:27)