Python Урок 1. Арифметические действия и конструкции

На уроке рассмотрены примеры использования оператора присваивания на языке python, примеры работы с основными арифметическими операторами. Узнаете об одной из функций преобразования типов (int). Изучите работу условного оператора, оператора python print и input.

Среда разработки

Для обучения используется IDLE python 3.4 GUI (возможна и другая среда разработки).

Основным окном IDLE является окно интерпретатора, позволяющее программировать в интерактивном режиме, т.е. после ввода команды, она сразу же исполняется после нажатия [Enter]. Каждая строка начинается с символов >>>, результат выполнения отображается сразу под строкой оператора:

IDLE python 3.4
IDLE python 3.4

Для полноценной работы и сохранения результатов в файл следует выбрать в меню File пункт New File. После чего в открывшемся окне можно набирать код программы.

Сравнение кода двух языков

Для начала сравним фрагменты кода одной и той же программы, написанной на Python и на C++. Результат показывает, насколько меньше код, написанный на Python:
  
На PYTHON

1
print("Hello, World!")

На С++

1
2
3
4
5
#include <iostream> 
void main() 
{      
cout << "Hello, World!" << endl;  
}

Оператор присваивания

Оператором присваивания является символ =. Выполняется оператор стандартным образом: сначала вычисляется выражения справа от знака равенства, а затем полученное значение записывается в переменную, указанную слева от знака равенства.

1
2
3
4
5
6
7
8
9
10
A = 3.14
print(type(A)) # float
A = 'Hello' 
print(type(A)) # str 
a = b = c = 0
a += 1    # a = a + 1 
с = 5//2  # int 
d = 5/2   # float
b = c**2  # b = c^2 (степень) 
a, b = b, a # обмен значениями a=b, b=a

Ввод и вывод данных

  • Вывод данных осуществляется при помощи оператора print:
  • 1
    2
    3
    4
    5
    
    a = 1
    b = 2
    print(a)
    print(a + b)
    print('сумма = ', a + b)
  • Существует возможность записи инструкций в одну строку, разделяя их через ;. Однако не следует часто использовать такой способ, это снижает удобочитаемость:
  • 1
    2
    3
    
    a = 1; b = 2; print(a)
    print(a + b)
    print('сумма = ', a + b)
  • Для функции print может задаваться так называемый сепаратор — разделитель между элементами вывода:
  • 1
    2
    3
    
    x=2
    y=5
    print ( x, "+", y, "=", x+y, sep = " " )

    Результат отобразится с пробелами между элементами: 2 + 5 = 7

  • Кроме того, можно использовать параметр end:
  • print(1, 2, 3, sep=', ', end='. ') # 1, 2, 3.
  • Для форматированного вывода используется format:
  • 1
    2
    
    x = 11
    print ( "{:4d}".format(x) )

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

  • Или с несколькими аргументами:
  • 1
    2
    
    x = 2
    print ( "{:4d}{:4d}{:4d}".format (x, x+x, x*x) )

    В итоге каждое из значений выводится из расчета 4 знакоместа.

  • Ввод данных осуществляется при помощи оператора input:
  • 1
    2
    
    a = input()
    print(a)
  • В скобках функции можно указать сообщение-комментарий к вводимым данным:
  • a = input ("Введите количество: ")
  • Функция input воспринимает входные данные, как поток символов. Поэтому, чтобы принять целочисленное значение, следует воспользоваться функцией int():
  • a = int (input())
