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

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29778
  • Карма: +4121/-351
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #90 on: 11 June 2023, 13:44:29 »
  • 0
  • 0

Квантификатор * матчит любое число повторений (в том числе 0, то есть пустую строку); квантификатор + матчит одно или больше повторений. То есть найти группу из цифр можно выражением r'\d+'.
спасибо! буду надеяться, что они позже это расскажут  :)
Quote
Кстати, в качестве квантификатора можно использовать число в фигурных скобких: r'\d{10}' - это r'\d\d...<десять раз>\d'.
прикольно, еще не видел такого! :up:

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29778
  • Карма: +4121/-351
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #91 on: 11 June 2023, 13:46:08 »
  • 0
  • 0
А что непонятно? group() это метод класса re.match, который возвращает либо совпавшую строку целиком (если нет параметра, или параметр нулевой), либо какую-то отдельную подгруппу, индекс которой задаётся в параметре.
ничего непонятно, потому что этой групповухи нигде не было, и вдруг она выскакивает как черт из табакерки уже в практических (!) занятиях 8-)

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29778
  • Карма: +4121/-351
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #92 on: 11 June 2023, 13:49:49 »
  • 0
  • 0
И вот небольшой примерчик зачем вообще нужен класс re.Match
Code: [Select]
pattern = r"(\d+)-(\d+)"
text = "My Phone number is 123-456789"
match = re.search(pattern, text)

if match:
    print("Phone first part: ", match.group(1))
    print("Phone second part part: ", match.group(2))
else:
    print("No match")
Интересно, но непонятно, как считают элементы внутри объекта матч. Считаются только выражения, состоящие из масок, а тупые символы (вроде дефиса тут) игнорятся?

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29778
  • Карма: +4121/-351
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #93 on: 11 June 2023, 13:51:18 »
  • 0
  • 0
Начал туплы и списки - это типа расчленили бейсиковские массивы на 2 части? И у меня почему-то ощущение, что стринги - это частный случай тупла, или мне так только кажется?

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4995
  • Карма: +444/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #94 on: 11 June 2023, 13:53:20 »
  • 0
  • 0
Интересно, но непонятно, как считают элементы внутри объекта матч. Считаются только выражения, состоящие из масок, а тупые символы (вроде дефиса тут) игнорятся?
Считаются только выражения в скобках, остальные символы можно достать только из полного совпадения -- просто group().
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4995
  • Карма: +444/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #95 on: 11 June 2023, 13:56:59 »
  • 0
  • 0
И у меня почему-то ощущение, что стринги - это частный случай тупла, или мне так только кажется?
Не совсем. Туплы могут содержать разнотипичные данные, строки -- только символы.
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29778
  • Карма: +4121/-351
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #96 on: 11 June 2023, 13:59:11 »
  • 0
  • 0
Считаются только выражения в скобках, остальные символы можно достать только из полного совпадения -- просто group().
спасибо, начал что-то понимать. Попробовал маску со скобками и без скобок, вроде яснее теперь, спасибо. Т.е. если нам нефатально отдельные части маски - то просто без скобок \d+-\d+ и выводим через result.group() - я правильно понял?

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4995
  • Карма: +444/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #97 on: 11 June 2023, 13:59:55 »
  • 0
  • 0
Т.е. если нам нефатально отдельные части маски - то просто без скобок \d+-\d+ и выводим через result.group() - я правильно понял?
Да
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29778
  • Карма: +4121/-351
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #98 on: 11 June 2023, 14:00:40 »
  • 0
  • 0
Не совсем. Туплы могут содержать разнотипичные данные, строки -- только символы.
ну так это и есть определение "частного случая". Стринги = особая категория туплов, которые могут содержать только символы :)

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4995
  • Карма: +444/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Re: Не менее глупые вопросы по Питону
« Reply #99 on: 11 June 2023, 14:06:05 »
  • 0
  • 0
ну так это и есть определение "частного случая". Стринги = особая категория туплов, которые могут содержать только символы :)
Ещё отличие, что в стрингах функции count() и index() могут содержать подстроки, а для туплов они могут найти разве что вложенные туплы. Да и вообще они технически по-разному реализованы.
Дві найголовніші помилки українського народу -- зек і зєк.

Online Квас

  • Ветеран
  • *****
  • Posts: 1312
  • Карма: +379/-9
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #100 on: 11 June 2023, 14:08:55 »
  • 0
  • 0
ну так это и есть определение "частного случая". Стринги = особая категория туплов, которые могут содержать только символы :)

Ну, с помощью запятой (оператор тупла) строку не получится сделать. ('a', 'b') и 'ab' - разные вещи.

У туплов и строк в питоне есть важное сходство: они неизменяемы. А список можно менять: добавлять элементы, убирать, заменять. В принципе, питоновские списки - это массивы в стандартной терминологии CS.

Online Квас

  • Ветеран
  • *****
  • Posts: 1312
  • Карма: +379/-9
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #101 on: 11 June 2023, 14:45:18 »
  • 0
  • 0
А ещё с туплами можно делать так:
Code: [Select]
pair = (1, 2)
x, y = pair
print(f'x: {x}, y: {y}')
печатает "x: 1, y: 2".

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 5741
  • Карма: +2064/-237
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #102 on: 11 June 2023, 15:08:05 »
  • 0
  • 0
Самая впечатляющая вещь с ними: это обмен значениями.

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

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29778
  • Карма: +4121/-351
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #103 on: 11 June 2023, 15:41:59 »
  • 0
  • 0
А ещё с туплами можно делать так:
Code: [Select]
pair = (1, 2)
x, y = pair
print(f'x: {x}, y: {y}')
печатает "x: 1, y: 2".
а что f делает в принте?

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 5741
  • Карма: +2064/-237
    • View Profile
Re: Не менее глупые вопросы по Питону
« Reply #104 on: 11 June 2023, 16:37:27 »
  • 0
  • 0
Позволяет выводить значения переменных в фигурных скобках.
Это префикс formatted string literals.
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный