Статья Учим Python. Часть 4(Подробно про if)

И снова всех приветствую уже в 4-ой части! Сегодня мы подробно изучим инструкции if и убъемся о кучу практики)
Не будем тратить время и приступим.

Начало с малости теории.
Давайте вспомним зачем же нужен if. Если вы читали прошлую часть, то вы помните что
Инструкция if выполняет действия при определенном условии.

И вспоминаем следующую конструкцию
Код:
if условие:
     действие 1
     действие 2
     ...

Что бы понять эту конструкцию лучше переведу ее на русский)
Код:
ЕСЛИ условие верно ТО
     Выполнить действие 1
     Выполнить еще действие

Куда понятней обьяснить не возможно. Рассмотрим на примере.

Код:
output1 = input("Завершить работу?(y/n): ")
if output1 == "y":
     exit("Пока!")
print("Программа еще работает")

Мы получаем от пользователя ответ(либо
y либо n) и сравниваем используя if.
Код:
ЕСЛИ ответ пользователя равен "y" ТО выполни
     закончить работу программы и вывести сообщение "Пока!"
Вывести сообщение "Программа еще работает"

Вот так это на русском. С простыми условиями мы разобрались. Теперь разберемся что же делать если условие ложно?
Для этого у нас есть инструкция
else. Else - выполняет действие, если условие в if - ложно. Пишется после if и выглядит сие дело так
Код:
if условие:
     действие 1
     действие 2
else:
     действие 3

Рассмотрим на простом примере фрагмента который писали ранее
Код:
output1 = input("Выйти из программы(y/n): ")
if output1 == "y":
     exit("Пока)
else:
     print("Программа еще работает")

Т.е. если пользователь вводит n, то выполнится else и мы получим такое
Код:
Выйти из программы(y/n): n
Программа еще работает

А теперь к практике использования полученых сейчас знаний)

Первая нормальная программа.
Сейчас мы напишем наконец первую нормальную программу. Данная программа будет решать квадратные уравнения.
Перед написанием программы советею вспомнить школьную информатику и составить алгоритм для программы.
Теперь вспомним и всеми любимую если не ошибаюсь алгебру
ax^2+bx+c=0

a,b,c - коэффициенты
D - дискриминант.
D = b^2(в квадрате) - 4 × a × c

x1 = (-b + корень из D) / 2 × a
x2 = (-b - корень из D) / 2 × a

Помним что, если
  • D > 0 , 2 корня
  • D = 0 , 1 корень (x = -b/(2 × a))
  • D < 0 , нет корней

А теперь к алгоритму

Код:
1. Получаем значения a, b, c
2. Находим D
3. Создаем инструкцию if
Если D > 0 то ..
Если D < 0 то ..
Если D = 0 то ..

4. Красиво выводим всю информацию.

А теперь непосредственно к написанию. Первым делом получаем данные от пользователя

Код:
import math
voln = "*"*50
print(voln)

a = input("[+] Введите a => ")
b = input("[+] Введите b => ")
с = input("[+] Введите c => ")

a = int(a)
b = int(b)
c = int(c)

print(voln)


Тем самым получаем коэффициенты. Также в начале кода я прописал
Код:
import math
Это означает, что я добавил библиотеку с дополнительными функциями. В нашем случем математическими. Это нужно для подсчета корня. В дальнейшем мы будем создавать свои библиотеки.


Теперь посчитаем дискриминант
Код:
D = b**2 - (4*a*c)
Тут ничего сложного, а теперь перейдем к самой главной части нашего кода - инструкции if.

Код:
if D > 0:
    x1 = (-b + math.sqrt(D))/(2*a)
    x2 = (-b - math.sqrt(D))/(2*a)
    print("[!] Первый корень: ", x1)
    print("[!] Второй корень: ", x2)
else:
    if D == 0:
        x = (-b)/(2*a)
        print("[!] Корень: ", x)
    else:
        print("[!] Корней нет!")

