Почему @XmlType propOrder влияет на порядок json?

Диапазон в python - это то, что включает нижнюю границу, но не включает верхнюю границу . Вначале это может показаться запутанным, но оно преднамеренно и используется во всех python.

list(range(4, 10))
#     [4, 5, 6, 7, 8, 9]
#     does not include 10!

xs = ['a', 'b', 'c', 'd', 'e']  
xs[1:4]  
#     [xs[1], xs[2], xs[3]] 
#     does not include xs[4]!

bisect.bisect_left('jack', names, 2, 5)
#     perform a binary search on names[2], names[3], names[4]
#     does not include names[5]!

random.randrange(4, 8)
#     picks a random number from 4, 5, 6, 7
#     does not include 8!

В математике это называется полуоткрытым интервалом . Python предпочитает использовать полуинтервалы, потому что они избегают ошибок по отдельности :

[во избежание ошибок по очереди] ... диапазоны в вычислениях часто представлены полуоткрытыми интервалами; диапазон от m до n (включительно) представлен диапазоном от m (включительно) до n + 1 (эксклюзивный)

blockquote>

. В результате большинство функций библиотеки python будут использовать это идея полуоткрытых диапазонов, когда это возможно.

Однако randint является тем, что не использует полуоткрытые интервалы.

random.randint(4, 8)
#     picks a random number from 4, 5, 6, 7, 8
#     it does indeed include 8!

Причина историческая:

  • randint был добавлен в начале v1.5 около 1998 года, и это имя функции использовалось для генерации случайные числа с плавающей запятой случайным образом и целые числа случайным образом
  • randrange были добавлены в python в версии 1.5.2. В v2.0 добавлено уведомление о том, что randint является устаревшим .
  • уведомление об исключении для randint с тех пор было удалено

randint началось как более ранняя библиотечная функция, которая не включала полуоткрытый интервал, потому что эта идея в то время была менее цементирована на python.

0
задан Adrian Hincu 27 February 2019 в 10:49
поделиться