Feedback k domácím projektům

Řešení 1 - obsah lze vypočítat jen jednou a musí být spočten před počítáním rozdílu

In [1]:
class Ctverec:
    def __init__(self, strana):
        self.strana = strana
    def obvod(self):
        self.obvod = 4*self.strana
        return self.obvod
    def obsah(self):
        self.obsah = self.strana**2
        return self.obsah
    def rozdil_obsahu(self, jiny_ctverec):
        return self.obsah - jiny_ctverec.obsah
In [2]:
c1 = Ctverec(5)
c1.obsah()
Out[2]:
25
In [3]:
c1.obsah()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-dd68ddc8112e> in <module>()
----> 1 c1.obsah()

TypeError: 'int' object is not callable
In [4]:
c1 = Ctverec(5)
c2 = Ctverec(10)
c2.rozdil_obsahu(c1)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-b2d4f2c61000> in <module>()
      1 c1 = Ctverec(5)
      2 c2 = Ctverec(10)
----> 3 c2.rozdil_obsahu(c1)

<ipython-input-1-cf49bcfaa00b> in rozdil_obsahu(self, jiny_ctverec)
      9         return self.obsah
     10     def rozdil_obsahu(self, jiny_ctverec):
---> 11         return self.obsah - jiny_ctverec.obsah

TypeError: unsupported operand type(s) for -: 'method' and 'method'
In [16]:
c1 = Ctverec(5)
c2 = Ctverec(10)
print(c1.obsah())
print(c2.obsah())
print(c2.rozdil_obsahu(c1))
25
100
75

Řešení 2 - nefunguje dokud nemá ty správné globální proměnné

In [5]:
class Ctverec:
    def __init__(self, strana):
        self.strana = strana

    def obvod(self):
        return 4 * self.strana

    def obsah(self):
        return self.strana ** 2

    def rozdil_obsahu(self, jiny_ctverec):
        return self.obsah() - druhy_ctverec.obsah()
In [6]:
c1 = Ctverec(5)
c2 = Ctverec(10)
c2.rozdil_obsahu(c1)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-b2d4f2c61000> in <module>()
      1 c1 = Ctverec(5)
      2 c2 = Ctverec(10)
----> 3 c2.rozdil_obsahu(c1)

<ipython-input-5-745a0cf85edb> in rozdil_obsahu(self, jiny_ctverec)
     10 
     11     def rozdil_obsahu(self, jiny_ctverec):
---> 12         return self.obsah() - druhy_ctverec.obsah()

NameError: name 'druhy_ctverec' is not defined

Řešení 3 - globální proměnné podruhé

In [7]:
class Ctverec:
    def __init__(self, strana):
        self.strana = strana

    def obvod(self):
        obvod = 4 * self.strana
        return obvod

    def obsah(self):
        obsah = self.strana * self.strana
        return obsah

    def rozdil_obsahu(self):
        rozdil = ctverec1.obsah() - ctverec2.obsah()
        return rozdil
In [8]:
c1 = Ctverec(5)
c2 = Ctverec(10)
c2.rozdil_obsahu(c1)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-b2d4f2c61000> in <module>()
      1 c1 = Ctverec(5)
      2 c2 = Ctverec(10)
----> 3 c2.rozdil_obsahu(c1)

TypeError: rozdil_obsahu() takes 1 positional argument but 2 were given

Řešení 4 - jiny_ctverec je vlastně délka strany

In [9]:
class Ctverec:
    def __init__(self, strana):
        self.strana = strana

    def obvod(self):
        print(self.strana*4)

    def obsah(self):
        print(self.strana**2)

    def rozdil_obsahu(self, jiny_ctverec):
        self.jiny_ctverec = jiny_ctverec
        print((self.strana**2 - self.jiny_ctverec**2))
In [10]:
c1 = Ctverec(5)
c2 = Ctverec(10)
c2.rozdil_obsahu(c1)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-10-b2d4f2c61000> in <module>()
      1 c1 = Ctverec(5)
      2 c2 = Ctverec(10)
