Статья Python3 6.Boolean,Инструкция If

1.Boolean

Python содержит класс "bool" который используется для выражения условной логики в коде. Класс "bool" возвращает два значения "True" или "False" (истина или ложь), любое не пустое и не нулевое значение является (True), ноль или пустой объект равняется (False).
Возможность добавлять целые числа в списке которые больше определенного значения в другой список.
Выводить из списка только строковые\целые\дробные значения.
Сравнение двух переменных и использование их неравенства\равенства и тд как условие для последующего кода
Для операции поместите оператор "bool" между переменными, сравнивать возможно целые числа\дробные\строки\списки , а так же присвоить результат сравнения переменной

Операторы "bool"

"==" если значения равны возвращает "True", иначе "False"
Python:
>>> 1 == 1
True
Python:
>>> 2 == 1
False
"!=" если значения не равны то "True", иначе "False"
Python:
>>> 2 != 1
True
Python:
>>> 1 != 1
False
">" если первое значение больше второго "True", иначе "False"
Python:
>>> 2 > 1
True
Python:
>>> 1 > 2
False
"<" если первое значение меньше второго "True", иначе "False"
Python:
>>> 1 < 2
True
Python:
>>> 2 < 1
False
">=" если первое значение больше или равно второму "True", иначе "False"
Python:
>>> 3 >= 2
True
Python:
>>> 2 >= 2
True
Python:
>>> 2 >= 3
False
"<=" если первое значение меньше или равно второму "True" иначе "False"
Python:
>>> 1 <= 2
True
Python:
>>> 2 <= 2
True
Python:
>>> 3 <= 2
False
Пример со строками:
Python:
>>> "one" == "one"
True
Python:
>>> "one" == "two"
False
Python:
>>> "one" != "two"
True
Python:
>>> "one" != "one"
False
Со списками
Python:
>>> ["one", "two", "three", "four"] == ["one", "two", "three", "four"]
True
Python:
>>> ["one", "two", "three"] == ["one", "two", "three", "four"]
False
Сравнение по длине списка
Python:
>>> list_one = [1, 2, 3, 4, 5]
>>> list_two = [1, 2, 3, 4, 5, 6]
>>> len(list_one) == len(list_two)
False
Python:
>>> len(list_one) < len(list_two)
True
Сравнение по индексу числового списка
Python:
>>> int_list = [1, 2, 3, 4, 5]
>>> int_list[0] < int_list[4]
True
Python:
>>> int_list[0] > int_list[4]
False
Присвоение переменной результата сравнения:
Python:
>>> x = ( 1 < 2)
>>> x
True
Python:
>>> y = (1 > 2)
>>> y
False
2.Инструкция if

Python содержит инструкцию if которая позволяет реализовать логическое ветвление.
Состоит инструкция из обязательной части if и двух необязательных elif и esle.
Часть if проверяет условие , если условие истинно то выполняется вложенный блок части if иначе часть if пропускается.
Далее следует необязательная часть elif , если условие части if ложно, но истинно для части elif то выполняется вложенный блок части elif иначе часть elif пропускается
Последней следует необязательная часть else которая не содержит условия , выполняется если условия частей if и elif были ложны
Python:
if (условие1):  # двоеточие обязательно
    Вложенный блок части if # отступ в 4 пробела или 1 табуляция
elif(условие 2\альтернативное условие):
    Вложенный блок части elif # отступ в 4 пробела или 1 табуляция
else: (без условия)
    Вложенный блок части else # отступ в 4 пробела или 1 табуляция

Python:
if 1: # так как единица всегда True
    print("True")
Сравнение двух переменных , если условие верно то выполняется вложенный блок части if
Python:
x = 2
y = 3
two_values = (x < y)
if two_values:
    print(x, "меньше", y)
Так же возможно записать инструкцию другим способом
Python:
x = 2
y = 3
if x < y:
    print(x, "меньше", y)
Пример if\else:
Python:
x = 2
if x == 1:
    print("True")
else:
    print("False")

Пример if\elif:
Python:
x = 3
y = 4
if x > y:
    print(x, "больше", y)
elif x < y:
    print(x, "меньше", y)

Пример if\elif\else:
Python:
player_charm = 6
min_charm = 5
charm_need = 15
if player_charm >= charm_need:
    print("Вам удалось уговорить НПС")
elif charm_need > player_charm >= min_charm:
    print("Вы узнали некоторые сведения")   
else:
    print("Попытка не удалась")

