Author Topic: Не менее глупые вопросы по Питону  (Read 5670 times)

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29552
  • Карма: +4087/-346
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #60 on: 11 June 2023, 01:59:51 »
  • 0
  • 0
Еще немного не понятна концепция "методов", чем они отличаются от функций. Или это просто игра словами?

Online Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4977
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #61 on: 11 June 2023, 02:06:22 »
  • 0
  • 0
заметил, что значение переменной можно вывести просто написав ее имя, без функции принт. Это такая фича, так и задумано?
В интерактивном интерпретаторе -- да, так и задумано, но в неинтерактивном режиме это не будет работать.
Еще немного не понятна концепция "методов", чем они отличаются от функций. Или это просто игра словами?
Методы у классов, а функции сами по себе.
Дві найголовніші помилки українського народу -- зек і зєк.

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29552
  • Карма: +4087/-346
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #62 on: 11 June 2023, 02:25:54 »
  • 0
  • 0
В интерактивном интерпретаторе -- да, так и задумано, но в неинтерактивном режиме это не будет работать.
спасибо, короче для отладки, но не надо привыкать  :yes:
Quote
Методы у классов, а функции сами по себе.
ну у меня пока были методы для стрингов, типа X.upper(), X.replace("Фигня", "Куйня") и т.д. - или это не методы?

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29552
  • Карма: +4087/-346
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #63 on: 11 June 2023, 02:32:33 »
  • 0
  • 0
а амперсанд для конкатенации не поддерживается? странно как-то... ??? :-\

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29552
  • Карма: +4087/-346
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #64 on: 11 June 2023, 02:39:57 »
  • 0
  • 0
Code: [Select]
name = "Michael Jackson"
split_string = (name.split())
split_string

почему не name.split(" ")? ??? :-\

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 5688
  • Карма: +2062/-229
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #65 on: 11 June 2023, 02:48:31 »
  • 0
  • 0
Quote from: Help
If sep is not specified or is None, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace. Consequently, splitting an empty string or a string consisting of just whitespace with a None separator returns [].

For example:
Code: [Select]
>>> '1 2 3'.split()
['1', '2', '3']
>>> '1 2 3'.split(maxsplit=1)
['1', '2 3']
>>> '   1   2   3   '.split()
['1', '2', '3']
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный

Online Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4977
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #66 on: 11 June 2023, 02:50:38 »
  • 0
  • 0
ну у меня пока были методы для стрингов, типа X.upper(), X.replace("Фигня", "Куйня") и т.д. - или это не методы?
Строка -- это тоже класс
Code: [Select]
>>> type("test")
<class 'str'>
а амперсанд для конкатенации не поддерживается? странно как-то... ??? :-\
Да, это не Бейсик.
Дві найголовніші помилки українського народу -- зек і зєк.

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29552
  • Карма: +4087/-346
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #67 on: 11 June 2023, 02:55:44 »
  • 0
  • 0
Интересно, спасибо!

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 5688
  • Карма: +2062/-229
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #68 on: 11 June 2023, 02:56:09 »
  • 0
  • 0
Строка -- это тоже класс
Да в общем-то в Питоне всё — класс. Почти как в Java.
У int и bytes тоже куча методов (которые, кстати, можно узнать функцией dir на любом экземпляре), не говоря уж о продвинутых list или dict.
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный

Online Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29552
  • Карма: +4087/-346
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #69 on: 11 June 2023, 02:59:07 »
  • 0
  • 0
Code: [Select]
s1 = "Michael Jackson is the best"

# Define the pattern to search for
pattern = r"Jackson"

# Use the search() function to search for the pattern in the string
result = re.search(pattern, s1)

# Check if a match was found
if result:
    print("Match found!")
else:
    print("Match not found.")

2 вопроса:

1. зачем search, разве нельзя было тоже с find сделать? Например так:
Code: [Select]
s1 = "Michael Jackson is the best"

# Define the pattern to search for
pattern = "Jackson"

# Don't the search() function to search for the pattern in the string
result = s1.find(pattern)

# Check if a match was found
if result:
    print("Match found!")
else:
    print("Match not found.")

2. какая функция у r тут? потому что пока что этот r попадался перед стрингами со слешем, никак вообще не объясняли для чего он еще используется
« Last Edit: 11 June 2023, 03:02:28 by Euskaldun »

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 5688
  • Карма: +2062/-229
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #70 on: 11 June 2023, 03:03:22 »
  • 0
  • 0
Это префикс raw string, для обработки сочетаний символов as is.
« Last Edit: 11 June 2023, 03:05:00 by Bhudh »
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный

Online Квас

  • Ветеран
  • *****
  • Posts: 1291
  • Карма: +370/-9
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #71 on: 11 June 2023, 03:06:12 »
  • 0
  • 0
заметил, что значение переменной можно вывести просто написав ее имя, без функции принт. Это такая фича, так и задумано? В реальных программах тоже можно или это дурной тон так делать?

Интерактивный шелл, существующий в некоторых языках, называется REPL: Read-Evaluate-Print Loop. Интерпретатор берёт на себя ввод-вывод, а пользователь может сосредоточиться на логике вычисений. Поэтому в репле значение переменной печатается: это значение выражения, образованного из одной этой переменной. А если одинокая переменная стоит в скрипте, она не напечатается.

Online Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4977
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #72 on: 11 June 2023, 03:07:21 »
  • 0
  • 0
Это префикс raw string, для обработки сочетаний символов as is.
r-строки отличаются тем, что там нет escape-последовательностей. В данном случае нет разницы между r-строкой и просто строкой. r-строки особенно хороши для написания регулярный выражений, иначе можно задолбаться считать обратные слеши.
Дві найголовніші помилки українського народу -- зек і зєк.

Online Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4977
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #73 on: 11 June 2023, 03:11:09 »
  • 0
  • 0
1. зачем search, разве нельзя было тоже с find сделать? Например так:
И да, в данном случае также нет разницы между re.search и find. Но потенциально у re.search возможности гораздо больше, чем у find.
Дві найголовніші помилки українського народу -- зек і зєк.

Online Квас

  • Ветеран
  • *****
  • Posts: 1291
  • Карма: +370/-9
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #74 on: 11 June 2023, 03:13:44 »
  • 0
  • 0
Еще немного не понятна концепция "методов", чем они отличаются от функций. Или это просто игра словами?

Ну, это стандартная терминология ООП: методы суть функции, приклеенные к объектам. Принципиальных концептуальных различий с функциями у них нет. Однако, foo(a) - это вызов вполне определённой функции с аргументом a, а a.foo() - это вызов метода foo, ассоциированного с объектом a, и с разными объектами могут быть ассоциированы разные методы foo.