Feedback k domácím projektům
Upovídané řešení z domácích projektů
Lepší, ale pořád ne optimální
Kratší a méně náročné řešení
Upovídané řešení z domácích projektů
Kratší řešení s využitím cyklu v dalším cyklu
- K importům:
- Importy provádíme vždy na prvních řádcích programu a v rámci programu pouze jednou.
- Snažíme se nepoužívat importy s hvězdičkou.
- Neimportujeme nic co pak v programu nepoužijeme.
- Ke komentářům:
- Nezakomentováváme programy nebo jednotlivé úlohy v nich.
- Není třeba psát komentáře k tomu, co je zcela jasné. Je to ale pořád lepší než je nepsat vůbec.
- Komentáře je lepší a jednodušší psát nad nebo pod kód místo vedle něj. Obzvlášť pokud má komentovaná část kódu několik řádků.
- Ke stylu:
- Zkuste nedělat extra dlouhé řádky. Maximum je takových 100 znaků.
- Kód nemusí být elegantní, hlavně když funguje (alespoň pro začátek).
- Martin děkuje všem, kteří zrychlili želvičku.
{
"data": {
"sessionMaterial": {
"id": "session-material:2019/pyladies-ostrava-jaro:loops:5",
"title": "Zpětná vazba k domácím projektům",
"html": "\n \n \n\n <div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h1>Feedback k domácím projektům</h1>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>Nejmenší číslo</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3>Upovídané řešení z domácích projektů</h3>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">prve</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej cislo: '</span><span class=\"p\">)</span>\n<span class=\"n\">druhe</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej cislo: '</span><span class=\"p\">)</span>\n<span class=\"n\">tretie</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej cislo: '</span><span class=\"p\">)</span>\n<span class=\"n\">stvrte</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej cislo: '</span><span class=\"p\">)</span>\n<span class=\"n\">piate</span> <span class=\"o\">=</span> <span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej cislo: '</span><span class=\"p\">)</span>\n\n<span class=\"k\">if</span> <span class=\"n\">prve</span><span class=\"o\"><</span><span class=\"n\">druhe</span> <span class=\"ow\">and</span> <span class=\"n\">prve</span><span class=\"o\"><</span><span class=\"n\">tretie</span> <span class=\"ow\">and</span> <span class=\"n\">prve</span><span class=\"o\"><</span><span class=\"n\">stvrte</span> <span class=\"ow\">and</span> <span class=\"n\">prve</span><span class=\"o\"><</span><span class=\"n\">piate</span><span class=\"p\">:</span> \n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">prve</span><span class=\"p\">)</span> \n<span class=\"k\">if</span> <span class=\"n\">druhe</span><span class=\"o\"><</span><span class=\"n\">prve</span> <span class=\"ow\">and</span> <span class=\"n\">druhe</span><span class=\"o\"><</span><span class=\"n\">tretie</span> <span class=\"ow\">and</span> <span class=\"n\">druhe</span><span class=\"o\"><</span><span class=\"n\">stvrte</span> <span class=\"ow\">and</span> <span class=\"n\">druhe</span><span class=\"o\"><</span><span class=\"n\">piate</span><span class=\"p\">:</span> \n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">druhe</span><span class=\"p\">)</span> \n<span class=\"k\">if</span> <span class=\"n\">tretie</span><span class=\"o\"><</span><span class=\"n\">prve</span> <span class=\"ow\">and</span> <span class=\"n\">tretie</span><span class=\"o\"><</span><span class=\"n\">druhe</span> <span class=\"ow\">and</span> <span class=\"n\">tretie</span><span class=\"o\"><</span><span class=\"n\">stvrte</span> <span class=\"ow\">and</span> <span class=\"n\">tretie</span><span class=\"o\"><</span><span class=\"n\">piate</span><span class=\"p\">:</span> \n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">tretie</span><span class=\"p\">)</span> \n<span class=\"k\">if</span> <span class=\"n\">stvrte</span><span class=\"o\"><</span><span class=\"n\">prve</span> <span class=\"ow\">and</span> <span class=\"n\">stvrte</span><span class=\"o\"><</span><span class=\"n\">druhe</span> <span class=\"ow\">and</span> <span class=\"n\">stvrte</span><span class=\"o\"><</span><span class=\"n\">tretie</span> <span class=\"ow\">and</span> <span class=\"n\">stvrte</span><span class=\"o\"><</span><span class=\"n\">piate</span><span class=\"p\">:</span> \n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">stvrte</span><span class=\"p\">)</span> \n<span class=\"k\">if</span> <span class=\"n\">piate</span><span class=\"o\"><</span><span class=\"n\">prve</span> <span class=\"ow\">and</span> <span class=\"n\">piate</span><span class=\"o\"><</span><span class=\"n\">druhe</span> <span class=\"ow\">and</span> <span class=\"n\">piate</span><span class=\"o\"><</span><span class=\"n\">tretie</span> <span class=\"ow\">and</span> <span class=\"n\">piate</span><span class=\"o\"><</span><span class=\"n\">stvrte</span><span class=\"p\">:</span> \n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">piate</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3>Lepší, ale pořád ne optimální</h3>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">a</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Prvni cislo: '</span><span class=\"p\">))</span>\n<span class=\"n\">b</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Druhe cislo: '</span><span class=\"p\">))</span>\n<span class=\"n\">c</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Treti cislo: '</span><span class=\"p\">))</span>\n<span class=\"n\">d</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Ctrvte cislo: '</span><span class=\"p\">))</span>\n<span class=\"n\">e</span> <span class=\"o\">=</span> <span class=\"nb\">float</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Pate cislo: '</span><span class=\"p\">))</span>\n\n\n<span class=\"n\">m</span> <span class=\"o\">=</span> <span class=\"n\">a</span>\n\n<span class=\"k\">for</span> <span class=\"n\">cislo</span> <span class=\"ow\">in</span> <span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">c</span><span class=\"p\">,</span> <span class=\"n\">d</span><span class=\"p\">,</span> <span class=\"n\">e</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">cislo</span> <span class=\"o\"><</span> <span class=\"n\">m</span><span class=\"p\">:</span>\n <span class=\"n\">m</span><span class=\"o\">=</span><span class=\"n\">cislo</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">m</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3>Kratší a méně náročné řešení</h3>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">minimum</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>\n<span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">):</span>\n <span class=\"n\">cislo</span> <span class=\"o\">=</span> <span class=\"nb\">int</span><span class=\"p\">(</span><span class=\"nb\">input</span><span class=\"p\">(</span><span class=\"s1\">'Zadej cislo: '</span><span class=\"p\">))</span>\n \n <span class=\"k\">if</span> <span class=\"n\">minimum</span> <span class=\"o\">==</span> <span class=\"mi\">0</span> <span class=\"ow\">or</span> <span class=\"n\">cislo</span> <span class=\"o\"><</span> <span class=\"n\">minimum</span><span class=\"p\">:</span>\n <span class=\"n\">minimum</span> <span class=\"o\">=</span> <span class=\"n\">cislo</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s1\">'Nejmensi zadane cislo je'</span><span class=\"p\">,</span> <span class=\"n\">minimum</span><span class=\"p\">)</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>N-úhelníky v řadě</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3>Upovídané řešení z domácích projektů</h3>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"k\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">shape</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">right</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span><span class=\"p\">,</span> <span class=\"n\">penup</span><span class=\"p\">,</span> <span class=\"n\">pendown</span><span class=\"p\">,</span> <span class=\"n\">back</span>\n\n<span class=\"c1\"># pětiúhelník:</span>\n<span class=\"n\">vnitrniuhel</span> <span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">*</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"o\">-</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">/</span><span class=\"mi\">5</span><span class=\"p\">))</span>\n<span class=\"n\">vnejsiuhel</span><span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">-</span><span class=\"n\">vnitrniuhel</span>\n<span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span> <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">200</span><span class=\"o\">/</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"n\">vnejsiuhel</span><span class=\"p\">)</span>\n<span class=\"n\">penup</span><span class=\"p\">()</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n<span class=\"n\">pendown</span><span class=\"p\">()</span>\n\n<span class=\"c1\"># šestiúhelník:</span>\n<span class=\"n\">vnitrniuhel</span> <span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">*</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"o\">-</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">/</span><span class=\"mi\">6</span><span class=\"p\">))</span>\n<span class=\"n\">vnejsiuhel</span><span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">-</span><span class=\"n\">vnitrniuhel</span>\n<span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span> <span class=\"p\">(</span><span class=\"mi\">6</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">200</span><span class=\"o\">/</span><span class=\"mi\">6</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"n\">vnejsiuhel</span><span class=\"p\">)</span>\n<span class=\"n\">penup</span><span class=\"p\">()</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n<span class=\"n\">pendown</span><span class=\"p\">()</span>\n\n<span class=\"c1\"># sedmiúhelník:</span>\n<span class=\"n\">vnitrniuhel</span> <span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">*</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"o\">-</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">/</span><span class=\"mi\">7</span><span class=\"p\">))</span>\n<span class=\"n\">vnejsiuhel</span><span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">-</span><span class=\"n\">vnitrniuhel</span>\n<span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span> <span class=\"p\">(</span><span class=\"mi\">7</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">200</span><span class=\"o\">/</span><span class=\"mi\">7</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"n\">vnejsiuhel</span><span class=\"p\">)</span>\n<span class=\"n\">penup</span><span class=\"p\">()</span>\n<span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n<span class=\"n\">pendown</span><span class=\"p\">()</span>\n\n<span class=\"c1\"># osmiúhelník:</span>\n<span class=\"n\">vnitrniuhel</span> <span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">*</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"o\">-</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">/</span><span class=\"mi\">8</span><span class=\"p\">))</span>\n<span class=\"n\">vnejsiuhel</span><span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">-</span><span class=\"n\">vnitrniuhel</span>\n<span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span> <span class=\"p\">(</span><span class=\"mi\">8</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">200</span><span class=\"o\">/</span><span class=\"mi\">8</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"n\">vnejsiuhel</span><span class=\"p\">)</span>\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h3>Kratší řešení s využitím cyklu v dalším cyklu</h3>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In [ ]:</div>\n<div class=\"inner_cell\">\n <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">turtle</span> <span class=\"k\">import</span> <span class=\"n\">forward</span><span class=\"p\">,</span> <span class=\"n\">shape</span><span class=\"p\">,</span> <span class=\"n\">left</span><span class=\"p\">,</span> <span class=\"n\">right</span><span class=\"p\">,</span> <span class=\"n\">exitonclick</span><span class=\"p\">,</span> <span class=\"n\">penup</span><span class=\"p\">,</span> <span class=\"n\">pendown</span><span class=\"p\">,</span> <span class=\"n\">back</span>\n\n<span class=\"k\">for</span> <span class=\"n\">n</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span><span class=\"mi\">9</span><span class=\"p\">):</span>\n <span class=\"n\">vnitrniuhel</span> <span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">*</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"o\">-</span><span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"o\">/</span><span class=\"n\">n</span><span class=\"p\">))</span>\n <span class=\"n\">vnejsiuhel</span><span class=\"o\">=</span> <span class=\"mi\">180</span><span class=\"o\">-</span><span class=\"n\">vnitrniuhel</span>\n <span class=\"k\">for</span> <span class=\"n\">x</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span> <span class=\"p\">(</span><span class=\"n\">n</span><span class=\"p\">):</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">200</span><span class=\"o\">/</span><span class=\"n\">n</span><span class=\"p\">)</span>\n <span class=\"n\">left</span><span class=\"p\">(</span><span class=\"n\">vnejsiuhel</span><span class=\"p\">)</span>\n <span class=\"n\">penup</span><span class=\"p\">()</span>\n <span class=\"n\">forward</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">)</span>\n <span class=\"n\">pendown</span><span class=\"p\">()</span>\n\n<span class=\"n\">exitonclick</span><span class=\"p\">()</span>\n</pre></div>\n\n </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<h2>Obecné připomínky a rady</h2>\n</div>\n</div>\n</div>\n<div class=\"cell border-box-sizing text_cell rendered\"><div class=\"prompt input_prompt\">\n</div><div class=\"inner_cell\">\n<div class=\"text_cell_render border-box-sizing rendered_html\">\n<ul>\n<li>K importům:<ul>\n<li>Importy provádíme vždy na prvních řádcích programu a v rámci programu pouze jednou.</li>\n<li>Snažíme se nepoužívat importy s hvězdičkou.</li>\n<li>Neimportujeme nic co pak v programu nepoužijeme.</li>\n</ul>\n</li>\n<li>Ke komentářům:<ul>\n<li>Nezakomentováváme programy nebo jednotlivé úlohy v nich.</li>\n<li>Není třeba psát komentáře k tomu, co je zcela jasné. Je to ale pořád lepší než je nepsat vůbec.</li>\n<li>Komentáře je lepší a jednodušší psát nad nebo pod kód místo vedle něj. Obzvlášť pokud má komentovaná část kódu několik řádků.</li>\n</ul>\n</li>\n<li>Ke stylu:<ul>\n<li>Zkuste nedělat extra dlouhé řádky. Maximum je takových 100 znaků.</li>\n<li>Kód nemusí být elegantní, hlavně když funguje (alespoň pro začátek).</li>\n</ul>\n</li>\n<li>Martin děkuje všem, kteří zrychlili želvičku.</li>\n</ul>\n</div>\n</div>\n</div>\n \n\n\n\n\n "
}
}
}