Обзор на калькулятор

Здрасьте.

Сегодня у нас будет обзор на калькулятор.

Я написал калькулятор на пайтоне, из-за чего я решил написать на него обзор. Почему бы и нет? Сейчас мне всё равно не о чём писать, поэтому буду развлекать вас пятью статьями. Я по прежнему надеюсь, что я их выпущу в сентябре, а не растяну до октября, так как написание этой статьи я благополучно растянул до 13 сентября.

Интересный факт: Мне лень вставлять картинки, поэтому их не будет.

РЧ: 872.

Дисклеймер: Изначально я хотел написать дичь, но из-за того, что я написал калькулятор, я пришёл к выводу, что напишу нормальную статью.

Берите чай, печеньки, мы начинаем.

Сам код выглядит так:

32 строки

Думаю, каждую деталь я разбирать не буду, так как здесь должно быть всё понятно. Но я всё-таки расскажу для тех, кто совсем не шарит.

Итак, сначала я поделил калькулятор на 3 части — Ввод чисел, выбор действия и сама программа. Без ввода не будет работать программа, так как она тогда не будет знать, что такое «a« и "b" и благополучно выдаст ошибку. Без выбора действия программа тоже не будет работать, так как она не будет знать, что такое »q».

Но и без программы не обойтись. В таком случае ввод и выбор будут бесполезными, так как над ними никаких действий производиться не будет.

Теперь перейдём к коду.

Ввод чисел

Для начала программа просит от пользователя два числа. Над ними она будет проводить действие, которое пользователь сам выберет.

Я специально выбрал для переменных тип float, то есть это переменная с плавающей точкой. Наверняка же надо будет произвести действие с не целыми числами. Можно, конечно, просто input() написать и париться, но наверняка же найдутся те, кто решит сравнить тексты, символы или извлечь квадратный корень из буквы "б". А такие могут найтись.

Код я оставлю ниже, а именно в заключении. Можете с ним развлекаться и убрать "float()" из ввода данных, если вы хотите извлечь корень из буквы.

Итак, float нам даст возможность производить действия так с целыми числами, так и с вещественными. Единственное, это ответ будет выводиться с плавающей точкой. Даже если число будет целым, например число «728« запишется, как »728.0».

Выбор действия

Следующая часть — выбор действия. Я скоро сделаю выбор легче. Пронумерую каждое действие, из-за чего пользователям не придётся писать длинные слова, ведь при написании можно допустить ошибку, из-за чего программа крякнет, выведя на экран «Неправильная команда».

Я изначально пытался сделать цикл. Если пользователь допускает ошибку, то программа продолжит работать. Но с циклами я работать не научился, поэтому извиняйте. Придётся пока перезапускать программу по несколько раз.

Так вот, в этой части вы выбираете, какое действие вы хотите выбрать. Я расскажу про каждый из них:

  • Сложение

Складывает два введённых числа.

Например, пользователь вводит два числа — 252 и 98. Результат получится «350.0«. Если же он вводит числа 61.5 и 92.6, то он получит результат »154.1». А что, если ввести отрицательные числа? Например, -373 и -3531? Как думаете, что получится? Ответ вы узнаете в заключении.

Обязательно нужно вводить вещественные числа с точкой, а не с запятой, иначе получится ошибка. То есть, программа знает, что число 61.5 — это вещественное число и не знает, что означает число 92,6. Хотя на последних версиях Python это может быть и вещественное число. Сам я нахожусь на python 3.7.4, и у меня пока нет возможности перейти на последнюю версию (3.11).

  • Вычитание

Вычитает из первого числа второе.

Если пользователь введёт два числа — сначала 592, затем 189.7, и выберёт действие «Вычитание«, то он получит ответ »402.3». А если ввести первое число — 72.5, затем второе число — 827, то что же выйдёт? Смотрите на скрин ниже:

72.5 — 827

Как вы видите, получается «-754.5».

  • Умножение

Умножает числа.

Если пользователь ведёт два числа — 159193716.78 и 9281659.292, то в результате мы получим число «1477581840579103.2». Я специально ввёл такие большие числа. Кому-то же всё-таки интересно узнать, какое число получается, если перемножить числа 1234567.89 и 9876543.21. А если их ввести в калькулятор, то он вынесет результат с буквой Е. Но это же не совсем удобно, когда нужно узнать точную цифру.

