среда, 28 августа 2019 г.

Задача 2. Ладья


Решим простую задачу:

Даны две различные клетки шахматной доски, нужно определить может ли фигура "Ладья" попасть с первой клетки на вторую одним ходом
первая клетка с координатами (x1, y1)
вторая клетка с координатами (x2, y2)

Решение:

Ладья может двигаться на любое число полей по горизонтали или по вертикали.

Таким образом должны совпадать значения координат по x или по y. И этого условия достаточно. Т.е "Если x1 = x2 или y1=y2, то да фигура может попасть с первой клетки на вторую, иначе нет не может"

Для начала введем координаты и преобразуем их в целые числа:

x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input()) 

if x1 == x2 or y1 == y2 :
    print('yes')
else :
    print('no')

Условия

Обычно используют только if ... else, но может быть также каскадные условные инструкции if ... elif ... else. Рассмотрим по порядку

If ... else

if - если
else - иначе
: - выполняет роль слова "то"

if  <условие> :
    <Блог инструкций>
else :
    <Блог инструкций>

Мы формулируем условное предложение и сами на него отвечаем, после этого можно записать это в виде кода. Пример : "Если число положительное, то напиши слово "положительное", иначе напиши "не положительное""

Примечание: нуль ни положительное, ни отрицательное, поэтому в данном примере если число будет равно нуль мы выведем на экран "не положительное". Положительное число, если оно строго больше нуля (строго больше >).

x = int(input())
if x > 0 :
    print('положительное')
else :
    print('не положительное')

Для выделения блока инструкций, используют отступ 4 пробела (не используйте Tab)

If ... elif ... else

elif - как бы еще одно если

if  <условие> :
    <Блог инструкций>
elif  <условие> :
    <Блог инструкций>
else :
    <Блог инструкций>

Пример: 
"Если число положительное, то напиши слово "положительное", если нуль напиши "нуль", иначе напиши "отрицательное""

x = int(input())
if x > 0 :
    print('положительное')
elif x == 0 :
    print('нуль')
else :
    print('отрицательное')

Вообще else можно и не использовать.



Операторы сравнения. Тип данных Bool

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

Тут все просто как в математике.

>    больше
<    меньше
<=  меньше или равно
>=  больше или равно 
==  равенство
!=   неравенство

and     и
or       или
not     не

Тип данных Bool

Это логический тип данных, который имеет два значения истина (True) или ложно (False)

Если преобразовать в целое число, то int(True) = 1, а int(False) = 0
При преобразовании str в bool пустая строка будет False, а любая не пустая True

Пример:

print(19>4) # True

Задача 1. Электронные часы

Электронные часы

     Дано число n. С начала суток прошло n минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент . 

Решение:

    Итак мы знаем что в одном часе 60 минут, а также в сутках 24 часа.

чтобы узнать часы нужно n // 60 % 24
т.е. мы все минуты делим нацело на  60 (узнаем сколько часов), но так как минут может быть больше чем в одних сутках, то мы еще возьмем остаток от деления на количество часов в сутках. Т.о. мы узнаем часы

чтобы узнать минуты, тут просто нужно взять остаток от деления на количество минут в часе. 
n % 60

И так задача решена

n = int(input()) # с помощью функции int() преобразуем строку из цифр и целое число
print(n//60%24, n%60)

    Для тех кто забыл, из курса математики, что такое остаток от деления:

    Формула деления числа a на b:

 a = b*c + r         (1)

где a - делимое, b - делитель,  c - частное,  r - остаток;  a, b, c принадлежат множеству натуральных чисел (1, 2, 3, ...),  r принадлежит множеству натуральных чисел и нуль (0, 1, 2, ...).

Если в формуле (1) = 0 , то говорят что число a нацело делится на b, а c - полное частное. Еще число a называют кратным числу b.

Если в формуле (1)  0 , то говорят что число a делится на b с остатком, а c - неполное частное. 

Пример: 

1. 19 разделим на 4

19 = 4*4 + 3 
19 делится на 4 с остатком
в коде 19//4 получим 4, а 19%4 получим 3

2. 16 разделим на 4

16 = 4*4 + 0
16 кратно 4
в коде 16//4 получим 4, а 16%4 получим 0

Ввод и вывод данных. Оператор присваивания. Математические операции

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

Тут все просто знак

(# - комментарий)
Пример:

a = 5
print(a) # выводим на печать переменную а  

Получим: 5

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

    Для печати значений в Питоне есть функция print(). Внутри круглых скобок через запятую мы пишем то, что хотим вывести.
    Для ввода данных в программу мы используем функцию input(). Она считывает одну строку.
    Например:
  1. print('Как вас зовут?')
  2. name = input()  # считываем строку и кладём её в переменную name
  3. print('Здравствуйте, ' + name + '!')

Первая строка выведет на экран сообщение : Как вас зовут?
Вторая строка считает строку которую вы введете с клавиатуры, например : Вася
Третья строка выведет на экран: Здравствуйте, Вася !

    Обращаем внимание что если нужно вывести строку, то записываем ее в одинарных кавычках, а если значение переменной то просто название этой переменной.


Математические операции (простейшие)

Сложение    +
Вычитание    -
Умножение    *
Деление    /
Степень     **
Деление нацело    //
Остаток от деления    %

Пример:

print(5+10) # 15
print(10-5) # 5
print(2*2) # 4
print(10/5) # 2.0
print(13//2) # 6
print(13%2) # 1

Информация откуда?

Вся информация на страницах взята с разных источников ссылки на которые указаны в конце страниц. 

Суть блога


Всем добрый день, этот блог предназначен для начинающих программистов. Я сама являюсь таким! Я хочу изучить язык программирования Python, что бы в дальнейшем работать на нем. Каждый день я буду писать о своих достижениях и неудачах, а также использовать данный блог как записную книгу. У кого есть желание, прошу присоединяйтесь!