Задание Python 1_1:
Используя операторы input и print, выведите значения целых переменных x=5 и y=3 в следующих форматах:

  • 3+5=?
  • 3 | 5 | 8
  • Z(5)=F(3)
  • x=5; y=3;
  • Ответ: (5;3)
  • Арифметические действия и математические функции

    x + y Сложение
    x - y Вычитание
    x * y Произведение
    x / y Деление
    x // y Целочисленное деление
    x % y Остаток от целочисленного деления
    x**y Возведение в степень
    -x Смена знака числа
    
    Рассмотрим стандартные математические функции:
    • abs(x) модуль числа;
    • round(x) – в Python округление числа x к ближайшему целому;
    • ceil(x) — округление числа вверх («потолок»);
    • floor(x) — округление числа вниз («пол»);
    • sqrt(x) – квадратный корень числа;
    • exp(x) – экспонента x;
    • log(x) – натуральный логарифм x.

    Перечисленные функции можно использовать в программе, только подключив специальный модуль (библиотеку функций):

    import math
    # далее используем какую-либо функцию:
    print (math.sqrt(64)) # 8.0

    Можно назначить псевдоним для обращения к модулю:

    import math as m
    # далее используем какую-либо функцию:
    print (m.sqrt(64)) # 8.0

    Или можно также подключить данную функцию из модуля:

    from math import sqrt
    # далее используем какую-либо функцию:
    print (sqrt(64)) # 8.0

    Типы данных и преобразование типов

    Перечислим основные типы данных в Python, которые понадобятся на ближайших уроках:

      int – целочисленные значения;
      float – вещественные (дробные) значения;
      bool – логические значения — истина (True) или ложь (False);
      str – символьная строка или единичный символ.

    Рассмотрим примеры использования основных типов в Python:
    Целые числа (int):

    num = 13
    print(num)  # 13
     
    num = 0
    print(num)  # 0
     
    num = -10
    print(num)  # -10
     
    num = 500_000_000  # для удобства чтения
    print(num) # 500000000

    Вещественные числа (float):

    num = 13.4
    print(num) # 13.4
     
    num = 0.0
    print(num) # 0.0
     
    num = -15.2
    print(num) # -15.2
     
    num = 100_000.000_002 # для удобства чтения
    print(num) # 100000.000002
     
    num = 1.7e2 # 1.7 умножить на 10 в степени 2
    print(num) # 170

    Логический тип (bool):

    print(15 == 15) # True
     
    print(1 != 3) # True
     
    print(3 > 4) # False
     
    print(3 <= 3) # True
     
    print(6 >= 6) # True
     
    print(6 < 5) # False
     
    x = 2
    print(1 < x < 3) # True

    Строки (str):

    example_string = "Очень интересно"
    print(example_string) # Очень интересно
     
    example_string = 'Пьеса "На дне"'
    print(example_string) # Пьеса "На дне"
     
    example_string = "Пьеса \"На дне\"
    print(example_string) # Пьеса "На дне"
     
    example_string = "Как " \
                     "разбить " \
                     "объявление длинной строки"
    print(example_string) # Как разбить объявление длинной строки
     
    example_string = """
                     Как  
                     оставить сроку
                     в несколько строк
                     """
    print(example_string) 
    # Как  
    # оставить сроку
    # в несколько строк
    # Как объединить две строки в одну
    print("Можно их" + " сложить") # Можно их сложить 
     
    print("Можно и так!" * 3) # Можно и так!Можно и так!Можно и так!

    Рассмотрим примеры того, как используется преобразование типов в Питон:

    • преобразование в символьную строку:
    • 1
      2
      3
      
      a = 1.7
      a=str(a)
      print(a) # '1.7'
    • преобразование в целое:
    • 1
      2
      3
      
      x = 1.7
      x=int(x)
      print(x) # 1
    • преобразование в вещественное:
    • 1
      2
      3
      
      y=1
      y=float(y)
      print(y) # 1.0

    Python для систем счисления

    • bin(y) — целое число преобразовывается в двоичную строку.
    • hex(y) — целое число преобразовывается в шестнадцатеричную строку.
    • oct(y) — целое число преобразовывается в восьмеричную строку.

    Рассмотрим примеры работы с системами счисления:

    bin(17) # '0b10001'
    oct(17) # '0o21'
    hex(17) # '0x11'
    Задание Python 1_2: Даны две переменные. Запросить их значение. Выполнить основные арифметические действия с переменными, целочисленное деление, возведение в квадрат. Осуществить перевод в системы счисления (в 8-ю и 16-ю). Вывести результат.
    Задание Python 1_3: Найти длину окружности L и площадь круга S заданного радиуса R:

    L=2*pi*R, S=pi*R2.
    

    В качестве значения использовать 3.14.

    * Из задачника М. Э. Абрамян
    Задание Python 1_4: Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму.

    * Из задачника М. Э. Абрамян
    Пример: Дано двузначное число. Найти сумму и произведение его цифр.

    * Из задачника М. Э. Абрамян

    ✍ Решение:

    import math
    print('Введите двузначное число: ')
    A = int(input())
    Res = (A // 10) + math.fmod(A, 10)
    print('Сумма его цифр равна: ', int(Res))
    Res = (A // 10) * math.fmod(A, 10)
    print('Произведение его цифр равно: ', int(Res))
    Задание Python 1_5: Дано двухзначное целое число. Вывести сначала его правую цифру, а затем левую.

    ** Сделайте задание повышенной сложности: необходимо поменять местами цифры числа и вывести результирующее число (вывести не отдельные цифры, а именно число). Например, число 25, а результат — число 52.

    * Из задачника М. Э. Абрамян

    Условный оператор

    В языке python синтаксис обладает интересной особенностью: дело в том, что в коде нет операторных скобок (begin..end или {...}); вместо них отступы указывают, какие операторы выполнять внутри той или иной конструкции.
    Зачем отступы и где их ставить?

    Стандартная запись условной инструкции Python if else выглядит следующим образом:

    if условие1:
        оператор1
    elif условие2:
        оператор2
    else:
        оператор3
    1
    2
    3
    4
    
    if x > 0:
      if x < 2:
    else:
      оператор
  • Следует обратить внимания, что знак сравнения в Питоне записывается, как два знака =:
  • 1
    2
    3
    4
    5
    6
    
    if x < 0:
      блок1
    elif x == 0: # сравнение!
      блок2
    else:
      блок3

    Другой пример использования условия:

    1
    2
    3
    4
    5
    6
    
    if x < 0:
        print('мало')
    elif x == 0:
        print('средне')
    else:
        print('много')

    Сложные условия

    • Использование двойных неравенств разрешено:
    • 1
      2
      3
      4
      
      if 0 < x < 2:
        if 0 < y < 2:
      else:
        оператор
    • Пример использования условия c elif:
    • 1
      2
      3
      4
      5
      6
      
      if x < 0:
          print('мало')
      elif -0 <= x <= 0:
          print('средне')
      else:
          print('много')
      Логические операторы
    • Вместо сложных условий можно применять логические операторы:
    • and (И):
    • if x >= 30 and x <= 40:
       ...
    • or (ИЛИ):
    • if x > 30 or x = 30:
       ...
    • not (НЕ):
    • if not (x < 0): # если x - не отрицательный
       ...

      Аналог тернарного оператора:
      uchenik_1 = 5
      uchenik_2 = 2
       
      otlichnik = "первый ученик" if uchenik_1 > uchenik_1  else "второй ученик"
       
      print(otlichnik) # первый ученик

    • Использование с оператором in:
    • site = "my.ru"
       
      if "ru" in site:
          print("Условие выполнено!") # Условие выполнено!
    • Кроме того, можно применять логический оператор OR (ИЛИ):
    • site = "my.ru"
       
      if "my" in site or site.endswith(".ru"): # заканчивается на ...
          print("Условие выполнено!")
    Задание Python 1_6: Запрашивается количество часов и заработок в час. Рассчитать зарплату. Если работник работал более 40 часов, — то зарплата умножается на коэффициент 1,5. Оформить в формате дружелюбного интерфейса.
    Пример: Дан год. Определить високосный ли год или нет? Вывести true или false (логическое значение).
    Указания: Год является високосным если он кратен 4, но при этом не кратен 100, либо кратен 400.

    ✍ Решение:

      year = 2017
      is_true = year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
      print(is_true)
    Задание Python 1_7: Напишите программу, которая определяет, верно ли, что введённое число – четырёхзначное. Вывести true или false (логическое значение).
    Задание Python 1_8: Напишите программу, которая вводит с клавиатуры номер месяца и определяет, сколько дней в этом месяце. Предусмотреть сообщение об ошибке в случае ввода неверного числа.
    ! Решения заданий можно попросить у администратора, выслав письмо с запросом на электронный адрес (внизу веб-страницы). В письме укажите Ваши ФИО, город, должность (учитель/ученик/студент). Укажите, занимаетесь ли самостоятельно и номер урока, решения которого необходимо выслать.

    6 комментариев для “Python Урок 1. Арифметические действия и конструкции”

    1. На С++
      #include
      void main()
      {
      cout << "Hello, World!" << endl;
      }

      Где у Вас программка на С, надо бы строчку с include закончить

    2. Я только начала изучать язык, поэтому могу ошибаться. Предлагаю другое решение примера: «Дано двузначное число. Найти сумму и произведение его цифр»

      x = int(input(«x…»))
      print(«amount = «, x//10+x%10)
      print(«multiplication = «, (x//10)*(x%10))

      Если что-то не так, прошу исправить меня

    3. 1. Математический модуль после первого подключения останется подключен до конца работы скрипта или его можно (или нужно) отключать? Вопрос интересует в контексте экономии памяти (или в данном случае это не имеет значения?)..
      2. В примере показа строчных типов в исполняемой строке:
      example_string = «Пьеса \»На дне\»
      не хватает замыкающей кавычки (насколько я понимаю).
      3. В примере с тернарным опереатором:
      otlichnik = «первый ученик» if uchenik_1 > uchenik_1 else «второй ученик»
      мне кажется, должно быть
      …..uchenik_1 > uchenik_2…..

    4. Можете отправить решение задач по пайтону

    5. Хасуева Седа Адамовна, город Грозный, занимаюсь самостоятельно, ученик, хотелось бы получить ответы на Урок1 Python, пожалуйста!

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

    Обсуждение закрыто.