А что, если программа врёт и ответ на самом деле другой? Тогда давайте проверим, что выйдет, если перемножить числа 7.3 и 1.7. На обычном калькуляторе ответ получается равным 12,41 (на моём калькуляторе целая часть отделяется от дробной запятой, а не точкой). А теперь введём эти же два числа в программу и выберем «Умножение«. Получится число »12.41». Чтобы убедиться, посмотрите на скрин ниже, в котором я белом по чёрному пишу сначала числа, потом действие и мне выводят результат:

7.3*1.7

И последнее, что хотелось бы проверить — Что выведет программа на экран, если написать два числа: «-13« и »146.1» и выбрать умножение? Ответ вы узнаете ниже.

  • Деление

Делит второе число на первое.

Позвольте мне ввести в программу два числа — «-217.5« и »17». Дробь у ответа будет бесконечной. Мой калькулятор показывает число 12,7941176471. После запятой стоит только 10 цифр. Так вот, я хотел этим проверить, сколько цифр будет стоять после запятой, если это отправить в программу. Скрин вы сможете увидеть ниже, но сразу скажу, что цифр после запятой 15, что делает число ещё точнее.

Но я же сейчас не отстану от деления. Что будет, если ввести два числа: 999 и 0, а после поделить их? Делайте ставки, господа, скрин в этой статье вы не увидите. Ждите следующую статью, там я оставлю этот скрин в комментариях.

Все же знают, что на ноль делить нельзя, так? А что же нам скажет уважаемый Python, если поделить 999 на 0?

  • Сравнение

Сравнивает два числа.

Комментариев возникать не должно, так? Без лишних слов вводим два числа: -713.3531373 и -713.3531374. Ответ вы увидите на этом скриншоте:

-713.3531373>-713.3531374

Идём дальше.

  • Извлечение

Извлекает квадратный корень из двух введённых чисел.

Я подумал, что будет ненормально, если программа будет извлекать корень только из одного числа. А второе тогда для чего? В будущем я собираюсь поменять местами вводы. У меня программа будет тогда больше, но зато не будет таких штучек.

Давайте проверим два числа — 289 и 373. Что получится, если их ввести в терминал и выбрать «Извлечение»? Получится, что из первого числа корень будет прекрасно извлекаться. Получится 17. Из второго корень тоже извлечётся, но число будет не совсем целое и после запятой будет много циферок. На скрин вы сможете посмотреть прямо здесь и сейчас:

Корни из 289 и 373

А сейчас проверим два числа — «-1» и 0. Я пришёл к выводу, что нецелые числа вводить бесполезно, так как с ними программа разберётся очень даже легко. А что если найдётся пользователь, который захочет извлечь корень из отрицательного числа?

С нулём, думаю, вопросов не должно возникнуть — получится ноль. А из отрицательного числа корень нельзя извлечь, так как в квадрат нельзя возвести такое число, чтобы после этого получилось отрицательное число. Все же (ладно, не все) прекрасно понимают, что (-1)^2 = 1, (-1)^3 = -1. Но в программе я поставил квадратный корень.

Интересный факт: Корень из отрицательного числа всё-таки можно извлечь. Для этого, как я понял, используются мнимые числа.

Даже если бы я захотел поставить кубический корень, у меня бы это не получилось бы. Для этого нужно импортировать библиотеку math. Я пока ещё не знаю, как их импортировать, и как с ними работать.

Но почему не получилось бы? Дело в том, что я думал, что в python есть функции sqrt() и cbrt(), которые означают соответственно квадратный и кубический корень. Но я облажался. Ни того, ни другого не было в python и мне пришлось возводить в степень, чтобы извлечь корень. С квадратным корнем всё легко — возводим число в степень «0.5», а вот с кубическим — такое не прокатит. Я же не могу просто возвести число в степень равную «0.3», получится другое число. Поэтому кубического корня не будет, увы.

Интересный факт: Я только сейчас додумался, что можно возвести число в дробь «1/3«, а дробь представить в виде «1 / 3". Получится »<число> ** (1 / 3)". Правда, я это ещё не попробовал впихнуть в программу, но кажется, программа сможет извлечь кубический корень. Для этого я возьму число 8 и возведу его в одну третью степень. Надеюсь, получится число »2».

Я немного отошёл от темы. Скрин с результатом вы сможете увидеть ниже.

  • Степень

Возводит первое число в степень второго числа.

