Форум сайта python.su
Здравствуйте! Помогите пожалуйста, не понимаю, почему не работает программа(использую питон 3)
'hello'.title
'hello'.upper
'hello'.lower
Офлайн
Чтобы вызвать функцию нужно добавить скобки, ‘hello’.title()….
Офлайн
потому что title, upper и lower это методы класса.Функции как вы написали, а теперь вопрос знатокам:“Как вызываються функции и методы?”
>>> 'hello'.title() 'Hello' >>> 'hello'.upper() 'HELLO' >>> 'hello'.lower() 'hello' >>>
[code python][/code]
Офлайн
спасибо огромное! А не подскажете еще, почему у меня функция range(3)
возвращает (0,3), а не 0,1,2 в квадратных скобках?
Отредактировано snusmumrik (Авг. 6, 2017 21:18:33)
Офлайн
Если так:
>>> range(3) range(0, 3) >>> range(3,2) range(3, 2) >>> range(1,3,2) range(1, 3, 2)
>>> for i in range(3): print(i) # печатаем, то что "возвращается" 0 1 2
Офлайн
snusmumrikПотому что квадратные скобки - это список, а списки тратят память. Раньше в питоне было две функции диапазона - range() и xrange(). Это был эксперимент, чтобы посмотреть, что программисты на питоне будут чаще использовать. Потом стало ясно, что все используют xrange() (потому что он не тратит память и время на создание) и тогда в третьем питоне старую range() удалили, а xrange() переименовали в range().
А не подскажете еще, почему у меня функция range(3)
возвращает (0,3), а не 0,1,2 в квадратных скобках?
Офлайн
Потом стало ясно, что все используют xrange() (потому что он не тратит память и время на создание) и тогда в третьем питоне старую range() удалили, а xrange() переименовали в range().спасибо, теперь понятно
>>> def get_second(x): return x[1] >>> l=[['a',2],['c',1],['b',3]] >>> sorted(l,key=get_second) [['c', 1], ['a', 2], ['b', 3]] >>>
Отредактировано snusmumrik (Авг. 7, 2017 14:33:08)
Офлайн
snusmumrikОчевидно что key = get_second. Аргументами get_second будут члены массива l (по одному за раз)
key=get_second - аргумента нет… Чему равен key?
Офлайн
> Раньше в питоне было две функции диапазона - range() и xrange(). Это был эксперимент, чтобы посмотреть, что программисты на питоне будут чаще использовать.
Если мне склероз не изменяет, то в первом питоне был range, а во второй добавили xrange. Отдельную функцию сделали что-бы не рушить совместимость, тогда про это ещё думали…
Онлайн
RodegastЭто понятно. Просто суть в том, что питон - язык экспериментов. То есть многое пробуют вставлять, чтобы просто посмотреть (не так как в других языках, где всё сразу и надолго), поэтому у него и стандарта нет (не отправляют его на стандартизацию). Точно так же была map(), возвращающая список, потом в itertools сделали imap(), а потом точно так же старую map() удалили, а imap() из itertools перенесли из модуля в ядро и переименовали в map(). И потом просто документацию переписали, никакие стандарты менять не надо.
то в первом питоне был range, а во второй добавили xrange
snusmumrikАргумент key - это не ключ. Туда передаётся функция, которая будет выполняться на каждом элементе (он передаётся в функцию) и возвращать какое-то значение. И вот эти значения, полученные от всех элементов, и будут сравниваться между собой. Сравнивать она будет значения, а переставлять элементы, от которых эти значения получены.
как тут происходит присвоение значения ключу?
Чаще всего при сортировке данных лишь часть их используется в качестве ключа сортировки. Ключ — это часть информации, определяющая порядок элементов. Таким образом, ключ участвует в сравнениях, но при обмене элементов происходит перемещение всей структуры данных. Например, в списке почтовой рассылки в качестве ключа может использоваться почтовый индекс, но сортируется весь адрес. Для простоты в нижеследующих примерах будет производиться сортировка массивов символов, в которых ключ и данные совпадают.
Ключ сортировки – это часть данных, определяющая порядок элементов.При решении задач сортировок массивов ключ и данные совпадают.
Отредактировано py.user.next (Авг. 8, 2017 00:46:37)
Офлайн