Специальные символы


Специальные символы – комбинация знаков, обозначающих непечатные или служебные символы, которые невоможно вставить обычным способом. Рассмотрим некоторые спец. символы внутри строки:

· \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;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.015 сек.