„ Програмиране с Python“, ФМИ
12.03.2007г.
Текстови низове
Текстовите низове са поредици (като списъците например), които обаче не могат да бъдат променяни на място — immutable
>>> sentence = "The quick brown fox jumps over the lazy dog"
>>> sentence[4]
'q'
>>> sentence[-1] = 't'
Traceback (most recent call last):
File "", line 1, in
TypeError: 'str' object does not support item assignment
>>> for x in sentence: print x,
T h e q u i c k b r o w n f o x j u m p s o v e r t h e l a z y d o g
>>> sentence[-1:-4:-1]
'god'
>>> 'fox' in sentence
True
Съединяване (конкатенация)
- Низове се съединяват с оператора
+
firstName, lastName = "Eric", "Idle"
print firstName + " " + lastName # "Eric Idle" - Не можете да съберете низ с нещо друго - трябва предварително да го преобразувате:
>>> heading, answer = "The answer: ", 42
>>> print heading + answer
Traceback (most recent call last):
File "", line 1, in
TypeError: cannot concatenate 'str' and 'int' objects
>>> print heading + str(answer)
The answer: 42
Форматиране (1)
Подобно е по функционалност на printf
в C
Синтаксис: форматен низ % стойностите в n-торка
Примери:
>>> "This is %d %s bird!" % (1, 'dead')
This is 1 dead bird!
>>> exclamation = "Ni"
>>> "The knights who say %s!" % exclamation
'The knights who say Ni!"
Параметрите могат да бъдат различни в зависимост от типа им:
%s
- текстов низ%r
- текстов низ, но сrepr()
%d
,%i
- цели числа%f
- число с плаваща запетая%%
- процент (%)
Форматиране (2)
Същият механизъм работи може да работи и с речници
>>> "%(adjective)s %(noun)s" % {'adjective': 'Black',
'noun': 'Knight'}
Black Knight
>>> def word(adjective, noun):
... print "%(adjective)s %(noun)s" % vars()
>>> word('Black', 'Knight')
Black Knight
Методи (1)
Преобразувания
>>> string = 'my Dead Parrot'
>>> string.capitalize() # Първата буква главна, другите малки
'My dead parrot'
>>> string.title() # Всички думи започват с главна буква
'My Dead Parrot'
>>> string.upper() # Прави всички букви главни
'MY DEAD PARROT'
>>> string.lower() # Прави всички букви малки
'my dead parrot'
# дава ни списък с отделните части на низа, разделени с аргумента на split
>>> string.split(' ')
['my', 'Dead', 'Parrot']
Методи (2)
Премахване на символи отляво или отдясно.
>>> spam = " S P A M "
>>> spam.strip()
'S P A M'
>>> spam.lstrip()
По подразбиране премахва white-space, но може и да му се каже изрично низ със символи, които да премахне.
'S P A M '
>>> "He said:muuuuuuuuuu".rstrip('mu')
'He said:'
Методи (3)
Търсене из низа
>>> message = "Be vewy vewy quiet. I'm hunting for wabbits!"
>>> string.startswith('Be') # Проверява дали string започва с 'my'
True
>>> string.endswith('bits!') # Проверява дали string завършва на 'bits!'
True
>>> message.find('vewy')
3
>>> message.index('vewy')
3
>>> message.rfind('vewy')
8
>>> message.rindex('vewy')
8
>>> message.replace('wabbits', 'Buggs Bunny')
"Be vewy vewy quiet. I'm hunting for Buggs Bunny!"
Няма коментари:
Публикуване на коментар