I. Обзор

Переменные в Python не нужно объявлять. Каждой переменной перед использованием должно быть присвоено значение, и переменная будет создана только после присвоения значения.

В Python переменная — это просто переменная; у неё нет типа. «Тип», о котором мы говорим, — это тип объекта в памяти, на который указывает переменная.

Знак равенства (=) используется для присвоения значений переменным.

Слева от оператора знака равенства (=) находится имя переменной, а справа от оператора знака равенства (=) — значение, хранящееся в переменной.

Например:

#!/usr/bin/python3
 
counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "example"     # 字符串
a = b = c = 1          # 同时为多个变量赋值
a,b,c=1,2,'hello'      # 为多个对象指定多个变量

II. Стандартные типы данных

Python3 имеет шесть стандартных типов данных:

Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Sets(集合)
Dictionary(字典)

2.1 Число

Python3 поддерживает int, float, bool и complex (комплексные числа).

Существует только один целочисленный тип — int, представляемый как длинное целое. Нет типа Long, как в Python2.

Встроенную функцию type() можно использовать для запроса типа объекта, на который ссылается переменная.

>>> a,b,c,d=5,6.7,true,2+3j
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> a,b,c,d=5,6.7,True,2+3j
>>> print(type(a),type(b),type(c),type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

Примечание:

  • 1. Python может одновременно присваивать значения нескольким переменным, например: a, b = 1, 2.
  • 2. Переменная может указывать на объекты разных типов посредством присваивания.
  • 3. Деление чисел (/) всегда возвращает число с плавающей точкой (print(2/4) выводит 0.5); чтобы получить целое число, используйте оператор //.
  • 4. В смешанных вычислениях Python преобразует целые числа в числа с плавающей точкой. 5. Логический тип: True и False, 1 и 0.
  • 6. Оператор del может удалять определённые объекты, например: del a,b.

2.2 Строка

Строки в Python заключаются в одинарные кавычки (') или двойные кавычки ("), а обратные слеши используются для экранирования специальных символов.

Синтаксис среза строки следующий:

variable[start_index:end_index]

Индекс начинается с 0, а -1 — это начальная позиция с конца.

Знак плюс (+) — это оператор конкатенации строк, а звёздочка (*) означает повторение текущей строки; число после неё — количество повторений.

Пример:

#!/usr/bin/python3
# -*- coding:UTF-8 -*-

str='hello,world!'

print(str)                 # 输出字符串
print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第五个的字符
print(str[2:])             # 输出从第三个开始的后的所有字符
print(str * 2)             # 输出字符串两次
print(str + '你好')        # 连接字符串

print('------------------------------')

print('hello\nworld')      # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nworld')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

Результат выполнения:

hello,world!                  
hello,world                  
h                  
llo
llo,world!
hello,world!hello,world!
hello,world!你好

------------------------------

hello
world
hello\nworld

Примечание:

  • 1. Обратные слеши можно использовать для экранирования. Использование r предотвращает экранирование обратных слешей.
  • 2. Строки можно объединять с помощью оператора + и повторять с помощью оператора *.
  • 3. В Python есть два способа индексации строк: начиная с 0 слева направо и начиная с -1 справа налево.
  • 4. Строки в Python нельзя изменять.
  • 5. В Python нет отдельного типа символа; символ — это строка длиной 1.

2.3 Список

Список — наиболее часто используемый тип данных в Python.

Списки могут реализовать большинство структур данных класса коллекций.

Типы элементов в списке могут быть разными. Он поддерживает числа, строки и может даже содержать списки (так называемая вложенность).

Список записывается в квадратных скобках [] с элементами, разделёнными запятыми.

Как и строки, списки можно индексировать и срезать. После среза списка возвращается новый список, содержащий нужные элементы.

Синтаксис среза списка выглядит следующим образом:

variable[start_index:end_index]

Индекс начинается с 0, а -1 — это начальная позиция с конца.

Знак плюс (+) — это оператор конкатенации списков, а звёздочка (*) — операция повторения.

Пример:

#!/usr/bin/python3
# -*- coding:UTF-8 -*-

list=['hello',357,6.6,'world']
ttlist=[123,'new']

print(list)                # 输出完整列表
print(list[0])             # 输出列表第一个元素
print(list[1:3])           # 输出从第2个开始到第3个元素
print(list[2:])            # 输出从第三个开始的后的所有元素
print(ttlist * 2)          # 输出两次列表
print(str + ttlist)        # 连接列表

Результат выполнения:

['hello', 357, 6.6, 'world']
hello
[357, 6.6]
[6.6, 'world']
[123, 'new', 123, 'new']
['hello', 357, 6.6, 'world', 123, 'new']

В отличие от строк Python, элементы списка можно изменять:

>>> new=[1,2,3,4,5,'hi']       
>>> new
[1, 2, 3, 4, 5, 'hi']
>>> new[1]='hehe'           #改变列表new中的第2个元素为hehe
>>> new
[1, 'hehe', 3, 4, 5, 'hi']
>>> new[2:4]=[8,10]         #改变列表new中的第3/4个元素为8,9
>>> new
[1, 'hehe', 8, 10, 5, 'hi'
>>> new[2:4]=[]            #删除列表new中的第3、4个元素
>>> new
[1, 'hehe', 5, 'hi']
>>> new[2:3]=[]

Примечание:

  • 1. Списки записываются в квадратных скобках, элементы разделяются запятыми.
  • 2. Как и строки, списки можно индексировать и срезать.
  • 3. Списки можно конкатенировать с помощью оператора +.
  • 4. Элементы в списке можно изменять.

2.4 Кортеж

Кортежи похожи на списки, за исключением того, что элементы кортежа нельзя изменять.

Кортежи записываются в круглых скобках () с элементами, разделёнными запятыми.

Типы элементов в кортеже также могут быть разными.

Кортежи похожи на строки тем, что их можно индексировать, причём индекс начинается с 0, а -1 обозначает позицию с конца. К ним также можно применять срезы.

На самом деле, строку можно рассматривать как особый вид кортежа.

Создание кортежа, содержащего 0 или 1 элемент, имеет особенности, поэтому существуют дополнительные правила синтаксиса:

tup1 = ()     # 空元组
tup2 = (20,)  # 一个元素,需要在元素后添加逗号

Строки, списки и кортежи относятся к последовательностям.

Примечание:

  • 1. Как и в строках, элементы кортежа нельзя изменять.
  • 2. Кортежи также можно индексировать и использовать срезы таким же образом.
  • 3. Обратите внимание на специальные правила синтаксиса для создания кортежей с 0 или 1 элементом.
  • 4. Кортежи также можно объединять с помощью оператора +.

2.5 Множества

Множество — это неупорядоченная последовательность уникальных элементов.

Его основные функции — проверка принадлежности и удаление повторяющихся элементов.

Вы можете использовать фигурные скобки { } или функцию set() для создания множества. Примечание: чтобы создать пустое множество, необходимо использовать set() вместо { }, потому что { } используется для создания пустого словаря.

Пример:

#!/usr/bin/python3

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student)  # 输出集合,重复的元素被自动去掉

# 成员测试
if ('Rose' in student):
    print('Rose 在集合中')
else:
    print('Rose 不在集合中')

# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)
print(b)
print(a - b)  # a和b的差集
print(b - a)  # b和a的差集
print(a | b)  # a和b的并集
print(a & b)  # a和b的交集
print(a ^ b)  # a和b中不同时存在的元素

Результат вывода:

{'Jim', 'Mary', 'Rose', 'Tom', 'Jack'}
Rose 在集合中
{'d', 'c', 'r', 'a', 'b'}
{'l', 'c', 'm', 'a', 'z'}
{'d', 'b', 'r'}
{'l', 'm', 'z'}
{'l', 'd', 'c', 'r', 'm', 'a', 'b', 'z'}
{'c', 'a'}
{'l', 'd', 'r', 'm', 'b', 'z'}

2.6 Словарь

Словарь — ещё один очень полезный встроенный тип данных в Python.

Списки — это упорядоченные коллекции объектов, тогда как словари — неупорядоченные коллекции объектов.

Разница между ними заключается в том, что доступ к элементам словаря осуществляется по ключу, а не по смещению.

Словарь — это тип отображения. Словари обозначаются с помощью { } и представляют собой неупорядоченную коллекцию пар ключ: значение.

В качестве ключей должны использоваться неизменяемые типы.

В одном словаре ключи должны быть уникальными.

Пример:

#!/usr/bin/python3

dict = {}
dict['one'] = "1 - hello,world"
dict[2] = "2 - 嘿嘿"

tinydict = {'name': 'lucy', 'code': 100, 'class': '5年级6班'}

print(dict['one'])  # 输出键为 'one' 的值
print(dict[2])  # 输出键为 2 的值
print(tinydict)  # 输出完整的字典
print(tinydict.keys())  # 输出所有键
print(tinydict.values())  # 输出所有值

Результат вывода:

1 - hello,world
2 - 嘿嘿
{'name': 'lucy', 'code': 100, 'class': '5年级6班'}
dict_keys(['name', 'code', 'class'])
dict_values(['lucy', 100, '5年级6班'])

Встроенные функции:

get: возвращает соответствующее значение по ключу; если значение не найдено, возвращает None, не вызывая ошибку.

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.get('k1')
>>> print(v)
v1

clear: очищает словарь.

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.clear()
>>> print(dic)
{}
>>> print(v)
None

copy: копирование (поверхностное копирование).

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.copy()
>>> print(v)
{'k1':'v1','k2':'v2'}

pop: удалить и получить соответствующее значение.

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.pop('k1')
>>> print(dic)
{'k2':'v2'}
>>> print(v)
v1

popitem: случайным образом удалить пару ключ-значение и получить удалённый ключ и значение.

>>> dic = {'k1':'v1','k2':'v2'}
>>> v = dic.popitem()
>>> print(dic)
{'k1':'v1'}
>>> print(v)
{'k2':'v2'}

setdefault: добавить; если ключ существует, ничего не делать.

>>> dic = {'k1':'v1','k2':'v2'}
>>> dic.setdefault('k3','v3')
>>> print(dic)
{'k1':'v1','k2':'v2','k3':'v3'}

update: пакетно добавить или изменить.

dic = {'k1':'v1','k2':'v2'}
dic.update({'k3':'v3','k4':'v4'})
print(dic)
{'k1':'v1','k2':'v2','k3':'v3','k4':'v4'}

Примечание:

  • 1. Словарь — это тип отображения, а его элементы — пары ключ-значение.
  • 2. Ключи словаря должны быть неизменяемыми типами и не могут повторяться.
  • 3. Используйте { } для создания пустого словаря.

III. Преобразование типов данных

Для преобразования типов данных достаточно использовать тип данных в качестве имени функции.

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

Функция Описание
int(x [,base]) Преобразовать x в целое число.
float(x) Преобразовать x в число с плавающей запятой.
complex(real [,imag]) Создать комплексное число.
str(x) Преобразовать объект x в строку.
repr(x) Преобразовать объект x в строку-выражение.
eval(str) Используется для вычисления допустимого выражения Python в строке и возврата объекта.
tuple(s) Преобразовать последовательность s в кортеж.
list(s) Преобразовать последовательность s в список.
set(s) Преобразовать в изменяемое множество.
dict(d) Создать словарь. d должен быть последовательностью кортежей (key, value).
frozenset(s) Преобразовать в неизменяемое множество.
chr(x) Преобразовать целое число в символ.
unichr(x) Преобразовать целое число в символ Unicode.
ord(x) Преобразовать символ в его целочисленное значение.
hex(x) Преобразовать целое число в шестнадцатеричную строку.
oct(x) Преобразовать целое число в восьмеричную строку.

Адрес оригинальной статьи: https://segmentfault.com/a/1190000009722187