Кратко о Python — 3

python-title

Кратко о Python — 2

Следующий элемент любого языка программирования — типы данных. Напомню, что Python — язык с неявной сильной динамической типизацией, то есть интерпретатор, выполняя программу, сам определяет тип переменной в зависимости от значения, которое ей присвоено. Но при этом преобразовывать типы в подавляющем большинстве случаев нужно явно.

Небольшое замечание: определить тип (точнее, класс) конкретной переменной в Python можно с помощью функции type(переменная).

Типы данных

Числа в Python

В Python 3 встроено три числовых типа: целый, вещественный и комплексный.

Целые числа (int). В Python имеют неограниченную длину [ну, почти — память у компьютера всё же не бесконечна ;-)]. То есть можно, например, совершенно точно посчитать, сколько будет 123456789012345678901234567890 * 9876543210987654321. Преобразовать данные в целый тип можно с помощью функции int().

Заметьте: при преобразовании вещественного числа в целое функция int() просто отбрасывает дробную часть.

Вещественные числа (float). Точность представления ограничена примерно 16 значащими цифрами. Явное преобразование в вещественный тип производится функцией float().

Комплексные числа (complex). Записываются в виде суммы действительной и мнимой частей. Заметьте: мнимая часть обозначается не традиционной для математиков i, а буквой j (привет, электронщикам! ;-)). Например, 5+2j

Для преобразования в комплексное служит функция complex(r,i). Например, print(complex(2*5,1/2)) выведет на экран (10+0.5j).

Строки в Python

Строковые константы создаются как последовательность символов, заключенная в одиночные или двойные кавычки. Например, строками будут "Python is fun" и 'I love python'.

Склеивание строк

В Python операцию конкатенации («склеивания») строк обозначают знаком +.

Например, результатом выпражения "Hello" + " " + "World" будет "Hello World". Строку также можно повторять («умножать»). Например, выражение 'Халва'*3 дает в результате 'ХалваХалваХалва'.

Выбрать отдельный символ строки можно, указав в квадратных скобках его индекс (порядковый номер).  Например, 'Программирование'[0] даст результат 'П' (напомню, что в Python нумерация всегда начинается с нуля). 

Срезы

Если нужно получить фрагмент строки (так называемый срез), в квадратных скобках записывают индекс его начального символа и индекс, следующий за конечным: [ start : stop ]. Например, 'Программирование'[0:3] даст 'Про'.

Можно также вести отсчет от конца строки, указывая отрицательные значения индекса (последний символ имеет индекс -1). Например, 'Python'[-1] даст 'n'.  'Python'[0:-1]  даст 'Pytho'.

Мы также можем выбрать символы не подряд, указав шаг: [ start : stop : step ]

Например,  'Python'[0:-1:2] даст 'Pto', а 'howareyou'[0:-1:3] даст 'hay'.

Если опустить начальный индекс, оставив двоеточие, то считается, что срез нужно начинать от начала строки. Если опустить конечный индекс — до конца строки.

Разделение строки

Чтобы разбить строку на список слов, используется метод split().

sentence = "I love python" 
words = sentence.split() 
print(words)

В результате выполнения такого фрагмента программы будут выведено  ['I','love','python'].

Списки в Python

Список — это структура данных, хранящая упорядоченный набор значений. Список записывается как заключенная в квадратные скобки последовательность значений, разделенных запятыми. Элемент списка может быть получен указанием его индекса в квадратных скобках. Например:

words= ['Hello', 'world', 'how', 'are', 'you'] 
print(words[0])

В результате будет выведено слово 'Hello'.

Можно также получать срезы списка аналогично срезам строк.

На практике обычно в список объединяют элементы одного типа, но Python позволяет включать в них и значения разных типов. В том числе возможно использование вложенных списков. Например:

things= ['нечто', 0, [1, 2], 4.56] 
print(things[2, 1], things[0])

Выведено будет '2 нечто'.

Рассмотрим теперь некоторые полезные методы Python для работы со списками.

append

Метод append добавляет элемент в конец существующего списка. Например:

numbers = [1, 2, 3] 
numbers.append(4) 
print(numbers)

Результат: [1,2,3,4].

insert

Метод insert вставляет новый элемент в заданное место существующего списка. Например:

words ['python', 'fun'] 
words.insert(1, 'is')
      # (индекс, значение)  
print(words)

Результат: ['python','is','fun'].

len

Чтобы узнать количество элементов в списке (его длину), служит функция len. Например:

numbers = [1, 2, 3, 4, 5] 
print(len(numbers))

Результатом будет число 5.

Некоторые другие полезные функции и методы:

  • max(list) — получить максимальный элемент списка.
  • min(list) — получить минимальный элемент списка.
  • list.remove(item) — удалить элемент из списка.
  • list.pop(index) — «извлечь» элемент (удалить из списка и вернуть значение как результат метода); если индекс не указан, по умолчанию берется последний элемент.
  • list.reverse() — реверсировать порядок элементов списка.
  • list.sort() — отсортировать список по возрастанию.

Например:

list = [3, 5, 2, 4, 1]
list.sort()
print(list)
list.reverse()
print(list)

В результате будет выведено:
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]

Для списков также работают операции + и * (аналогично строкам).

Словари в Python

Dictionaries in English? No. It's dictionaries in python. Dictionaries are a special type of data structure in python. They are used to store key-value pairs. So if you put in a key, it gives back the value.

