Текстови стойности

В допълнение към целите и реални числа, един от основните типове данни в програмирането е текст. Текстовите данни се наричат низ. В допълнение към буквите те могат да съдържат всички други символи, използвани в текста: препинателни знаци, скоби, числа, математически оператори, различни специални символи като%, $, ^. & т.н.

Текстовите стойности се записват между кавички. Наричаме текста под кавички текст константа или буквален. Единични кавички “…” и двойни “…” могат да се използват еднакво в Python (важно е само кавичките да са от същия тип в началото и в края на низа). Например:

s1 = 'One text'
s2 = "Another text"

Ще използваме думата низ за типа текстови данни, както и за всеки израз, чиято стойност е този тип. Най-важните примери за низови изрази са текстови константи (буквали) и променливи, които съдържат текст.

Извеждане на текст

Низовете се извеждат по същия начин като числовите данни. Низът, който искаме да изведем, е просто посочен като аргумент за функция print ().

Когато функцията print () има множество аргументи, тези аргументи могат да бъдат от различни видове:

Когато използваме множество аргументи, ги пишем разделени със запетаи (както при всяка функция). Стойностите на всички посочени аргументи ще бъдатизведени в един и същ ред и ще бъдат разделени с едно интервал.

Повече за извежданите(принтирани) числа

Понякога изведеният резултат изглежда нечетлив:

Най-често не се нуждаем от всички тези цифри. Реалните числа могат да изглеждат по-четими, ако използваме функцията за форматиране. С тази функция (освен всичко друго) можем да определим колко цифри след десетичната запетая, която искаме да покажем:

За да определим броя на десетичните знаци за показване, ние нарекохме функцията за формат така: първият аргумент на функцията е стойността, която отпечатваме, а вторият аргумент е описанието на формата за печат. В това описание частта „.2“ означава, че искаме два десетични знака, а частта „f“, съкратено от float, означава, че даваме описание за реално число (видът на реалните числа се нарича float). Функцията връща низ, в който е написано числото x, както е посочено.

Обърнете внимание, че този форматиран печат не променя стойността на променливата x.

Разбихме примера на стъпки, за да го направим по-ясен, въпреки че той може да бъде написан и в един ред код. Например, за да отпечатате с 4 десетични знака:


Когато показваме множество реални числа едно под друго, можем да ги направим по-четими, като подравним десетичните знаци. Например този начин на печат не е лесно разбираем:

За да получим по-четим външен вид, можем да използваме функцията за формат така:

В описанието „8.2f“ числото 8 означава, че текстовата версия на дадения номер трябва да бъде подплатена с ляво разстояние (ако е необходимо), за да заеме общо 8 места. Други части от описанието имат същото значение като преди.

Функцията за формат има и много други функции, но тук няма да ги използваме.

Стринг операции (String operations)

Свързване на символни низове (joining strings)

Низовете могат да бъдат съединени заедно с операция за свързване на низове. Тази операция се обозначава със знака +, точно както операцията на сумиране, така че в програмирането конкатенацията често неформално се нарича добавяне на низове.

Понякога може да имаме цяло число или истинско число, което да се изтрие в низ, така че е важно да разберем кога знакът се отнася за добавянето на числа и кога свързване на низове. Например в следната програма, първото a + b е добавянето на числа, а второто е добавянето на низове. Съответно, отпечатаните резултати също се различават (изпробвайте).

Има вероятност от време на време да бъдете объркани от резултата при изпълнение на програма. Резултатът може да е различен от очакваното по много причини, а една от възможностите е, че неволно сте добавили низове вместо числа.

Символът + може да стои между два числови израза или между два низа, но не и между низ и число (в произволен ред). Такива комбинации водят до TypeError (опитайте го).

Умножение на низове

Strings can also be multiplied. This means that it is allowed to multiply a string by an integer (either from left or right), and the result is a new string, which is obtained by repeating a given string a given number of times.

Низовете също могат да бъдат умножени. Това означава, че е позволено да се умножи низ по цяло число (отляво или отдясно), а резултатът е нов низ, който се получава чрез повтаряне на даден низ определен брой пъти. В следващия пример подчертаваме числата с ред и този ред се получава в резултат на умножаването на низа “-” с 12.

Въпроси и задачи

    Q-9: Свържете *format* функцията с резултатите. Разстоянията са представени с '_' , за да са по-видими Try again!
  • '12.34'
  • format(12.34, '.2f')
  • '__12.34'
  • format(12.34, '7.2f')
  • '_12.34'
  • format(12.34, '6.2f')
  • '__12.3'
  • format(12.34, '6.1f')
  • '12.3'
  • format(12.34, '.1f')

    Q-10: Кое е грешното?

  • s = 'a' + "b"
  • Try again
  • s = 'ab"
  • Correct!
  • s = 'ab'
  • Try again

    Q-11: Кое от следните ще изведе `` tra-la-la ‘’? (Маркирайте всички правилни отговори)

  • print('tra' + 2 * '-la')
  • print('tra-' + 2 * 'la-')
  • print('tra-' + 'la-' + 'la')
  • print('tra-' + 'la-la')
  • print('tra-la-' + '-la')
    Q-12: Свържете изразите с техните стойности Try again!
  • 'NA' * 3
  • 'NANANA'
  • 'N' + 3 * 'A'
  • 'NAAA'
  • 'N' * 3 + 'A'
  • 'NNNA'
  • 'N' * 3 + 3 * 'A'
  • 'NNNAAA'

Изразът print((‘N’ + ‘A’) * 2) ще изведе?

Задача - споделяне на печалбата

Тримата приятели се съгласиха да разделят печалбите от съвместното предприятие, така че първият да получи 2/7 от печалбата, вторият 1/3, а третият останалата сума. Общата печалба беше 40000. Завършете програмата, която ще отпечата на два десетични знака приходите на всеки от тримата приятели.