Почему ('a'> 'b') принимает значение false в Python? - PullRequest
0 голосов
/ 20 июня 2020

Я не понимаю, как python оценивает это выражение. Что он учитывает при оценке такого выражения?

Фрагмент кода: print ('a'> 'b')

Ответы [ 3 ]

1 голос
/ 20 июня 2020

Если вы сравните строки в python, он будет учитывать значения ascii символов. Значение Ascii для «a» - 97, а значение Ascii для «b» - 98. Таким образом, в основном вы спрашиваете, если 97> 98, что является ложью. Это причина того, что ('a'> 'b') оценивается как ложное.

Ниже приведены некоторые примеры

'a' > 'b' -> false
'ac' > 'ab' -> true (here first characters are equal. So it will compare 'c' and 'b')
'ac' > 'ba' -> false (here first characters are different. So it will just compare first characters)
0 голосов
/ 20 июня 2020

Лучше посмотреть таблицу кодов ASCII. Я упомянул шестнадцатеричное число ниже.

'a' соответствует числу 61, а 'b' соответствует числу 62 в таблице кодов ASCII.

61 <62. </p>

Таким образом, print ('a'> 'b') "печатает false.

Пс. print ('a' <'b') "выводит true. «print ('#' <'$')» также выводит true. </p>

https://simple.wikipedia.org/wiki/ASCII

0 голосов
/ 20 июня 2020

Python использует лексикографический порядок строк. Это означает, что для упорядочивания символов используется номер точки Unicode.

Ссылка: https://docs.python.org/3/tutorial/datastructures.html#comparing -sequences-and-other-types

Вы можете найти это полезным: https://en.wikipedia.org/wiki/List_of_Unicode_characters

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...