The syntax of dictionaries would look like this:

{ key1: value1, key2 : value,.... }

Let's just say we want to create a phonebook. Then we will create a dictionary like this.

phone_book = {
                ' Anu ' : '8592970000',
                ' Mufi ' :  '7994880000',
                ' Banu ' : '9749552647'
                }

After that, if we go to the contacts and types in the name, it will give you the phone number.

print(phone_book['Anu'])

Then, the output will be: '8592970000' What if we want to store more values along with phone number, say we want to add email too. Then, we use lists inside dictionaries.

phone_book = {
                  ' Anu ' : [ '8592970000', '[email protected]' ]
                  ' Sinu ' :  [ '7994880000', '[email protected]' ]
                  ' Banu ' : [ '9749552647' , '[email protected]' ] } print(phone_book['Anu'])

The output of this code will be: '8592970000', '[email protected]'   

What if we want only the phone number of Anu from this dictionary. Then we use the index of the list.

Let's look at an example:

print(phone_book['Anu'][0])

The output will be: '8592970000'

Добавление элемента в словарь

Let's see how we can add a new key-value to this dictionary. We can do this by writing the following line of code.

phone_book[ 'Adam' ] = '9567974800'

Now, imagine that one person in your phonebook changed his phone number to another one. So, in that case, we want to update our dictionary, right? Let's see how we can do this.

phone_book[ 'Anu' ] = '9567933400'

Now, Anu's phone number is changed to '9567933400'.

Перебор элементов словаря

We can loop through a dictionary using the following syntax.

for k, v in phone_book.items():
      print(k, ":", v)

Here, k and v represent key and value respectively.

Кортежи в Python

Tuples are very similar to lists, except that they are immutable, that is, they can't be changed. Also, they are represented using parentheses, rather than square brackets.

Let's look at an example of a tuple.

exam_register_numbers = ('15001147' , '15001148' )

You can access the values in the tuple with their index. For example:

print( exam_register-number[0] )

The output will be  '15001147'.
Trying to change a value in the tuple causes TypeError since they are immutable. Tuples can be nested within each other, just like lists. Tuples are faster than lists.

Изменяемые и неизменяемые типы данных

Mutable data types are those that can be changed. For example, lists are mutable. Let's look at an example program :

counties = [ 'India' , 'Poland' , 'Germany' ] 
countries[2] = 'U.S.A' 
print(countries)

The output for this code will be  'India', 'Poland', 'U.S.A'

Immutable data types are those that can't be changed. For example, tuples are immutable. Let's look at the example given below.

ucl_semifinal = ('Real_Madrid', 'Liverpool' , 'Bayern_Munich' , 'Roma' ) 
ucl_semifinal[3] = 'Barcelona' 
print(ucl_semifinal)

In this case, the second line shows a TypeError. If you are a Barcelona football club fan, don't take it seriously. I just wrote this code to show you an example.

Множества в Python

A set is an unordered collection of items. Every element is unique and must be immutable. However, the set itself is mutable. We can add or remove items from it.

A set is created by placing all the items inside curly braces { } separated by comma or by using a built-in function set.

For example:

groceries = { 'apple', 'milk', 'chicken'}

Set can have any number of items and they may be of different types. we can't access or change an element of a set using indexing or slicing. The set doesn't support it.

We can add a single element using add() method and multiple elements using the update() method. A particular item can be removed from the set using methods, discard() and remove().

We can remove and return an item using the pop() method (arbitrary item). We can also remove all items from a set using clear.

groceries = {'apple', 'mango', 'apple'} 
print(groceries)

The output will be {'apple','mango'}, since every element is unique

Sets can also perform mathematical set operations like union, intersection, symmetric difference, etc. For example :

A = {2, 3} 
B = {1, 2} 
print(A | B) 
print(A & B) 
print(A - B)

The output of this program will be :
{1,2,3}
{2}
{3}

Assert. Проверка утверждений при отладке

An assertion is a sanity-check that you can turn on or turn off when you have finished testing the program. An expression is tested, and if the result comes up false, an exception is raised. Assertions are carried out through the use of the 'assert' statement. Let's see an example.

print(1) 
assert 2 + 2 == 4 
print(2) 
assert 1 + 1 == 3 
print(3)

The output of this program will be: 1
2
AssertionError

Programmers often place assertion at the start of a function to check for valid input, and after a function call to check for valid output. You can use assertion to make your programs correct.

Форматирование строк в Python

Now, let's move to the next level of Python basics. A little more advanced concepts like string formatting and exception handling.

String formatting provides a powerful way to combine non-strings within strings. It uses the 'format()' method to substitute a number of arguments in the string.   Let's see an example.

fruits = ['apple', 'orange', 'mango'] 
bucket = "The fruits inside the bucket are : {0} , {1} and {2} .".format( fruits[0], fruits[1], fruits[2] ) 
print(bucket)

The output of this piece of code will be: 'The fruits inside the bucket are apple, orange, and mango.

Each argument of the format() method is placed in the string at the corresponding positions, which is determined using the curly braces {}.   String formatting can also be done with named arguments.  

Let's see an example.

goals= "Ronaldo : {rono} , Messi : {leo} ".format(rono=28, leo=27) 
print(goals)

The output will be: 'Ronaldo: 28, Messi: 27'

Let's see one more example case.

print("{0}{1}{0}".format("abra", "cad"))

The output for this code is 'abracadabra'.

Кратко о Python — 4

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *