Готовы ли вы погрузиться в мир Python и узнать, как работают арифметические операторы? Приготовьтесь к захватывающему путешествию, в котором вы научитесь обрабатывать числа и создадите свой собственный калькулятор ИМТ. Напрягите свои мыслительные способности и давайте начнем исследовать математические чудеса Python!

Как обычно, если вы хотите не отставать от видеоурока, просто нажмите здесь.

Вы также можете найти Заметки о курсе здесь и Повторить здесь.

Приготовьтесь раскрыть своего внутреннего волшебника математики с помощью Python! С помощью простого сложения, вычитания, умножения и деления мы можем выполнять всевозможные невероятные вычисления.

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

Но подождите, будет еще лучше! Мы собираемся погрузиться в реальный сценарий, который проверит наши математические способности.

Представьте себе: поход в супермаркет, где Джули берет 5 яблок, а Тимоти 7.

Теперь нам нужно напрячь свои вычислительные мускулы, чтобы выяснить, сколько яблок они объединили.

Конечно, мы могли бы сделать это в уме, но что в этом интересного? Давайте использовать Python, чтобы сделать вещи немного более захватывающими!

Вы можете следить за строкой 3 реплики:

julie_apples = input('How many apples does Julie have?')
timothy_apples = input('How many apples does Timothy have?')

total_apples = julie_apples + timothy_apples

print(total_apples)

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

Функция ввода по умолчанию принимает только строки в качестве входных данных, и если бы мы использовали оператор + со строками, мы бы использовали конкатенацию, а не сложение.

Вы можете преодолеть это незначительное неудобство, используя функцию int(), которая преобразует свой аргумент в целочисленный тип данных.

Измените свой код с помощью Replit, чтобы он выглядел следующим образом:

julie_apples = int(input('How many apples does Julie have?'))
timothy_apples = int(input('How many apples does Timothy have?'))

total_apples = julie_apples + timothy_apples

print(total_apples)

Или, если вы хотите преобразовать тип данных только перед его использованием, а не на уровне переменной, вы можете сделать следующее:

julie_apples = input('How many apples does Julie have?')
timothy_apples = input('How many apples does Timothy have?')

total_apples = int(julie_apples) + int(timothy_apples)

print(total_apples)

По мере того, как вы приобретете больше опыта в использовании Python, вы поймете, когда следует преобразовывать тип данных.

Давайте попробуем что-нибудь посложнее.

Джули и Тимоти возвращаются из супермаркета и очень проголодались.

На каждый пройденный ими километр они съедают в общей сложности 1 яблоко. Как вы думаете, мы могли бы запрограммировать это с помощью Python?

Математика будет выглядеть примерно так:

(июльские яблоки + тимсовые яблоки) — прошел км

julie_apples = input('How many apples does Julie have?')
timothy_apples = input('How many apples does Timothy have?')
km_walked = input('How many KM did they walk?')

total_apples = (int(julie_apples) + int(timothy_apples)) - int(km_walked)

print(f'They have a total of {total_apples} apples')

Теперь все начинает усложняться. Мы заключили наше первоначальное добавление в скобки, а затем вычли количество пройденных километров. (Вспомните PEMDAS)

Затем мы напечатали красивую f-строку, которая говорит нам, сколько яблок осталось.

Попробуйте сделать то же самое в Replit и не забудьте использовать f-строку, преобразовать тип данных в целое число и правильно заключить математическую часть в скобки.

Давайте добавим к этому еще один уровень сложности, прежде чем мы создадим наш калькулятор ИМТ.

Предположим, что на каждый пройденный 1 км мы теряем 0,25 яблока.

Следуйте за репликой и сделайте что-то вроде этого:

julie_apples = input('How many apples does Julie have?')
timothy_apples = input('How many apples does Timothy have?')
km_walked = float(input('How many KM did they walk?'))
apples_lost = km_walked * .25

total_apples = (int(julie_apples) + int(timothy_apples)) - apples_lost

print(f'They have a total of {total_apples} apples')

Обратите внимание, что теперь мы преобразовали km_walked в тип данных float на уровне переменной и заменили последнюю часть нашего математического уравнения на apples_lost.

Это работает намного лучше для наших пользователей, потому что теперь они могут ввести точное количество километров, которое прошли Джули и Тим, и получить более точное число оставшихся яблок.

