Форум сайта python.su
0
Здравствуйте, уважаемые!
Хотелось бы посоветоваться с вами, может вы объясните, что я делаю не правильно.
Я прохожу курс основ программирования, обучение идет на питоне. Пытаюсь сделать простое ветвление, используя в качестве условия истинность выражения, но в результате происходит все наоборот.
Что я имею в виду:
Я создал переменную, присвоил ей значение 1. Проверил, что моя переменная действительно больше нуля. Питон подтверждает, что да:
>>> per1 = 1
>>> per1 > 0
True
Далее, пытаюсь сделать ветвление, используя в качестве условия истинность этого самого сравнения, но условие не срабатывает:
>>> if per1 > 0 == True:
print(“very good”)
>>>
Если же я меняю в условии True на False, то все работает нормально:
>>> if per1 > 0 == False:
print(“very good”)
very good
>>>
Но где здесь логика? Ведь моя переменная больше нуля, это истина, сам питон это подтверждает. Почему же тогда в условии все работает наоборот?
Помогите разобраться, в чем ошибка? Я что-то делаю неправильно? Только не ругайтесь, я совсем-совсем новичок в программировании.
Офлайн
1
per1 > 0 == False
Тем самым Вы заносите в переменную сравнение ‘0 == False’ и получаете ответ - ноль не равен значению ‘False’
Простой пример:
a = 100 == 1000 print (a) False
>>> 100 == 1000 False >>> a = 100 == 1000 >>> print (a) False
Отредактировано Qficer (Апрель 3, 2014 21:40:36)
Офлайн
49
>>> if per1 > 0 == True:
>>> if (perl1 > 0) == True:
>>>if perl1:
>>>if perl1 > 0:
Офлайн
0
Но ведь я даже нигде здесь не использую слово False. И потом, если проверить, то никакого нового значения ей не присваивалось. Как была, так и осталась 1. Тем не менее, условие не срабатывает.
>>> per1 = 1
>>> if per1 > 0 == True:
print(“very good”)
>>> print(per1)
1
>>>
Еще я заметил такую штуку. Если в сравнении я не использую ноль, то все работает так, как я хочу.
>>> per2 = 2
>>> if per2 > 1 == True:
print(“Very good”)
Very good
>>>
Получается, что вся проблема именно в нуле? Почему это так получается?
Офлайн
0
Alen
Офлайн
49
simpla
Но ведь я даже нигде здесь не использую слово False.
Офлайн
1
simpla
Но ведь я даже нигде здесь не использую слово False. И потом, если проверить, то никакого нового значения ей не присваивалось. Как была, так и осталась 1. Тем не менее, условие не срабатывает.>>> per1 = 1>>> if per1 > 0 == True: print(“very good”)
>>> a = (1 == True) >>> a True >>> a = (0 == False) >>> a True >>>
Отредактировано Qficer (Апрель 3, 2014 22:04:16)
Офлайн
0
QficerЯ понял. Я не совсем адекватно объяснил компьютеру, что я от него хочу. Правильно расставленные скобки вернули все на свои места.
Отредактировано simpla (Апрель 3, 2014 22:08:57)
Офлайн
0
AlenПонятно, это и объясняет, почему именно с нулем у меня не сработало. Спасибо всем!
Офлайн
0
Кстати, извините за оффтоп, но может кто-нибудь подскажет, как правильно вставлять в сообщения куски с кодом, чтобы получалось как у людей?
Офлайн