Чтобы проверить, как это работает, я напишу два числа — 8 и 2. Результат должен быть равен 64. И программа выведет на экран это число:

8 в квадрате

А теперь введём первое число в отрицательную степень. Берём числа 373 и -3. Ожидаемый результат должен быть таким: 1 / (373 ** 3). Для тех, кто не знает, что такое "**", я отвечу — так в программе отмечается возведение в степень. Например, 3 ** 2 = 9, так как 3 ** 2 = 3 * 3. Мне так легче писать, ведь для того, чтобы написать символ "^", мне надо переключиться на английский язык, а у меня бывают такие случаи, когда мне лень переключаться, хоть это и делается очень даже легко.

Так вот, результат будет следующим:

373 в степени -3

Ещё один вариант: Пользователь вводит числа 999 и 0, после чего выбирает действие «Степень«. Я думаю, что любое число, возведённое в нулевую степень, всегда равно единице. Поэтому мне кажется, что на экран программа выведет число »1». На скрин вы сможете посмотреть в заключении. А мы переходим к самому коду.

Код

Сначала мы сразу видим условие. Если q равно слову «Сложение», то вычисляется сумма двух введённых пользователем переменных и выводится на экран. Иначе мы получаем ещё одно условие — если q равно слову «Вычитание», то вычисляется разность и выводится на экран.

Если q не равно ни одному из этих двух слов, то появляется новое условие и так до конца.

В принципе, я могу описывать все условия, но это никому не интересно, поэтому переходим к концу.

Если переменная q ни одному из слов, представленных в программе, не равна, то ей пользователь дал некорректное слово или слово, которого нет в программе (например, «Привет»), а значит программа выведет на экран ошибку. Точнее не ошибку, а сообщение, что пользователь ввёл неправильную команду.

Неправильная команда

У кого-то сейчас может возникнуть вопрос, почему я elif писал. Я скажу, что эта штука упрощает написание программы. Кому бы понравилось каждый раз сначала писать else, потом переходить на следующую строку, нажимать на Tab, если строка автоматически не редактируется, снова писать if и по новой? Код в таком случае будет большим, и, скорее всего, конец уйдёт вправо на 40 пробелов, а то и больше, ведь в одном табе четыре пробела, как я понял.

А вот elif упрощает написание, ведь в нём есть и else, и if. Короче, это иначе если — переход из одного условия в другое, как и сделано в моей программе.

Добавить мне больше нечего, так как код на этом закончился, поэтому мы плавно переходим к заключению.

Заключение

Данную статью я писал недолго. На это ушло почти пол дня. Я предполагаю, так всё получилось по той причине, что у меня текст был готов. Я знал, о чём писал, поэтому статью я написал за столь короткое время. Но опять же текст я не записывал в блокнот, поэтому я писал то, что пришло мне в голову. Сейчас же мне нечего добавлять в эту статью, поэтому я буду заканчивать писать эту статью и пойду её выпускать.

Не знаю, писал я или нет, но у меня появился блог в DTF. Первое время у меня статьи будут выходить сначала там, а через 2 часа — сюда. Пока в DTF мне всё нравится.

На этом можно закончить отступление о темы данной статьи. Ниже вы сможете увидеть все скрины, которые не попали в статью, так как они там были лишними, а мне совсем не хотелось показывать картинки после каждого абзаца. Чтобы вам было легче, в описании картинок я добавлю, о чём идёт речь.

Обложка статьи...
Обложка статьи...

Примечание: Я выше писал, что я оставлю код. Так вот, он будет в закреплённом комментарии.

В создании статьи поучаствовали:

  • Визер
  • Python

Источники:

Важное:

  • Мой ВК: тык (с ссылкой могут возникнуть проблемы).
  • Мой ДС: northern_lights_0
  • Мой сервер в ДС: тык.
  • Мой ТГ: wither305
  • Мой канал в Дзене: тык.
  • Я в author. today: тык.

Спасибо за просмотр данной статьи и всем пока!

44
7 комментариев

Идеально

3
Ответить

На Нинтендо свиче в ешопе калькулятор за 800 рублей продают. Думайте

Ответить

На Нинтендо свиче в ешопе калькулятор за 800 рублей продают. Думайте

2
Ответить
2
Ответить

Это не обзор на Жизнь и страдания господина Бранте

2
Ответить

Я думал на питоне калькулятор пишется примерно так:
import calculator

1
Ответить

Ну, можно и так.

Ответить