Latest posts on Помогите с калькулятором №2 topichttp://python.su/forum/topic/39844/2021-01-19T05:30:15+02:00Общий :: Python для новичков :: Помогите с калькулятором №2
2021-01-19T05:30:15+02:00AD0DE412214064<a href="https://www.learnbyexample.org/python-exceptions-try-except/">https://www.learnbyexample.org/python-exceptions-try-except/</a><br/><div class="code"><pre> <span class="n">a</span> <span class="o">=</span> <span class="nb">input</span><span class="p">()</span>
<span class="n">f</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">a</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">','</span><span class="p">,</span><span class="s1">'.'</span><span class="p">))</span>
<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="n">c</span> <span class="o">=</span> <span class="nb">input</span><span class="p">()</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'+'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">+</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'-'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">-</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'*'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">*</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'/'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">/</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'mod'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">%</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'div'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">//</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'pow'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">**</span> <span class="n">b</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">ZeroDivisionError</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'Деление на 0!'</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">err</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">err</span><span class="p">)</span>
</pre></div>
Общий :: Python для новичков :: Помогите с калькулятором №2
2021-01-19T00:04:29+02:00SkeT4214063<div class="code"><pre> <span class="n">a</span> <span class="o">=</span> <span class="nb">input</span><span class="p">()</span>
<span class="n">f</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">a</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">','</span><span class="p">,</span><span class="s1">'.'</span><span class="p">))</span>
<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="n">c</span> <span class="o">=</span> <span class="nb">input</span><span class="p">()</span>
<span class="k">if</span> <span class="n">b</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="p">(</span><span class="n">c</span> <span class="o">==</span> <span class="s1">'div'</span> <span class="ow">or</span> <span class="s1">'mod'</span> <span class="ow">or</span> <span class="s1">'/'</span><span class="p">):</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'Деление на 0!'</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'+'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">+</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'-'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">-</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'*'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">*</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'/'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">/</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'mod'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">%</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'div'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">//</span> <span class="n">b</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">c</span> <span class="o">==</span> <span class="s1">'pow'</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">**</span> <span class="n">b</span><span class="p">)</span>
</pre></div><br/><strong>При вводных данных:</strong><br/>5<br/>0<br/>- или +<br/><br/>Выводит “Деление на 0!”<br/>При <div class="code"><pre> <span class="k">if</span> <span class="n">b</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="p">(</span><span class="n">c</span> <span class="o">==</span> <span class="s1">'div'</span> <span class="ow">or</span> <span class="s1">'mod'</span> <span class="ow">or</span> <span class="s1">'/'</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span><span class="p">(</span><span class="n">c</span> <span class="o">==</span> <span class="s1">'-'</span> <span class="ow">or</span> <span class="s1">'+'</span><span class="p">)</span>
</pre></div>Вот такая штука с mod <div class="code"><pre> <span class="n">Test</span> <span class="nb">input</span><span class="p">:</span>
<span class="mf">5.0</span>
<span class="mf">0.0</span>
<span class="n">mod</span>
<span class="n">Correct</span> <span class="n">output</span><span class="p">:</span>
<span class="err">Деление</span> <span class="err">на</span> <span class="mi">0</span><span class="err">!</span>
<span class="n">Your</span> <span class="n">code</span> <span class="n">output</span><span class="p">:</span>
<span class="n">Error</span><span class="p">:</span>
<span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="n">File</span> <span class="s2">"jailed_code"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">16</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">%</span> <span class="n">b</span><span class="p">)</span>
<span class="ne">ZeroDivisionError</span><span class="p">:</span> <span class="nb">float</span> <span class="n">modulo</span>
</pre></div>И вот такая с div <div class="code"><pre> <span class="n">Traceback</span> <span class="p">(</span><span class="n">most</span> <span class="n">recent</span> <span class="n">call</span> <span class="n">last</span><span class="p">):</span>
<span class="n">File</span> <span class="s2">"jailed_code"</span><span class="p">,</span> <span class="n">line</span> <span class="mi">18</span><span class="p">,</span> <span class="ow">in</span> <span class="o"><</span><span class="n">module</span><span class="o">></span>
<span class="k">print</span><span class="p">(</span><span class="n">f</span> <span class="o">//</span> <span class="n">b</span><span class="p">)</span>
<span class="ne">ZeroDivisionError</span><span class="p">:</span> <span class="nb">float</span> <span class="nb">divmod</span><span class="p">()</span>
</pre></div><br/><em>Само задание для написание калькулятора</em>:<br/>Напишите простой калькулятор, который считывает с пользовательского ввода три строки: первое число, второе число и операцию, после чего применяет операцию к введённым числам (“первое число” “операция” “второе число”) и выводит результат на экран.<br/><br/>Поддерживаемые операции: +, -, /, *, mod, pow, div, где<br/>mod — это взятие остатка от деления,<br/>pow — возведение в степень,<br/>div — целочисленное деление.<br/><br/>Если выполняется деление и второе число равно 0, необходимо выводить строку “Деление на 0!”.<br/><br/>Обратите внимание, что на вход программе приходят вещественные числа.