Capítulo 2: Variáveis e tipos de dados em Python
1. Codificação binária e de caracteres
-
O conteúdo de armazenamento de bits é 0 e 1; bit é a menor unidade de armazenamento no computador
-
Dados: Cada símbolo (inglês, número ou símbolo, etc.) ocupará um registro de 1Bytes e cada chinês ocupará 2Bytes
-
Conversão binária: 1B(Byte)=8b(bit) ; 1KB=1024B
-
[Tabela ASCII Online]( Tabela ASCII | Tutorial Rookie (runoob.com) )
-
Desenvolvimento de Codificação de Caracteres
2. Identificadores e palavras reservadas em Python
2.1 Palavras reservadas
- o que são palavras reservadas
- Existem algumas palavras que recebem significados específicos pelo Python e essas palavras não
- Ver palavras reservadas
import keyword
print(keyword.kwlist)
- quais são as palavras reservadas
['False', 'None', 'True', '__peg_parser__', 'and', 'as',
'assert', 'async', 'await', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
'from', 'global', 'if', 'import', 'in', 'is', 'lambda',
'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield']
2.2 Identificadores
- o que é um identificador
- Variáveis, funções, classes, módulos e outros objetos são nomeados após identificadores
- Regras de Nomenclatura de Identificadores
- Contém apenas letras, números, sublinhados_
- não pode começar com um número
- não pode ser uma palavra reservada
- Estritamente sensível a maiúsculas e minúsculas
3. Variáveis e tipos de dados em Python
3.1 Variáveis
-
o que é uma variável
-
Uma variável é uma caixa rotulada na memória na qual você coloca os dados de que precisa
-
name = "Python"
-
Entre eles: nome - nome da variável; = - operador de atribuição ; Python - valor
-
-
-
componentes de variáveis
- Identificação: Identifique o endereço de memória onde o objeto está armazenado, use a função interna id(obj) para obter
- Type: Indica o tipo de dados do objeto, que pode ser obtido usando a função interna type(obj)
- Value: Indica os dados específicos armazenados no objeto, e o valor pode ser impresso usando a função print(obj)
-
Gráfico de análise de memória
-
análise de código
- escrita de código
name = '巧克力酸奶' print('标识', id(name)) print('类型', type(name)) print('值', name)
- resultado de saída
标识 2830801861584 类型 <class 'str'> 值 巧克力酸奶
3.2 Atribuição múltipla de variáveis
- Após várias atribuições, a variável apontará para o novo espaço
- diagrama de memória
-
análise de código
- escrita de código
name = "玛利亚" print(id(name)) name = "楚留香" print(name) print(id(name))
- Análise de resultados
2151611071440 楚留香 2151611071728
3.3 Tipos de Dados
- tipos de dados comuns
tipo de dados | representação de personagem | exemplo |
---|---|---|
tipo inteiro | int | 98 |
tipo de ponto flutuante | flutuador | 3.1415926 |
tipo booleano | bool | Verdadeiro falso |
tipo de string | str | "A vida é muito curta, eu uso Python" |
- Use a função type() para gerar o tipo de dados
3.3.1 Tipos inteiros
- Inglês é integer, abreviado como int , que pode representar números positivos, números negativos e zero
- Diferentes representações básicas de números inteiros
A plataforma da janela,
Win+R
após a entradacalc
, pode despachar rapidamente a calculadora
hexadecimal | número base | A cada poucos dias | Manifestações |
---|---|---|---|
decimal (padrão) | 0,1,2,3,4,5,6,7,8,9 | 10 | 120 |
binário | 0,1 | 2 | 0b101011 |
octal | 0,1,2,3,4,5,6,7 | 8 | 0o166 |
hexadecimal | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F | 16 | 0x76 |
-
código de demonstração
- escrita de código
# 整数类型,正数,负数,0 n1 = 90 n2 = -90 n3 = 0 print(n1, type(n1)) print(n2, type(n2)) print(n3, type(n3)) # 正数可以表示为二进制,十进制,八进制,十六进制 print("十进制", 118) print("二进制", 0b1010111) print("八进制", 0o176) print("十六进制", 0x78A2)
- Análise de resultados
90 <class 'int'> -90 <class 'int'> 0 <class 'int'> 十进制 118 二进制 1010111 二进制 87 八进制 126 十六进制 30882 Process finished with exit code 0
3.3.2 Tipo de ponto flutuante
-
O inglês é float , e o número de ponto flutuante é composto de uma parte inteira e uma parte decimal
-
Armazenamento de ponto flutuante não é determinístico
- Ao usar números de ponto flutuante para cálculos, pode haver casos em que o ponto decimal é incerto
- Solução: importar módulo decimal
-
código de demonstração
- escrita de código
a = 3.14159 print(a, type(a)) # 小数点位不确定 n1 = 1.1 n2 = 2.2 n3 = 2.1 print(n1 + n2) print(n1 + n3) # 解决方案:**导入模块decimal** from decimal import Decimal print(Decimal("1.1")+Decimal("2.2"))
- Análise de resultados
3.14159 <class 'float'> 3.3000000000000003 3.2 3.3 Process finished with exit code 0
3.3.3 Tipo booleano
-
O nome inglês boolean, abreviado como bool , é usado para representar valores verdadeiros ou falsos
-
Verdadeiro é verdadeiro , Falso é falso
-
Valores booleanos podem ser convertidos em números positivos
- Verdadeiro—>1
- Falso——>0
-
código de demonstração
- escrita de código
f1 = True f2 = False print(f1, type(f1)) print(f2, type(f2)) # bool型可以转成整型运算 print(f1 + 1) print(f2 + 1)
- Análise de resultados
True <class 'bool'> False <class 'bool'> 2 1 Process finished with exit code 0
3.3.4 Tipo de string
-
Strings também são conhecidas como sequências imutáveis de caracteres
-
Pode ser definido usando aspas simples
' '
, aspas duplas" "
, aspas triplas''' ''
' ou""" """
-
Strings definidas por aspas simples e duplas devem estar em uma linha
-
O tipo de caractere definido por aspas triplas pode ser distribuído em várias linhas consecutivas
-
código de demonstração
- escrita de código
str1 = '人生苦短,我用Python' str2 = "人生苦短,我用Python" str3 = """人生苦短, 我用Python""" str4 = '''人生苦短, 我用Python''' print(str1, type(str1)) print(str2, type(str2)) print(str3, type(str3)) print(str4, type(str4))
- Análise de resultados
人生苦短,我用Python <class 'str'> 人生苦短,我用Python <class 'str'> 人生苦短, 我用Python <class 'str'> 人生苦短, 我用Python <class 'str'> Process finished with exit code 0
3.4 Conversão de tipo de dados
- Por que a conversão de tipo de dados é necessária
- Necessário ao unir dados de diferentes tipos de dados
- Funções para conversão de tipo de dados
Nome da função | efeito | Precauções | exemplo |
---|---|---|---|
str() | Converter outros tipos de dados em strings | Também pode ser convertido com aspas | str(123) 123' |
int() | Converter outros tipos de dados em números inteiros | 1. Texto e strings decimais não podem ser convertidos em números inteiros 2. Números de ponto flutuante são convertidos em números inteiros: apagar e arredondar |
int('123') |
flutuador() | Converter outros tipos de dados em números de ponto flutuante | 1. A classe de texto não pode ser convertida em um número inteiro 2. O número inteiro é convertido em um número de ponto flutuante com cauda de 0,0 |
float('9.9') float(9) |
- Diagrama de Transformação de Dados
-
código de demonstração
- escrita de código
name = '张三' age = 20 print(type(name), type(age)) # 说明name和age的数据类型不相同 # print('我叫'+name+'今年'+age+'岁') # TypeError: can only concatenate str (not "int") to str print('我叫' + name + ',今年' + str(age) + '岁') print('------------str():将其他类型转换成str类型--------------') a = 10 b = 198.8 c = False print(type(a), type(b), type(c)) print(str(a), str(b), str(c), type(str(a)), type(str(b)), type(str(c))) print('------------int():将其他类型转换成int类型--------------') s1 = '128' f1 = 98.1 s2 = '76.77' ff = True s3 = 'Hell0' print(type(s1), type(f1), type(s2), type(ff), type(s3)) print(int(s1), type(int(s1))) # 将str转换成int类型,字符串为 数字串 print(int(f1), type(int(f1))) # 将float转换成int类型,截取整数部分,舍掉小数部分 # print(int(s2), type(int(s2))) # ValueError: invalid literal for int() with base 10: '76.77'mm,字符串为小数串 print(int(ff), type(int(ff))) # print(int(s3), type(int(s3))) ValueError: invalid literal for int() with base 10: 'Hell0',字符串必须为整数数字串才能转换 print('------------float():将其他类型转换成float类型--------------') ss1 = '128.98' ss2 = '76' fff = True ss3 = 'Hell0' i = 98 print(type(ss1), type(ss2), type(fff), type(ss3), type(i)) print(float(ss1),type(float(ss1))) print(float(ss2),type(float(ss2))) print(float(fff),type(float(fff))) # print(float(ss3),type(float(ss3))) # ValueError: could not convert string to float: 'Hell0' print(float(i),type(float(i)))
- Análise de resultados
<class 'str'> <class 'int'> 我叫张三,今年20岁 ------------str():将其他类型转换成str类型-------------- <class 'int'> <class 'float'> <class 'bool'> 10 198.8 False <class 'str'> <class 'str'> <class 'str'> ------------int():将其他类型转换成int类型-------------- <class 'str'> <class 'float'> <class 'str'> <class 'bool'> <class 'str'> 128 <class 'int'> 98 <class 'int'> 1 <class 'int'> ------------float():将其他类型转换成float类型-------------- <class 'str'> <class 'str'> <class 'bool'> <class 'str'> <class 'int'> 128.98 <class 'float'> 76.0 <class 'float'> 1.0 <class 'float'> 98.0 <class 'float'> Process finished with exit code 0
4. Comentários em Python
-
o que é uma nota
- O texto anotado que explica a função do código no código pode melhorar a legibilidade do código
- O conteúdo do comentário será ignorado pelo interpretador Python
-
Tipos de anotação comuns
- Comentários de linha única --> começam com **#** até o final de uma nova linha
- Comentário de várias linhas --> Não há marca de comentário de várias linhas separada, e o código entre um par de aspas triplas é chamado de comentário de várias linhas
- Comentário da instrução de codificação chinesa --> adicionar comentário da instrução chinesa no início do arquivo para especificar o formato de codificação do arquivo de código-fonte
- codificação: gbk
- codificação: UTF-8
-
código de demonstração
- escrita de código
# 输出功能(单行注释) print('hello') '''嘿嘿, 这里是多行注释 啦啦啦啦啦'''