Так что давайте просто сказать, что я был код, который пошел что-то вроде:странно (МОГ) запрос начинающего Пайтона
x = 'foobar'
, и я хотел напечатать первую половину (Foo), а затем второй (бар). Можно было бы подумать, что это будет либо записать подсчетом первую букву, как «0», как первый пункт в списке -
x = 'foobar'
print x[0:2]
print x[3:5]
-или считая первую букву как «1»:
x = 'foobar'
print x[1:3]
print x[4:6]
Но через несколько проб и ошибок я обнаружил, что первое значение (значение перед «:») отсчитывается от 0, тогда как второе значение (одно после «:») подсчитывается от 1. Таким образом,
Правильный код:
x = 'foobar'
print x[0:3]
print x[3:6]
Я получаю это сейчас, но почему это? Есть ли какая-то причина?
Связанные: [Python-фрагмент нотация] (http://stackoverflow.com/questions/509211/the-python-slice-notation), 'х [1: 3]' равно 'х [1] + x [2] ',' 3' не является исчерпывающим. –
первый аргумент является включительным, а второй - исключительным. если оба были включены/исключительны, вы не сможете выбрать одиночные символы или граничные символы – shyam
@shyam Wbu 'x [1]' или 'x [1: 1]', предположив, что оба включены? –