Тут у нас получилась модель с инструкцией if вложенной в else. Как это упростить, обсудим дальше.

math.sqrt(D) - считает корень значения переменной D.

Собственно на этом программа и закончина. В итоге весь код

Код:
import math
voln = "*"*50
print(voln)

a = input("[+] Введите a => ")
b = input("[+] Введите b => ")
с = input("[+] Введите c => ")

a = int(a)
b = int(b)
c = int(c)

print(voln)

D = b**2 - (4*a*c)

if D > 0:
    x1 = (-b + math.sqrt(D))/(2*a)
    x2 = (-b - math.sqrt(D))/(2*a)
    print("[!] Первый корень: ", x1)
    print("[!] Второй корень: ", x2)
else:
    if D == 0:
        x = (-b)/(2*a)
        print("[!] Корень: ", x)
    else:
        print("[!] Корней нет!")

В итоге получаем

Код:
**************************************************
[+] Введите a => 1
[+] Введите b => 1
[+] Введите c => -2
**************************************************
[!] Первый корень:  1.0
[!] Второй корень:  -2.0

Теперь поговорим про еще одну интереснейшую инструкцию - elif. Он выполняет действие при опрелеленном условии если if получил ложное. Сейчас все поймете
Код:
if 2 > 3:
    print(" 2 > 3")
elif 3 > 2:
    print("3 > 2")

В переводе на русский
Код:
ЕСЛИ 2 > 3 ТО
    ВЫВЕСТИ "2 > 3"
(ЕСЛИ 2 не больше 3 то выполнить следующее)
ЕСЛИ 3 > 2 ТО
    ВЫВЕСТИ "3 > 2"

И мы получаем вывод
Код:
3 > 2

А теперь друзья мои домашнее заданее)

Задание 1
Перепишите программу для решения квадратных уравнений с использованием elif.

Задание 2 *
Напишите мини бота используя знания полученые на этом уроке.

Входные данные -> любое сообщение
Output -> ответ бота на сообщение)

Задание 3
Напишите программу которая будет определять месяц по его номеру.

Код:
--------------------------------------------------------
Введите номер месяца --> 2
--------------------------------------------------------
[Месяц] -- Февраль
--------------------------------------------------------

Задание 4
Напишите программу которая будет требовать пароля от пользователя.
Будет интересней такой расклад
Код:
Введите пароль --> 228666

Пароль введен не верно!
Экстренный выход!

Задание 5
Совсем легко!
Напишите код который будет споашивать 3 возраста и определять самый большой, маленький и средний.

Хотел бы вас порадовать, в скором времени выпущю цикл статей по теме "питон для хакера".

[1] -- Часть 1
[2] -- Часть 2
[3] -- Часть 3
 
V

Vargr

А я решил просто методом перебора всех вариантов.
#Спрашиваем 3 возраста и определяем самый большой, маленький и средний.

Код:
volna = '*'*40
print(volna)

a = int(input('[+]Enter возраст 1 => '))
b = int(input('[+]Enter возраст 2 => '))
c = int(input('[+]Enter возраст 3 => '))

print(volna)

if a < b < c:
    print('Самый маленький возраст = ',a)
    print('Средний возраст = ',b)
    print('Самый большой возраст = ',c)
elif a < c < b:
    print('Самый маленький возраст = ',a)
    print('Средний возраст = ',c)
    print('Самый большой возраст = ',b)
elif b < a < c:
    print('Самый маленький возраст = ',b)
    print('Средний возраст = ',a)
    print('Самый большой возраст = ',c)
elif b < c < a:
    print('Самый маленький возраст = ',b)
    print('Средний возраст = ',c)
    print('Самый большой возраст = ',a)
elif c < b < a:
    print('Самый маленький возраст = ',c)
    print('Средний возраст = ',b)
    print('Самый большой возраст = ',a)
elif c < a < b:
    print('Самый маленький возраст = ',c)
    print('Средний возраст = ',a)
    print('Самый большой возраст = ',b)
elif a == b == c:
    print('Все возрасты одинаковы. ',a)
elif a == b:
    if a < c:
        print('Самый маленький= ',a)
        print('Самый большой возраст= ',c)
    elif a > c:
        print('Самый маленький= ',c)
        print('Самый большой возраст= ',a)
elif a == c:
    if a < b:
        print('Самый маленький= ',a)
        print('Самый большой возраст= ',b)
    elif a > b:
        print('Самый маленький= ',b)
        print('Самый большой возраст= ',a)
elif b==a:
    if b < c:
        print('Самый маленький= ',b)
        print('Самый большой возраст= ',c)
    elif b > c:
        print('Самый маленький= ',c)
        print('Самый большой возраст= ',b)
elif b==c:
    if b < a:
        print('Самый маленький= ',b)
        print('Самый большой возраст= ',a)
    elif b > a:
        print('Самый маленький= ',a)
        print('Самый большой возраст= ',b)
 

Doctor zlo

Green Team
18.05.2017
83
35
BIT
0
Хочу выразить благодарность автору за эту серию уроков по питону. Сам знаю только азы, но тем не менее, это самые интересные уроки которые я когда либо видел. Все понятно и просто. Респект)
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
А я решил просто методом перебора всех вариантов.
#Спрашиваем 3 возраста и определяем самый большой, маленький и средний.

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

er.png


Учитесь сразу охватывать все варианты. Когда станете писать большие программы, один маленький недочёт может привести к переписыванию значительной части кода.
Удачи в освоении, питон это интересно! :)
 
V

Vargr

To explorer большое спасибо за ценный совет.
 

1984

Green Team
08.03.2018
137
490
BIT
1
Решение 5 задания:
Код:
voln = "-"*50
print(voln)

a = input("[+] Введите возраст Ивана => ")
b = input("[+] Введите возраст Петра => ")
c = input("[+] Введите возраст Сидора => ")

a = int(a)
b = int(b)
c = int(c)

print(voln)

if a > b > c:
    print("Иван - старший, Петр - средний, Сидор - младший")
elif c > a > b:
    print("Иван - средний, Петр - младший, Сидор - старший")
elif c > b > a:
    print("Иван - младший, Петр - средний, Сидор - старший")
elif b > a > c:
    print("Иван - средний, Петр - старший, Сидор - младший")
elif a > c > b:
    print("Иван - старший, Петр - младший, Сидор - средний")
else:
    print("Иван - младший, Петр - старший, Сидор - средний")
    
print(voln)
Вывод, конечно можно было по-другому сделать, но суть вроде понял верно)
 
Q

QweRTYUI

Задание 1
Код:
print("Программа для решения квадратных уравнений, используя условные операторы.")
print("***"*20)
a = int(input("Введите первый коэффициент: "))
b = int(input("Введите второй коэффициент: "))
c = int(input("Введите третий коэффициент: "))
D = b**2 - 4*a*c
if D > 0:
    x1 = (-b + D**.5)/2*a
    x2 = (-b - D**.5)/2*a
    print("Уравнение имеет два корня:")
    print("x1 = ", x1)
    print("x2 =", x2)
elif D == 0:
    x = (-b)/2*a
    print("Уравнение имеет один корень: ", x)
else:
    print("Корней не существует.")

Задание 3
Код:
print("Программа определения месяца года по его номеру, используя условные операторы.")
print("***"*20)
x = int(input("Введите номер месяца года: "))
print("***"*20)
if x == 1:
    print("Первый месяц - Январь.")
elif x == 2:
    print("Второй месяц года - Февраль.")
elif x == 3:
    print("Третий месяц года - март.")
elif x == 4:
    print("Четвёртый месяц года - апрель.")
elif x == 5:
    print("Пятый месяц года - прекрасный май.")
elif x == 6:
    print("Шестой месяц года - июньь.")
