Костадин обнови решението на 15.10.2014 12:33 (преди около 10 години)
Малко бележки:
- Трябва да има интервали около "операторите" като
<=
,-
,+
,?
,==
,:
и т.н. - Името на параметъра
summed
е много лошо избрано. По-добре е да се казваsequence_type
или нещо такова. Ноsummed
не е . Крайно подвеждащо е така. - Стила на
if
-овете вseries
не е добър. Едноредовиif
-ове сthen
почти никога не се ползват. Направи го с многоредовоif-elsif-elsif-end
клауза, или с постфиксен вариант наif
, или по друг начин, но не го оставяй така. - Принципно е добре да се придържаш към низове с единични кавички, освен ако не използваш специалните свойства на низ с двойни кавички (например, интерполация)
Останалата част от задачата ти е прилична.
Здравейте,
Може ли да ми обясните какъв е правилният начин да си оправя решението? Общо взето каква е процедурата?
Малко коментари на вашите коментари:
Винаги пиша такива спейсове, този път бързах, и съм ги забравил. Което е оправдание.
Съгласен.
Може ли да обясните защо не се ползват подобен тип "if"-ве? Първоначално го бях направил, така, както предлагате Вие, но редовете излязоха повече и реших да ползвам едноредови.
Ясно. Ще се придържам.
Поздрави, Костадин
Ако съм ти разбрал правилно въпроса, решението можеш да си коригираш, докато не е изтекъл срокът на задачата. Преди крайния срок можеш да предаваш неограничен брой версии на решението ти. Само последната се зачита.
След изтичане на срока на задачата, предаването на решения затваря.
Когато предадеш по-рано решение, ще е по-голяма вероятността да получиш коментар от нас навреме и да имаш време да го отразиш в срок.
Относно въпроса ти в трета точка, if-then
не се ползва принципно, понеже съществуват по-експресивни и прости начини да се постигне същото, а именно:
- postfix-ни условия
- нормален if-elsif-else
И двете стават. В твоя случай, постфиксният синтаксис щеше да изглежда така (подравнил съм if-клаузите за четимост):
def series(summed, index)
return fibonacci(index) + lucas(index) if summed == "summed"
return fibonacci(index) if summed == "fibonacci"
return lucas(index) if summed == "lucas"
end
Нормалният if-else
е дори още по-прост и лесно разбираем и аз бих го предпочел в този случай. А най-добре е case
, но за него не сме говорили все още, затова не го изискваме.
Прегледай решенията на колегите си за още идеи. На лекцията днес също ще направим един бърз преглед на лоши и добри решения.
Благодаря! Следващият път ще се опитам да предам задачата по- навременно, за да може да има ревизии :)