Как это работает:
Переменной player_charm присвоено значение 6 , если переменная player_charm больше или равна переменной charm_need то выполняется вложенный блок части if , если переменная player_charm меньше переменной charm_need то вложенный блок части if пропускается.
Если же переменная player_charm меньше переменной charm_need но при этом больше переменной или равна min_charm то выполняется вложенный блок части elif
Если обе части if/elif были пропущены , выполняется вложенный блок части else

Инструкция if для цикла for
Использование инструкции if для нахождения определенного элемента в списке, присвоение элемента переменной и вывод функцией print()
Python:
str_list = ["one", "two", "three", "four", "five"]
for value in str_list:
    if value == "four":
         element =  value
print(element)
'four'

Индекс необходимого элемента списка указанного в условии :
Python:
str_list = ["one", "two", "three", "four", "five"]
counter = 0 # счетчик
index = 0
for valie in str_list:
    if value == "four":
        index = counter
    counter += 1 # если итерация прошла а условие не было выполнено
# счетчик + 1
print(index)

Определение какой элемент в списке целых чисел больше или меньше указанного в условии и сортировка их по спискам согласно условию
Python:
int_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
greater_5 = [] 
lower_5 = []
for value in int_list:
    if value > 5:
        greater_5.append(value)
    elif value < 5:
        lower_5.append(value)
    else:
         five = value
print(greater_5)
print(lower_5)
print(five)

to be continued...
 
Последнее редактирование:
R

rrrFer

С дробными числами точно так же как и с целыми :
Я не уверен. Дробные числа на равенство вообще сравнивать нельзя. Если это не константы, то они никогда не равны друг другу, т.к. есть мусор в младших разрядах.

Берешь cos(45) и sqrt(2)/2. Сравниваешь. Должны быть равны, но врядли это случится.
 
R

rrrFer

В качестве примера (практического) к статье можно было бы написать простую игрушку. Например, компьютер загадывает число в диапазоне, юзер пытается угадать. Если не угадывает, то компьютер сообщает больше число или меньше. Это и циклы, и условия. Если хочется больше условий - можно ограничить число попыток, а если хочется составных условий - можно добавить проверку принадлежности ответа юзера заданному диапазону. Можно добавить ввод пользователем границ диапазона и проверку их корректности (чтобы A было меньше B - если больше, то числа можно поменять местами, например).

Вобщем не хватает практического примера и ИМХО слишком затянуто вот это 1 == 1, 1==2, 1 !=2, 1 < 2, ... Лучше сразу на хорошем примере все это показать, на мой взгляд.
 

fuzscore

Well-known member
21.09.2016
77
183
BIT
0
Я не уверен. Дробные числа на равенство вообще сравнивать нельзя. Если это не константы, то они никогда не равны друг другу, т.к. есть мусор в младших разрядах.

Берешь cos(45) и sqrt(2)/2. Сравниваешь. Должны быть равны, но врядли это случится.
Очень интересно , питон сообщает что косинус 45 и близко не лежал там) хотя да по идее они равны
Python:
>>> math.cos(45)
0.5253219888177297
Python:
>>> math.sqrt(2)/2
0.7071067811865476
 

fuzscore

Well-known member
21.09.2016
77
183
BIT
0
В качестве примера (практического) к статье можно было бы написать простую игрушку. Например, компьютер загадывает число в диапазоне, юзер пытается угадать. Если не угадывает, то компьютер сообщает больше число или меньше. Это и циклы, и условия. Если хочется больше условий - можно ограничить число попыток, а если хочется составных условий - можно добавить проверку принадлежности ответа юзера заданному диапазону. Можно добавить ввод пользователем границ диапазона и проверку их корректности (чтобы A было меньше B - если больше, то числа можно поменять местами, например).

Вобщем не хватает практического примера и ИМХО слишком затянуто вот это 1 == 1, 1==2, 1 !=2, 1 < 2, ... Лучше сразу на хорошем примере все это показать, на мой взгляд.

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

rrrFer

Очень интересно , питон сообщает что косинус 45 и близко не лежал там
Там наверное не в градусах, а в радианах значения задаются. Я образно написал. При переводе градусов в радианы вы еще раз получите погрешность, кстати, т.е. результаты будут отличаться еще сильнее.
 

fuzscore

Well-known member
21.09.2016
77
183
BIT
0
Там наверное не в градусах, а в радианах значения задаются. Я образно написал. При переводе градусов в радианы вы еще раз получите погрешность, кстати, т.е. результаты будут отличаться еще сильнее.
да я уже проверил , и удалил из темы сравнение дробных чисел
 
  • Нравится
Реакции: -=S_U_N_Y=-
Мы в соцсетях:

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