skip to navigation
skip to content

feed icon RSS хранилка

Първа задача — Прелюд

Публикувано на 12.03.2009 13:06 от николай
Последна промяна на 12.03.2009 14:39

Брой точки, които дава задачата: 6.

Краен срок: 19-и март 2009г., 19:00 часа.

Три функции

Целта на задачата ще е да напишете три прости функции, свързани с основните структури от данни в Python.

fizzbuzz

Първата функция трябва да се казва fizzbuzz и да приема един аргумент на име n.

Функцията трябва да връща списък с числата от 1 до n (включително), в който числата, които се делят на 3 са заместени с низа "Fizz", числата, които се делят на 5 са заместени от низа "Buzz", а числата, които се делят и на 3 и на 5 са заместени с "FizzBuzz".

Пример:

>>> fizzbuzz(15)
[1, 2, 'Fizz', 4, 'Buzz', 'Fizz', 7, 8, 'Fizz', 'Buzz', 11, 'Fizz', 13, 14, 'FizzBuzz']

minmaxmean

Втората функция трябва да се казва minmaxmean и да приема един аргумент на име ages, който е речник от имена на хора/роботи/извънземни и техните възрасти. Функцията трябва да върне тройка с елементи:

  1. Името на най-младия в речника. Ако има няколко, няма значение кого ще върне.
  2. Името на най-стария в речника. Ако има няколко най-стари, няма значение кого ще върне.
  3. Името на този, чиято възраст е най-близка до средно-аритметичната възраст в речника. Отново, ако има няколко, няма значение кого ще върне. Разстояние между две възрасти е, разбира се, абсолютната стойност на разликата им.

Пример:

>>> minmaxmean({'Fry': 4, 'Zoidberg': 33, 'Bender': 2, 'Farnsworth': 160})
('Bender', 'Farnsworth', 'Zoidberg')

anagrams

Третата функция трявба да се казва anagrams и да приема един аргумент на име words, който е списък от низове. Функцията трябва да върне списък от списъци с всички думи, които са анаграми една на друга.

Редът на списъците и на думите в резулата няма значение.

Пример:

>>> anagrams(['army', 'mary', 'ramy', 'astronomer', 'moonstarer', 'debit card', 'bad credit', 'bau'])
[['astronomer', 'moonstarer'], ['army', 'mary', 'ramy'], ['debit card', 'bad credit']]

Забележка: вашето решение може да връща списъците или думите в различен ред. [['astronomer', 'moonstarer'], ['debit card', 'bad credit'], ['mary', 'army', 'ramy']] също е валиден отговор.

Примерен тест

Връзка: p1-sample.py

Теста може да изпълните като свалите p1-sample.py, заедно с него в една директория запазите своето решение, именувано p1.py и изпълните p1-sample.py. Крайната ви цел е да получите OK някъде из резултата.

Не забравяйте да използвате python 3.

Тестът не гарантира, че ще получите всички точки по задачата, но поне ще ви гарантира, че не сте допуснали глупава грешка, която да ви коства всички точки.

Указания за писане и изпращане на задачите.