Интересно Что бы быть разница между этими двумя частями кода:Python разница между не и =
while choice != "y" and choice != "n":
while not choice == "y" and not choice == "n":
Интересно Что бы быть разница между этими двумя частями кода:Python разница между не и =
while choice != "y" and choice != "n":
while not choice == "y" and not choice == "n":
Первый использует __ne__
метод объекта, в то время как второй использует __eq__
метод и сводит на нет объекта его результат.
Хотя оба метода должны сочетать их результат, поэтому a == b
подразумевает, что not a != b
это фактически не требуется или не применяется.
Между операторами сравнения нет никаких подразумеваемых отношений. Истина
x==y
не означает, чтоx!=y
является ложным. Соответственно, при определении__eq__()
следует также определить__ne__()
, чтобы операторы действовали должным образом.
В вашем случае, где choice
- это строка (я думаю?), Это не имеет никакого значения. Все встроенные типы обеспечивают обратную связь между ==
и !=
. Таким образом, единственная разница в том, насколько понятна это при просмотре кода. И я лично предпочитаю более краткий первый вариант.
Легче напечатать. Я бы подумал, что это более эффективно. – Volatility
@ Волатильность Более эффективна для людей, чтобы читать, да. Любая разница в производительности либо не поддается измерению, либо, по крайней мере, незначительна ;-) – delnan
Ну, видимо, когда я пробовал, это дало мне совершенно другой результат. С первым вариантом. Если бы я написал что-то другое между «Y» и «N», он запустил бы код, istead со вторым вариантом, которого не было бы - по какой-то причине. – GiamPy