elif x == 7:
    print("Седьмой месяц года - июль.")
elif x == 8:
    print("Восьмой месяц года - августин ;).")
elif x == 9:
    print("Девятый месяц года - сентябрин :).")
elif x == 10:
    print("Десятый месяц года - октябрь.")
elif x == 11:
    print("Одиннадцатый месяц года - ноябрь.")
elif x == 12:
    print("Двенадцатый месяц года - декабрь, предновогоднее настроение !")
else:
    print("Такого месяца не существует, шалунишка :)")

Задание 4.
Код:
print("Программа, которая требует пароль от пользователя.")
print("***"*20)
x = input("Введите пароль: ")

if x == "QWERTY":
    print("Пароль введён верно.")
    print("Вход разрешён.")
else:
    print("Пароль введён не верно.")
    print("Экстренный выход.")

Задание 5.
Код:
print("Программа сравнения возрастов условным методом.")
print("~"*50)
a = int(input("Введите возраст Ивана: "))
b = int(input("Введите возраст Петра: "))
c = int(input("Введите возраст Сидора: "))
print("~"*50)
if a > b > c:
    print("Иван", a, "- старший.")
    print("Пётр", b, "- средний.")
    print("Сидор", c,  "- младший.")
elif b > a > c:
    print("Иван", a, " - средний.")
    print("Пётр", b, "- старший.")
    print("Сидор", c, "- младший.")
elif c > b > a:
    print("Иван", a, " - младший.")
    print("Пётр", b, "- средний.")
    print("Сидор", c, "- старший.")
elif c > a > b:
    print("Иван", a, " - средний.")
    print("Пётр", b, "- младший.")
    print("Сидор", c, "- старший.")
elif b > c > a:
    print("Иван", a, " - младший.")
    print("Пётр", b, "- старший.")
    print("Сидор", c, "- средний.")
elif a > c > b:
    print("Иван", a, " - старший.")
    print("Пётр", b, "- младший.")
    print("Сидор", c, "- средний.")
elif a == b > c:
    print("Иван and Пётр", a, b, " - одинаковые, но старше Сидора.")
    print("Сидор", c, "- самый младший возраст.")
elif a == b < c:
    print("Иван and Пётр", a, b, " - одинаковые, но младше Сидора.")
    print("Сидор", c, "- самый старший возраст.")
elif a == c > b:
    print("Иван and Пётр", a, c, " - одинаковые, но старше Петра.")
    print("Пётр", b, "- самый младший возраст.")
elif a == c < b:
    print("Иван and Пётр", a, c, " - одинаковые, но младше Петра.")
    print("Пётр", b, "- самый старший.")
elif b == c > a:
    print("Иван and Пётр", b, c, " - одинаковые, но старше Ивана.")
    print("Иван", a, "- самый малый возраст.")
elif b == c < a:
    print("Иван and Пётр", b, c, " - одинаковые, но младше Сидора.")
    print("Сидор", a, "- самый старший возраст.")
else:
    print("Все возрасты одинаковые.")
 
Н

НШГШЩ

Задание 3 можно написать короче:
Код:
n = int(input("Введите номер месяца года :"))
year = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']
if 0 < n < 12:
    print("Вы выбрали месяц:", year[n-1])
else:
    print("Месяца с таким номером не существует.")
[CODE]
 

BPOH

Member
26.01.2017
10
0
BIT
0
Одно из решений месяцев
Python:
voln = "-"*50
print(voln)
a = input("[+] Введите номер месяца => ")
a = int(a)
list_ =["Январ", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"]
print("[Месяц] -- " + list_[a])
if a == 12 or a == 1 or a == 2:
    print("[Зима]")
elif a == 3 or a == 4 or a == 5:
    print("[Весна]")
elif a == 6 or a == 7 or a == 8:
    print("[Лето] - Ура!!!")
else:
    a == 9 or a == 10 or a == 11
    print("[Осень]")
print(voln)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!