Найти - Пользователи
Полная версия: не работают строковые функции
Начало » Python для новичков » не работают строковые функции
1 2 3 4
snusmumrik
Здравствуйте! Помогите пожалуйста, не понимаю, почему не работает программа(использую питон 3)

'hello'.title
'hello'.upper
'hello'.lower


scidam
Чтобы вызвать функцию нужно добавить скобки, ‘hello’.title()….
PEHDOM
потому что title, upper и lower это методы класса.Функции как вы написали, а теперь вопрос знатокам:“Как вызываються функции и методы?”
 >>> 'hello'.title()
'Hello'
 >>> 'hello'.upper()
'HELLO'
 >>> 'hello'.lower()
'hello'
>>>
snusmumrik
спасибо огромное! А не подскажете еще, почему у меня функция range(3)
возвращает (0,3), а не 0,1,2 в квадратных скобках?
ViktorR
Если так:
 >>> 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
Что имеется ввиду под “возвращает (0,3)” ?
А что делает range() - почитайте.


Как-то так, …
py.user.next
snusmumrik
А не подскажете еще, почему у меня функция range(3)
возвращает (0,3), а не 0,1,2 в квадратных скобках?
Потому что квадратные скобки - это список, а списки тратят память. Раньше в питоне было две функции диапазона - range() и xrange(). Это был эксперимент, чтобы посмотреть, что программисты на питоне будут чаще использовать. Потом стало ясно, что все используют xrange() (потому что он не тратит память и время на создание) и тогда в третьем питоне старую range() удалили, а xrange() переименовали в range().

Если ты ждёшь, что range() должна возвращать список, значит ты читаешь материал для второго питона, а занимаешься на третьем питоне. Найди материал для третьего питона.
snusmumrik
Потом стало ясно, что все используют 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]]
>>> 

как тут происходит присвоение значения ключу? Мы сортируем список l по ключу и немного непонятно, почему в функции get_second есть аргумент (изначально).
А потом когда key=get_second - аргумента нет… Чему равен key?
krok64
snusmumrik
key=get_second - аргумента нет… Чему равен key?
Очевидно что key = get_second. Аргументами get_second будут члены массива l (по одному за раз)
Rodegast
> Раньше в питоне было две функции диапазона - range() и xrange(). Это был эксперимент, чтобы посмотреть, что программисты на питоне будут чаще использовать.

Если мне склероз не изменяет, то в первом питоне был range, а во второй добавили xrange. Отдельную функцию сделали что-бы не рушить совместимость, тогда про это ещё думали…
py.user.next
Rodegast
то в первом питоне был range, а во второй добавили xrange
Это понятно. Просто суть в том, что питон - язык экспериментов. То есть многое пробуют вставлять, чтобы просто посмотреть (не так как в других языках, где всё сразу и надолго), поэтому у него и стандарта нет (не отправляют его на стандартизацию). Точно так же была map(), возвращающая список, потом в itertools сделали imap(), а потом точно так же старую map() удалили, а imap() из itertools перенесли из модуля в ядро и переименовали в map(). И потом просто документацию переписали, никакие стандарты менять не надо.

snusmumrik
как тут происходит присвоение значения ключу?
Аргумент key - это не ключ. Туда передаётся функция, которая будет выполняться на каждом элементе (он передаётся в функцию) и возвращать какое-то значение. И вот эти значения, полученные от всех элементов, и будут сравниваться между собой. Сравнивать она будет значения, а переставлять элементы, от которых эти значения получены.

Тут текст, видимо, из одной из книг Шилдта*.
http://cpp.com.ru/shildt_spr_po_c/21/2101.html
Чаще всего при сортировке данных лишь часть их используется в качестве ключа сортировки. Ключ — это часть информации, определяющая порядок элементов. Таким образом, ключ участвует в сравнениях, но при обмене элементов происходит перемещение всей структуры данных. Например, в списке почтовой рассылки в качестве ключа может использоваться почтовый индекс, но сортируется весь адрес. Для простоты в нижеследующих примерах будет производиться сортировка массивов символов, в которых ключ и данные совпадают.

Ещё определение ключа с другого сайта
Ключ сортировки – это часть данных, определяющая порядок элементов.При решении задач сортировок массивов ключ и данные совпадают.


* Не очень хорошие книги у него, со многими ошибками; иногда не знаешь, правду пишет или нет, и надо перепроверять всё. У меня две штуки есть, обе читать бесполезно, много фуфла или просто мешанины тёплого с мягким. Новичку лучше их игнорировать, а то много лажовой инфы можно запомнить, а потом придётся переучиваться во всём заново.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB