Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 6, 2017 14:07:11

snusmumrik
Зарегистрирован: 2014-04-26
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

не работают строковые функции

Здравствуйте! Помогите пожалуйста, не понимаю, почему не работает программа(использую питон 3)

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


Офлайн

#2 Авг. 6, 2017 15:38:07

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

не работают строковые функции

Чтобы вызвать функцию нужно добавить скобки, ‘hello’.title()….

Офлайн

#3 Авг. 6, 2017 15:42:29

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

не работают строковые функции

потому что title, upper и lower это методы класса.Функции как вы написали, а теперь вопрос знатокам:“Как вызываються функции и методы?”

 >>> 'hello'.title()
'Hello'
 >>> 'hello'.upper()
'HELLO'
 >>> 'hello'.lower()
'hello'
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Авг. 6, 2017 21:18:00

snusmumrik
Зарегистрирован: 2014-04-26
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

не работают строковые функции

спасибо огромное! А не подскажете еще, почему у меня функция range(3)
возвращает (0,3), а не 0,1,2 в квадратных скобках?

Отредактировано snusmumrik (Авг. 6, 2017 21:18:33)

Офлайн

#5 Авг. 7, 2017 00:59:08

ViktorR
Зарегистрирован: 2017-06-25
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

не работают строковые функции

Если так:

 >>> 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() - почитайте.


Как-то так, …

Офлайн

#6 Авг. 7, 2017 01:29:10

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

не работают строковые функции

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

Если ты ждёшь, что range() должна возвращать список, значит ты читаешь материал для второго питона, а занимаешься на третьем питоне. Найди материал для третьего питона.



Офлайн

#7 Авг. 7, 2017 14:32:46

snusmumrik
Зарегистрирован: 2014-04-26
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

не работают строковые функции

Потом стало ясно, что все используют 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?

Отредактировано snusmumrik (Авг. 7, 2017 14:33:08)

Офлайн

#8 Авг. 7, 2017 15:58:19

krok64
Зарегистрирован: 2017-04-04
Сообщения: 75
Репутация: +  11  -
Профиль   Отправить e-mail  

не работают строковые функции

snusmumrik
key=get_second - аргумента нет… Чему равен key?
Очевидно что key = get_second. Аргументами get_second будут члены массива l (по одному за раз)

Офлайн

#9 Авг. 7, 2017 21:02:31

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2746
Репутация: +  183  -
Профиль   Отправить e-mail  

не работают строковые функции

> Раньше в питоне было две функции диапазона - range() и xrange(). Это был эксперимент, чтобы посмотреть, что программисты на питоне будут чаще использовать.

Если мне склероз не изменяет, то в первом питоне был range, а во второй добавили xrange. Отдельную функцию сделали что-бы не рушить совместимость, тогда про это ещё думали…



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Авг. 8, 2017 00:45:53

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9863
Репутация: +  853  -
Профиль   Отправить e-mail  

не работают строковые функции

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

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

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

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


* Не очень хорошие книги у него, со многими ошибками; иногда не знаешь, правду пишет или нет, и надо перепроверять всё. У меня две штуки есть, обе читать бесполезно, много фуфла или просто мешанины тёплого с мягким. Новичку лучше их игнорировать, а то много лажовой инфы можно запомнить, а потом придётся переучиваться во всём заново.



Отредактировано py.user.next (Авг. 8, 2017 00:46:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version