Специальные символы
Специальные символы – комбинация знаков, обозначающих непечатные или служебные символы, которые невоможно вставить обычным способом. Рассмотрим некоторые спец. символы внутри строки:
· \n – перевод строки,
· \r – возврат каретки,
· \t – знак табуляции,
· \v – вертикальная табуляция,
· \a – звонок,
· \b – забой,
· \f – перевод формата,
· \o – нулевой символ, не являющийся концом строки,
· \” – кавычка,
· \’ – апостроф,
· \N – восьмеричное значение N,
· \xN – шестнадцатеричное значение N,
· \\ – обратный слэш,
·\uxxxx – 16-битный символ Unicode, например, u’Hello World !’ – строка кодировки Unicode,
· \nxxxxxxx – 32-битный символ Unicode,
Если после слэша не стоит символ, который вместе со слэшем интерпретируется как спецсимвол, то слэш сохраняется в составе строки
Форматирование строк
Метод форматирования позволяет соединить строку с любым типом данных. Он имеет следующий синтаксис:
<Строка> = <Cтрока специального формата>.format(*args,**kwargs)
В параметре <Cтрока специального формата>. Внутри символов фигурных скобок { и } указываются спецификаторы, имеющие следующий синтаксис:
{[<Поле>][<!Функция>][:<Формат>]]
Все символы, расположеные вне фигурных скобок, выводятся без преобразований. Если внутри строки необходимо использовать символы { и }, то эти символы следует удвоить, иначе активируется исключение ValueError.
Пример 1:
“{0} –> {1} <– {2}”.format(‘ЛИЛИЯ’,1994,’ДИНАРА’)
# получится “ЛИЛИЯ –> 1994 <– ДИНАРА”
Пример 2:
“{ata} –> {son} –> {onik}”.format(ata=‘РАВИЛ’, son=‘КАМИЛ’, onik=’АЯЗ’)
# получится “РАВИЛ –> КАМИЛ –> АЯЗ”
Упражнения
53. Ввести символ и распечатать.
54. Ввести символ и проверить это «я» или нет?
55. Ввести массив из n символов и проверить наличие символа «А».
56. Ввести массив из n символов и посчитать число символов «Я».
57. Ввести массив из n символов и проверить наличие слова «мама».
58. Ввести массив из n символов и посчитать, сколько раз встречается твое имя.
59. Ввести массив из n символов и посчитать, сколько раз встречается каждая буква татарского алфавита.
60. Ввести массив из n символов, в которой используются скобки, и проверить правильность скобочной записи выражений.
61. Ввести массив из n символов и заменить в нем все цифры соответствующие по порядку символы алфавита (0-А, 1-Б, 2-В и т.д.).
62. Ввести массив из n символов. Написать программу удаления в начале, перед знаками препинания повторяющихся между словами пробелов данного массива, вставки пробела, если нет после знака препинания.
63. С помощью массива символов решить задачи из раздела «Число».
64. * (1992/1993) Дается последовательность из K 16-разрядных двоичных слов X1,X2, ...,XK. Составить алгоритм нахождения в ней всех дополнительных пар (XI,XJ). Два числа называются дополнитеьными, если каждое число содержит "0" во всех разрядах, в которых стоит "1" в другом числе (001001111100010 и 1101100010011101–дополнительные).
65. *Задано K цифр. Построить из них максимально возможную по длине последовательность такую, что никакие ее два соседних участка равной длины не совпадают.
Например (К=3) : 01201, 01202 – можно, 012012 – нельзя.
Структуры данных
Python имеет следующие структуры данных:
· Списки (lists). Списки – похожи на одномерные массивы (многомерный массив можно создавать как список, включающий список);
· Кортежи (tuples). Кортеж – неизменяемый список;
· Словари (dictionaries). Словарь – тоже список с индексами любого типа, а не только числового. "Массивы" могут содержать данные любого типа, т.е. в массиве могут находиться числовые, строковые и другие типы данных. Массивы начинаются с индекса 0, а последний элемент можно получить по индексу -1. Переменным можно присваивать функции и использовать их соответственно.
Примеры 1:
spisok = [1, ["другой", "список"], ("a", "в")] #Состав: число, список и кортеж
spisok = ["первый", 2, 3. 14] #Состав списка: строка, целое и дробное число
spisok [0] = "снова первый" #Изменяем 1-й (0-й) элемент списка
spisok [2] = 3.14 #Изменяем последний элемент листа
slovar = {"Key 1": "San 1", 2: 3, "pi": 3.14}#Словарь, с разными индексами
slovar ["pi"] = 3.15 #Изменяем элемент словаря под индексом "pi".
tuplau = (1, 2, 3) #Задаем кортеж
oznlk = len # Объявление синонима функции
print (oznlk (spisok)) # печатает 3
По-другому, текст может быть заключен в утроенные кавычки: """ или ’’’. Концы строк не нужно “прятать” при использовании утроенных кавычек, но они будут включены в текст.
Отметим еще некоторые воможности, связанные со строками.
Строка – последовательность символов с произвольным доступом, Любой символ строки можно получить по его индексу. Первый символ имеет индекс 0. Символ – строка единичной длины. Подстрока может быть определена с помощью среза — двух индексов, разделенных двоеточием.
word=’мисал’
print(word[4]) # напечатает – л
print(word[1:2]) # напечатает – ис
print(word[2:4] ) # напечатает – сал
Индексы среза имеют значения по умолчанию:
· Опущенный первый индекс считается равным 0, опущенный второй индекс дает длину строки.
Пример 2.
b=[1,2,3,4,5,6,7]
a=b[:5] # a=[1,2,3,4,5]
c=b[5:] # c=[6,7];
· Если верхняя граница меньше нижней, то возвращается пустая строка;
· Отрицательные индексы в срезах, выходящие за пределы, обрабатываются равными нулю. Лучший способ запомнить, как определяются индексы в срезе — считать их указывающими между символами, с номером 0 на левой границе первого символа. А правая граница последнего символа имеет индекс равный длине строки.
Например 3.
b=[1,2,3,4,5,6,7]
a=b[:-2] # a=[1,2,3,4,5]
c=b[-2:] # c=[6,7];
a=b=[1,2,3,4,5,6,7]
Например 4.Добавить новый элемент в список.
VAZ = ['Жигули', 'Лада', 'Нива']
print(VAZ) # напечатает – ('Жигули', 'Лада', 'Нива')
VAZ.append('Калина') # добавка элемента 'Калина'
print(VAZ) # напечатает – ('Жигули', 'Лада', 'Нива', ‘Калина’)
Например 5.Ввод 10-ти цифр в список.
cifr = []
for i in range(i): cifr.append(i) # cifr=(0,1,2,3,4,5,6,7,8,9)
В шаблон строки можно подставить элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом.
Print("Name: %s \n Number: %s \n String: %s" % (my class.name, 3, 3 * "_"))
Name: Poromenos
Number: 3
String: ___
strString = """Этот текст расположен
на нескольких строках"""
print("This %(verb)s a %(noun)s." % {"noun": "test", "verb":"is"})
# Напечатает – This is a test.
Можно использовать часть массива, задавая первый и последний индекс через «:». Если нет первого элемента, то отсчет начинается с начала массива, а если нет последнего, то массив считывается до последнего элемента. Отрицательные значения определяют положение элемента с конца. Например:
spisok = ["Elem 1", 2, 3.14]
print spisok [:] #Выводятся все элементы массива ['Elem 1', 2, 3.14]
print spisok [0: 2] #Выводятся 0-й и 1-й элемент массива. [' Elem 1', 2]
print spisok [-3:-1] #Выводятся элементы от 0-го (-3) до 2-го (-1) ['Elem 1',2]
print spisok [1:] #Выводятся элементы от 1-ого, до последнего [2, 3.14]
Пример 6.
На подоконнике стояло три цветочка, слева на право: герань, крокус и фиалка (GCF). Каждое утро Алсу меняла местами стоящий справа цветок с центральным. А вечером меняла местами левый и центральный цветок. Требуется определить порядок цветов ночью по прошествии K дней.
Решение 1:
C=’GCF’
N=int(input())
for i in range(N) :
C[0],C[1],C[2]=C[2],C[0],C[1]
Print(C)
Решение 2:
N=int(input())
if N%3 ==0 : print(’GCF’)
elif N%3==1 : print(’FGC’)
else print(‘CFG’)
Решение 3, используя тернарный условный оператор :
N=int(input())
print(’GCF’ if N%3 ==0 else ’FGC’ if N%3==1 else ‘CFG’)
Решение 4, используя картежи:
Print((’GCF’,’FGC’,‘CFG’)[ int(input())%3])
Дата добавления: 2022-04-12; просмотров: 158;