Uploaded by luda_temisheva@mail.ru

Базовые символьные функции Python

advertisement
Функции и методы строк
Базовые операции

Конкатенация (сложение)
>>> S1 = 'spam'
>>> S2 = 'eggs'
>>> print(S1 + S2)
'spameggs'

Дублирование строки
>>>
>>> print('spam' * 3)
spamspamspam

Длина строки (функция len)
>>> len('spam')
4

Доступ по индексу
>>>
>>> S = 'spam'
>>> S[0]
's'
>>> S[2]
'a'
>>> S[-2]
'a'
Как видно из примера, в Python возможен и доступ по отрицательному индексу, при этом отсчет идет
от конца строки.

Извлечение среза
Оператор извлечения среза: [X:Y]. X – начало среза, а Y – окончание;
>>> s = 'spameggs'
>>> s[3:5]
'me'
>>> s[2:-2]
'ameg'
>>> s[:6]
'spameg'
>>> s[1:]
'pameggs'
>>> s[:]
'spameggs'
Кроме того, можно задать шаг, с которым нужно извлекать срез.
>>> s[::-1]
'sggemaps'
>>> s[3:5:-1]
''
>>> s[2::2]
'aeg'
При вызове методов необходимо помнить, что строки в Python относятся
к категории неизменяемых последовательностей, то есть все функции и
методы могут лишь создавать новую строку
Таблица "Функции и методы строк"
Функция или метод
Назначение
S1 + S2
Конкатенация (сложение строк)
S1 * 3
Повторение строки
S[i]
Обращение по индексу
S[i:j:step]
Извлечение среза
len(S)
Длина строки
S.find(str, [start],[end])
Поиск подстроки в строке. Возвращает номер
первого вхождения или -1
S.rfind(str, [start],[end])
Поиск подстроки в строке. Возвращает номер
последнего вхождения или -1
ord(символ)
Символ в его код ASCII
print(ord('a’))
chr(число)
Код ASCII в символ
print(chr(97))
S.count(str, [start],[end])
s='asdfgh2ghgh34jk45gh'
str='gh’
print(s.count(str))
Возвращает количество
непересекающихся вхождений подстроки
в диапазоне [начало, конец] (0 и длина
строки по умолчанию)
S.find(str, [start],[end])
Поиск подстроки в строке. Возвращает номер
первого вхождения или -1
s='asdfghjkgh'
str='gh'
g="2345"
print(s.find(str,0))
S.rfind(str, [start],[end])
s='asdfghjkgh'
str='gh'
g="2345"
print(s.rfind(str,0))
Поиск подстроки в строке. Возвращает номер
последнего вхождения или -1
Варианты поиска подстроки в строке
Вариант 1
s='asdfghjkgh'
str='gh'
g="2345"
if s.find(str) >=0:
print(s.find(str))
Вариант 2
s='asdfghjkgh'
str='gh'
g="2345"
if str in s:
print ('da')
else:
print('no')
S.isdigit()
Состоит ли строка из цифр
s='asdfghjkgh'
g="2345"
print(g.isdigit())
print(g.isdigit())
S.isalpha()
s='asdfghjkgh'
str='gh'
g="2345“
print(g.isalpha())
print(s.isalpha())
Состоит ли строка из букв
S.split(символ)
Разбиение строки по разделителю
S.isdigit()
Состоит ли строка из цифр
S.isalpha()
Состоит ли строка из букв
S.isalnum()
Состоит ли строка из цифр или букв
S.islower()
Состоит ли строка из символов в
нижнем регистре
S.isupper()
Состоит ли строка из символов в
верхнем регистре
ord(символ)
Символ в его код ASCII
chr(число)
Код ASCII в символ
S.capitalize()
Переводит первый символ строки в
верхний регистр, а все остальные в нижний
S.count(str, [start],[end])
Возвращает количество пересекающихся
вхождений подстроки в диапазоне [начало,
конец] (0 и длина строки по умолчанию)
S.replace(«заменяющая», «заменяемая», «количество замен»)
Метод S.replace(str,str1) заменяет одну подстроку
на другую
Метод lstrip()
Метод lstrip()возвращает копию строкиsу которой удалены все пробелы стоящие в начале строки.
Результатом выполнения следующего кода:
s =‘ ⎵ ⎵ ⎵ ⎵ ⎵ foo bar foo baz foo qux ⎵ ⎵ ⎵ ⎵ ⎵ '
print(s.lstrip())
является строка : foo bar foo baz foo qux⎵ ⎵ ⎵ ⎵ ⎵ ⎵
Метод rstrip()
Метод rstrip()возвращает копию строки s у которой удалены все пробелы стоящие в конце строки.
Результатом выполнения следующего кода:
s = ‘⎵ ⎵ ⎵ ⎵ ⎵ ⎵foo bar foo baz foo qu ⎵ ⎵ ⎵ ⎵ ⎵ ⎵'
print(s.rstrip())
является строка :
⎵ ⎵ ⎵ ⎵ ⎵ ⎵foo bar foo baz foo qux
Метод lower()
Метод lower()возвращает копию строки s, в которой все символы имеют нижний регистр.
Результатом выполнения следующего кода:
s = 'FOO Bar 123 baz qUX'
print(s.lower())
является строка:
foo bar 123 baz qux
Метод upper()
Метод upper()возвращает копию строки s, в которой все символы имеют верхний регистр.
Результатом выполнения следующего кода:
s ='FOO Bar 123 baz qUX'
print(s.upper())
является строка :
FOO BAR 123 BAZ QUX
Задача.
Определить, является ли символ строки цифрой
s='0123456789'
st=input('Введите строку ')
nom=int(input('Введите номер '))
# проверка с применением метода
if st[nom-1].isdigit():
print('da....')
else:
print('no....')
# использование строки с цифрами
# и оператора проверки принадлежности оператора in
if st[nom-1] in s:
print('da')
else:
print ('no')
Задача.
Определить, является ли символ строки цифрой
Python, 9 класс
Задача
Дано предложение, в котором слова разделены одним пробелом(начальных и конечных пробелов нет).
Вывести на экран первое слово
s=input()
n=s.find(' ')
if n==-1:
print (s)
else :
print(s[:n+1])
 К.Ю. Поляков, 2017
http://kpolyakov.spb.ru
s='asdfgh2ghgh34jk45gh'
str='gh'
g="2345"
#print(s.find(str))
#print(s.rfind(str,3))
#print(ord('a'))
#print(chr(97))
#print(3*str)
#print(g.isdigit())
#print(g.isalpha())
#if str in s:
# print ('da')
#else:
#
print('no')
print(s.count(str))
Напишите программу, которая получает номер месяца и
выводит соответствующее ему время года или
сообщение об ошибке.
Пример:
Введите номер месяца:
5
Весна.
Пример:
Введите номер месяца:
15
Неверный номер месяца.
m=input()
z='1,2,12'
v='3,4,5'
l='6,7,8'
o='9,10,11'
if m.isdigit():
if m in z:
print('zima')
elif m in v:
print('vesna')
elif m in l:
print('leto')
elif m in o:
print('ocen')
else:
print('ошибка')
else:
print('введено не число')
Напишите программу, которая получает возраст человека
(целое число, не превышающее 120) и выводит этот
возраст со словом «год», «года» или «лет».
Например, «21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.
"""
Напишите программу, которая получает возраст человека (целое число, не
превышающее 120) и выводит этот возраст со словом «год», «года» или «лет».
Например, «21 год», «22 года», «25 лет».
"""
s1='0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20'
s2='2,3,4'
s3=''
god=input('Введите Ваш возраст ')
if god.isdigit():
if int(god)<=120 and int(god)>0:
god=int(god)
if god%10 ==1:
print(god,'год')
elif god>=9 and str(god%100)in s1:
print(god,'лет')
elif god>9 and str(god%10)in s2:
print(god,'годa')
elif str(god%10) in s2:
print(god,'года')
else:
print('неверный ввод')
else:
print('ведено не число')
Python, 9 класс
23
Задачи
«A»: Ввести с клавиатуры в одну строку фамилию и имя,
разделив их пробелом. Вывести первую букву имени с
точкой и потом фамилию.
Пример:
Введите фамилию и имя:
Иванов Петр
П. Иванов
«B»: Ввести с клавиатуры в одну строку фамилию, имя и
отчество, разделив их пробелом. Вывести фамилию и
инициалы.
Пример:
Введите фамилию, имя и отчество:
Иванов Петр Семёнович
П.С. Иванов
 К.Ю. Поляков, 2017
http://kpolyakov.spb.ru
Download