----> 3 c2.rozdil_obsahu(c1)

<ipython-input-9-8c22002c806b> in rozdil_obsahu(self, jiny_ctverec)
     11     def rozdil_obsahu(self, jiny_ctverec):
     12         self.jiny_ctverec = jiny_ctverec
---> 13         print((self.strana**2 - self.jiny_ctverec**2))

TypeError: unsupported operand type(s) for ** or pow(): 'Ctverec' and 'int'

Řešení 5 - jiny_ctverec je vlastně délka strany podruhé

In [11]:
class Ctverec:
    """Trida Ctverec s jednim atributem strana a metodami:
        - obvod()
        - obsah()
        - rozdil_obsahu(jiny_ctverec): 
            vrati rozdil obsahu dvou ctvercu - zadaneho a toho jehoz metodu volame."""
    def __init__(self, strana):
        self.strana = strana
    
    def obvod(self):
        "Vypocet obvodu ctverce"
        self.obvod = self.strana * 4
        print("Ctverec o strane {}cm ma obvod {}cm.".format(self.strana, self.obvod))

    def obsah(self):
        "Vypocet obsahu ctverce"
        self.obsah = self.strana ** 2
        print("Ctverec o strane {}cm ma obsah {}cm2.".format(self.strana, self.obsah))

    def rozdil_obsahu(self, jiny_ctverec):
        "vrati rozdil obsahu dvou ctvercu - zadaneho a toho jehoz metodu volame"
        rozdil = (jiny_ctverec ** 2) - (self.strana ** 2)
        return rozdil

Správné řešení

In [13]:
class Ctverec():
    def __init__(self, strana):
        self.strana = strana

    def obvod(self):
        return 4 * self.strana

    def obsah(self):
        return self.strana ** 2

    def rozdil_obsahu(self, druhy_ctverec):
        return self.obsah() - druhy_ctverec.obsah()
{
  "data": {
    "sessionMaterial": {
      "id": "session-material:2019/pyladies-ostrava-jaro:class:3",
      "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&#xE1;c&#xED;m projekt&#x16F;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>&#x158;e&#x161;en&#xED; 1 - obsah lze vypo&#x10D;&#xED;tat jen jednou a mus&#xED; b&#xFD;t spo&#x10D;ten p&#x159;ed po&#x10D;&#xED;t&#xE1;n&#xED;m rozd&#xED;lu</h2>\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&#xA0;[1]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">Ctverec</span><span class=\"p\">:</span>\n    <span class=\"k\">def</span> <span class=\"nf\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"n\">strana</span>\n    <span class=\"k\">def</span> <span class=\"nf\">obvod</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obvod</span> <span class=\"o\">=</span> <span class=\"mi\">4</span><span class=\"o\">*</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obvod</span>\n    <span class=\"k\">def</span> <span class=\"nf\">obsah</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obsah</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span><span class=\"o\">**</span><span class=\"mi\">2</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obsah</span>\n    <span class=\"k\">def</span> <span class=\"nf\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">jiny_ctverec</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obsah</span> <span class=\"o\">-</span> <span class=\"n\">jiny_ctverec</span><span class=\"o\">.</span><span class=\"n\">obsah</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[2]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">c1</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">c1</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">()</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n    <div class=\"prompt output_prompt\">Out[2]:</div>\n\n\n\n\n<div class=\"output_text output_subarea output_execute_result\">\n<pre>25</pre>\n</div>\n\n</div>\n\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[3]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">c1</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">()</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n    <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_text output_error\">\n<pre><span class=\"ansi-red-fg\">---------------------------------------------------------------------------</span>\n<span class=\"ansi-red-fg\">TypeError</span>                                 Traceback (most recent call last)\n<span class=\"ansi-green-fg\">&lt;ipython-input-3-dd68ddc8112e&gt;</span> in <span class=\"ansi-cyan-fg\">&lt;module&gt;</span><span class=\"ansi-blue-fg\">()</span>\n<span class=\"ansi-green-fg\">----&gt; 1</span><span class=\"ansi-red-fg\"> </span>c1<span class=\"ansi-blue-fg\">.</span>obsah<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-blue-fg\">)</span>\n\n<span class=\"ansi-red-fg\">TypeError</span>: &apos;int&apos; object is not callable</pre>\n</div>\n</div>\n\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[4]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">c1</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span><span class=\"o\">.</span><span class=\"n\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"n\">c1</span><span class=\"p\">)</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n    <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_text output_error\">\n<pre><span class=\"ansi-red-fg\">---------------------------------------------------------------------------</span>\n<span class=\"ansi-red-fg\">TypeError</span>                                 Traceback (most recent call last)\n<span class=\"ansi-green-fg\">&lt;ipython-input-4-b2d4f2c61000&gt;</span> in <span class=\"ansi-cyan-fg\">&lt;module&gt;</span><span class=\"ansi-blue-fg\">()</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      1</span> c1 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">5</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      2</span> c2 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">10</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-fg\">----&gt; 3</span><span class=\"ansi-red-fg\"> </span>c2<span class=\"ansi-blue-fg\">.</span>rozdil_obsahu<span class=\"ansi-blue-fg\">(</span>c1<span class=\"ansi-blue-fg\">)</span>\n\n<span class=\"ansi-green-fg\">&lt;ipython-input-1-cf49bcfaa00b&gt;</span> in <span class=\"ansi-cyan-fg\">rozdil_obsahu</span><span class=\"ansi-blue-fg\">(self, jiny_ctverec)</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      9</span>         <span class=\"ansi-green-fg\">return</span> self<span class=\"ansi-blue-fg\">.</span>obsah\n<span class=\"ansi-green-intense-fg ansi-bold\">     10</span>     <span class=\"ansi-green-fg\">def</span> rozdil_obsahu<span class=\"ansi-blue-fg\">(</span>self<span class=\"ansi-blue-fg\">,</span> jiny_ctverec<span class=\"ansi-blue-fg\">)</span><span class=\"ansi-blue-fg\">:</span>\n<span class=\"ansi-green-fg\">---&gt; 11</span><span class=\"ansi-red-fg\">         </span><span class=\"ansi-green-fg\">return</span> self<span class=\"ansi-blue-fg\">.</span>obsah <span class=\"ansi-blue-fg\">-</span> jiny_ctverec<span class=\"ansi-blue-fg\">.</span>obsah\n\n<span class=\"ansi-red-fg\">TypeError</span>: unsupported operand type(s) for -: &apos;method&apos; and &apos;method&apos;</pre>\n</div>\n</div>\n\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[16]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">c1</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">c1</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">())</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">c2</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">())</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">c2</span><span class=\"o\">.</span><span class=\"n\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"n\">c1</span><span class=\"p\">))</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n    <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_stream output_stdout output_text\">\n<pre>25\n100\n75\n</pre>\n</div>\n</div>\n\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>&#x158;e&#x161;en&#xED; 2 - nefunguje dokud nem&#xE1; ty spr&#xE1;vn&#xE9; glob&#xE1;ln&#xED; prom&#x11B;nn&#xE9;</h2>\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&#xA0;[5]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">Ctverec</span><span class=\"p\">:</span>\n    <span class=\"k\">def</span> <span class=\"nf\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"n\">strana</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obvod</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"mi\">4</span> <span class=\"o\">*</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obsah</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">**</span> <span class=\"mi\">2</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">jiny_ctverec</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">()</span> <span class=\"o\">-</span> <span class=\"n\">druhy_ctverec</span><span class=\"o\">.</span><span class=\"n\">obsah</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 code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[6]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">c1</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span><span class=\"o\">.</span><span class=\"n\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"n\">c1</span><span class=\"p\">)</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n    <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_text output_error\">\n<pre><span class=\"ansi-red-fg\">---------------------------------------------------------------------------</span>\n<span class=\"ansi-red-fg\">NameError</span>                                 Traceback (most recent call last)\n<span class=\"ansi-green-fg\">&lt;ipython-input-6-b2d4f2c61000&gt;</span> in <span class=\"ansi-cyan-fg\">&lt;module&gt;</span><span class=\"ansi-blue-fg\">()</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      1</span> c1 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">5</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      2</span> c2 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">10</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-fg\">----&gt; 3</span><span class=\"ansi-red-fg\"> </span>c2<span class=\"ansi-blue-fg\">.</span>rozdil_obsahu<span class=\"ansi-blue-fg\">(</span>c1<span class=\"ansi-blue-fg\">)</span>\n\n<span class=\"ansi-green-fg\">&lt;ipython-input-5-745a0cf85edb&gt;</span> in <span class=\"ansi-cyan-fg\">rozdil_obsahu</span><span class=\"ansi-blue-fg\">(self, jiny_ctverec)</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">     10</span> \n<span class=\"ansi-green-intense-fg ansi-bold\">     11</span>     <span class=\"ansi-green-fg\">def</span> rozdil_obsahu<span class=\"ansi-blue-fg\">(</span>self<span class=\"ansi-blue-fg\">,</span> jiny_ctverec<span class=\"ansi-blue-fg\">)</span><span class=\"ansi-blue-fg\">:</span>\n<span class=\"ansi-green-fg\">---&gt; 12</span><span class=\"ansi-red-fg\">         </span><span class=\"ansi-green-fg\">return</span> self<span class=\"ansi-blue-fg\">.</span>obsah<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-blue-fg\">)</span> <span class=\"ansi-blue-fg\">-</span> druhy_ctverec<span class=\"ansi-blue-fg\">.</span>obsah<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-blue-fg\">)</span>\n\n<span class=\"ansi-red-fg\">NameError</span>: name &apos;druhy_ctverec&apos; is not defined</pre>\n</div>\n</div>\n\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>&#x158;e&#x161;en&#xED; 3 - glob&#xE1;ln&#xED; prom&#x11B;nn&#xE9; podruh&#xE9;</h2>\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&#xA0;[7]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">Ctverec</span><span class=\"p\">:</span>\n    <span class=\"k\">def</span> <span class=\"nf\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"n\">strana</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obvod</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">obvod</span> <span class=\"o\">=</span> <span class=\"mi\">4</span> <span class=\"o\">*</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span>\n        <span class=\"k\">return</span> <span class=\"n\">obvod</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obsah</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">obsah</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">*</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span>\n        <span class=\"k\">return</span> <span class=\"n\">obsah</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"n\">rozdil</span> <span class=\"o\">=</span> <span class=\"n\">ctverec1</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">()</span> <span class=\"o\">-</span> <span class=\"n\">ctverec2</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"n\">rozdil</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n<div class=\"cell border-box-sizing code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[8]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">c1</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span><span class=\"o\">.</span><span class=\"n\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"n\">c1</span><span class=\"p\">)</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n    <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_text output_error\">\n<pre><span class=\"ansi-red-fg\">---------------------------------------------------------------------------</span>\n<span class=\"ansi-red-fg\">TypeError</span>                                 Traceback (most recent call last)\n<span class=\"ansi-green-fg\">&lt;ipython-input-8-b2d4f2c61000&gt;</span> in <span class=\"ansi-cyan-fg\">&lt;module&gt;</span><span class=\"ansi-blue-fg\">()</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      1</span> c1 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">5</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      2</span> c2 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">10</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-fg\">----&gt; 3</span><span class=\"ansi-red-fg\"> </span>c2<span class=\"ansi-blue-fg\">.</span>rozdil_obsahu<span class=\"ansi-blue-fg\">(</span>c1<span class=\"ansi-blue-fg\">)</span>\n\n<span class=\"ansi-red-fg\">TypeError</span>: rozdil_obsahu() takes 1 positional argument but 2 were given</pre>\n</div>\n</div>\n\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>&#x158;e&#x161;en&#xED; 4 - <code>jiny_ctverec</code> je vlastn&#x11B; d&#xE9;lka strany</h2>\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&#xA0;[9]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">Ctverec</span><span class=\"p\">:</span>\n    <span class=\"k\">def</span> <span class=\"nf\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"n\">strana</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obvod</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span><span class=\"o\">*</span><span class=\"mi\">4</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obsah</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span><span class=\"o\">**</span><span class=\"mi\">2</span><span class=\"p\">)</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">jiny_ctverec</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">jiny_ctverec</span> <span class=\"o\">=</span> <span class=\"n\">jiny_ctverec</span>\n        <span class=\"nb\">print</span><span class=\"p\">((</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span><span class=\"o\">**</span><span class=\"mi\">2</span> <span class=\"o\">-</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">jiny_ctverec</span><span class=\"o\">**</span><span class=\"mi\">2</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 code_cell rendered\">\n<div class=\"input\">\n<div class=\"prompt input_prompt\">In&#xA0;[10]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"n\">c1</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span> <span class=\"o\">=</span> <span class=\"n\">Ctverec</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span>\n<span class=\"n\">c2</span><span class=\"o\">.</span><span class=\"n\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"n\">c1</span><span class=\"p\">)</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n<div class=\"output_wrapper\">\n<div class=\"output\">\n\n\n<div class=\"output_area\">\n\n    <div class=\"prompt\"></div>\n\n\n<div class=\"output_subarea output_text output_error\">\n<pre><span class=\"ansi-red-fg\">---------------------------------------------------------------------------</span>\n<span class=\"ansi-red-fg\">TypeError</span>                                 Traceback (most recent call last)\n<span class=\"ansi-green-fg\">&lt;ipython-input-10-b2d4f2c61000&gt;</span> in <span class=\"ansi-cyan-fg\">&lt;module&gt;</span><span class=\"ansi-blue-fg\">()</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      1</span> c1 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">5</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">      2</span> c2 <span class=\"ansi-blue-fg\">=</span> Ctverec<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-cyan-fg\">10</span><span class=\"ansi-blue-fg\">)</span>\n<span class=\"ansi-green-fg\">----&gt; 3</span><span class=\"ansi-red-fg\"> </span>c2<span class=\"ansi-blue-fg\">.</span>rozdil_obsahu<span class=\"ansi-blue-fg\">(</span>c1<span class=\"ansi-blue-fg\">)</span>\n\n<span class=\"ansi-green-fg\">&lt;ipython-input-9-8c22002c806b&gt;</span> in <span class=\"ansi-cyan-fg\">rozdil_obsahu</span><span class=\"ansi-blue-fg\">(self, jiny_ctverec)</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">     11</span>     <span class=\"ansi-green-fg\">def</span> rozdil_obsahu<span class=\"ansi-blue-fg\">(</span>self<span class=\"ansi-blue-fg\">,</span> jiny_ctverec<span class=\"ansi-blue-fg\">)</span><span class=\"ansi-blue-fg\">:</span>\n<span class=\"ansi-green-intense-fg ansi-bold\">     12</span>         self<span class=\"ansi-blue-fg\">.</span>jiny_ctverec <span class=\"ansi-blue-fg\">=</span> jiny_ctverec\n<span class=\"ansi-green-fg\">---&gt; 13</span><span class=\"ansi-red-fg\">         </span>print<span class=\"ansi-blue-fg\">(</span><span class=\"ansi-blue-fg\">(</span>self<span class=\"ansi-blue-fg\">.</span>strana<span class=\"ansi-blue-fg\">**</span><span class=\"ansi-cyan-fg\">2</span> <span class=\"ansi-blue-fg\">-</span> self<span class=\"ansi-blue-fg\">.</span>jiny_ctverec<span class=\"ansi-blue-fg\">**</span><span class=\"ansi-cyan-fg\">2</span><span class=\"ansi-blue-fg\">)</span><span class=\"ansi-blue-fg\">)</span>\n\n<span class=\"ansi-red-fg\">TypeError</span>: unsupported operand type(s) for ** or pow(): &apos;Ctverec&apos; and &apos;int&apos;</pre>\n</div>\n</div>\n\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>&#x158;e&#x161;en&#xED; 5 - <code>jiny_ctverec</code> je vlastn&#x11B; d&#xE9;lka strany podruh&#xE9;</h2>\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&#xA0;[11]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">Ctverec</span><span class=\"p\">:</span>\n    <span class=\"sd\">&quot;&quot;&quot;Trida Ctverec s jednim atributem strana a metodami:</span>\n<span class=\"sd\">        - obvod()</span>\n<span class=\"sd\">        - obsah()</span>\n<span class=\"sd\">        - rozdil_obsahu(jiny_ctverec): </span>\n<span class=\"sd\">            vrati rozdil obsahu dvou ctvercu - zadaneho a toho jehoz metodu volame.&quot;&quot;&quot;</span>\n    <span class=\"k\">def</span> <span class=\"nf\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"n\">strana</span>\n    \n    <span class=\"k\">def</span> <span class=\"nf\">obvod</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"s2\">&quot;Vypocet obvodu ctverce&quot;</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obvod</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">*</span> <span class=\"mi\">4</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;Ctverec o strane </span><span class=\"si\">{}</span><span class=\"s2\">cm ma obvod </span><span class=\"si\">{}</span><span class=\"s2\">cm.&quot;</span><span class=\"o\">.</span><span class=\"n\">format</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obvod</span><span class=\"p\">))</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obsah</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"s2\">&quot;Vypocet obsahu ctverce&quot;</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obsah</span> <span class=\"o\">=</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">**</span> <span class=\"mi\">2</span>\n        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;Ctverec o strane </span><span class=\"si\">{}</span><span class=\"s2\">cm ma obsah </span><span class=\"si\">{}</span><span class=\"s2\">cm2.&quot;</span><span class=\"o\">.</span><span class=\"n\">format</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span><span class=\"p\">,</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">))</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">jiny_ctverec</span><span class=\"p\">):</span>\n        <span class=\"s2\">&quot;vrati rozdil obsahu dvou ctvercu - zadaneho a toho jehoz metodu volame&quot;</span>\n        <span class=\"n\">rozdil</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">jiny_ctverec</span> <span class=\"o\">**</span> <span class=\"mi\">2</span><span class=\"p\">)</span> <span class=\"o\">-</span> <span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">**</span> <span class=\"mi\">2</span><span class=\"p\">)</span>\n        <span class=\"k\">return</span> <span class=\"n\">rozdil</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>Spr&#xE1;vn&#xE9; &#x159;e&#x161;en&#xED;</h2>\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&#xA0;[13]:</div>\n<div class=\"inner_cell\">\n    <div class=\"input_area\">\n<div class=\" highlight hl-ipython3\"><pre><span></span><span class=\"k\">class</span> <span class=\"nc\">Ctverec</span><span class=\"p\">():</span>\n    <span class=\"k\">def</span> <span class=\"nf\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">strana</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">=</span> <span class=\"n\">strana</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obvod</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"mi\">4</span> <span class=\"o\">*</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">obsah</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">strana</span> <span class=\"o\">**</span> <span class=\"mi\">2</span>\n\n    <span class=\"k\">def</span> <span class=\"nf\">rozdil_obsahu</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">druhy_ctverec</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">()</span> <span class=\"o\">-</span> <span class=\"n\">druhy_ctverec</span><span class=\"o\">.</span><span class=\"n\">obsah</span><span class=\"p\">()</span>\n</pre></div>\n\n    </div>\n</div>\n</div>\n\n</div>\n \n\n\n\n\n        "
    }
  }
}