Мы также умножали с помощью оператора * и просто умножали km_walked на скорость потери яблок на километр.

Если говорить менее абстрактно, это выглядит так:

2 км * 0,25 = 0,5 потерянных яблока.
20 км * 0,25 = 5 потерянных яблок.
4 км * 0,25 = 1 потерянное яблоко.

Мы могли бы также использовать оператор /, который поддерживает деление. Но это менее понятно, чем использование оператора *.

Вот несколько заметок, которые помогут вам:

  • + оператор используется для добавления.
  • - оператор используется для вычитания.
  • / оператор используется для деления.
  • * оператор используется для умножения.

Есть еще один оператор, который вам нужно знать, прежде чем мы сделаем наш калькулятор ИМТ, и это квадратный оператор. Вы используете это интересным способом, поэтому посмотрите ниже:

print(2*2)    #4
print(2**2)   #4

Они могут выглядеть совершенно одинаково, но они очень разные. Первое — простое умножение.

Последнее возводится в квадрат степени 2.

Если бы вы хотели возвести в квадрат степень 3, вы бы просто:

print(2**3) #8

И как вы уже догадались, в степени 4 мы бы сделали:

print(2**4) #16

Рассмотрим формулу расчета ИМТ:

ИМТ = вес (кг) / рост в квадрате (м)

Для этого нам нужно использовать килограммы и метры.

В идеале мы хотим запросить у пользователя его вес в KG, а затем его рост в M.

Помните, что вы, вероятно, захотите, чтобы их вес был целым числом, а их высота — числом с плавающей запятой.

Мы могли бы даже добавить изюминку в нашу программу, запросив дополнительную полезную информацию и напечатав ее в конце.

Постарайтесь сделать это в Replit и вернитесь сюда, как только закончите его или если он покажется вам очень трудным.

Ответ калькулятора ИМТ.

username = input('What is your name?')
gender = input('What is your gender?')

weight_kg = int(input('How much do you weigh? [KG]'))
height_m = float(input('How tall are you? [M]'))

BMI = weight_kg / (height_m ** 2)

print(f'{username} has a BMI of: {BMI}.')

Здесь нужно отметить 3 важные вещи.

  1. Я преобразовал тип данных на уровне переменной для weight_kg.
  2. Я преобразовал тип данных на уровне переменной для height_m.
  3. Я завернул height_m**2 в собственные скобки.

** Мне не нужно заключать его в скобки, но вам не кажется, что так он выглядит намного читабельнее? **

Протестируйте свой код, используя следующие значения:

  1. 60 кг, 1,6 м. Вы должны получить 23,44
  2. 90 кг, 1,2 м. Вы должны получить 62,5
  3. 110 кг, 1,9 м. Вы должны получить 30,47

Еще лучше.

Возможно, вы получили ИМТ, который на несколько знаков после запятой слишком много. Как вы можете видеть ниже.

Мы можем использовать функцию round().

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

rounded_BMI = round(BMI)

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

1 или 2 должно быть нормально.

username = input('What is your name?')
gender = input('What is your gender?')

weight_kg = int(input('How much do you weigh? [KG]'))
height_m = float(input('How tall are you? [M]'))

BMI = weight_kg / height_m ** 2

rounded_BMI = round(BMI, 2)

print(f'{username} has a BMI of: {rounded_BMI}')

Посмотрите, как выглядит ваша программа сейчас.

Еще несколько вещей, которые вам нужно очистить здесь:

Форматирование ввода довольно грязное и выглядит не очень хорошо.

Вы не использовали все входные данные, которые вы собрали.

Вы должны исправить это.

Попробуйте найти различия ниже:

username = input('What is your name?\n')
gender = input('What is your gender?\n')

weight_kg = int(input('How much do you weigh in KG?\n'))
height_m = float(input('How tall are you in metres?\n'))

BMI = weight_kg / height_m ** 2

rounded_BMI = round(BMI, 2)

print(f'{username} has a BMI of: {rounded_BMI}. They are {gender}, {height_m}M and {weight_kg}KG.')

Я добавил ‘\n’ перед концом каждой входной строки. Это означает для Python, что мы должны начать новую строку, в результате чего консоль будет выглядеть так:

Отличная работа! Вы успешно прошли весь путь через это руководство. Надеюсь, вам понравилось.

Пожалуйста, подумайте о том, чтобы подписаться на мой YouTube и стать подписчиком здесь, на Medium.