[Python] gramática básica --- 1, dados básicos

Capítulo Um Gramática Básica

Definição de software

Refere-se a uma coleção de dados e instruções do computador organizados em uma ordem específica.

Dados: alguns dados que o computador pode reconhecer. No disco rígido: avi, doc, txt, py, na memória: constantes, variáveis, funções, objetos, classes.

Instruções : As etapas para manipular esses dados para realizar cálculos de pré-requisitos.

Processo de operação de software

    O código escrito por Python é chamado de código-fonte. O código-fonte pode ser reconhecido diretamente pelo computador? Compile o código-fonte em um código de máquina que o computador possa reconhecer e, em seguida, o computador executa o código de máquina.

Dois modos de operação do software:

  • Modo de operação da interface gráfica

  • Modo de operação de linha de comando

As linguagens de programação de alto nível são divididas em duas categorias:

  • Tipo compilado estaticamente: C, C ++, Java

    • Compilar: O código-fonte deve ser completamente compilado em um arquivo de código de máquina e, em seguida, o arquivo de código de máquina deve ser executado e o programa executado

    • Estático: as variáveis ​​devem ter definições claras de tipo de dados

  • Interpretado dinamicamente: Python, JavaScript, Mathlab, Ruby, Go

    • Explicação: Não há necessidade de converter completamente o código em código de máquina, leia um código-fonte, compile uma frase, execute uma frase

    • Dinâmico: as variáveis ​​não têm uma definição clara de tipo de dados, qualquer variável de tipo de dados pode ser armazenada

1.1 Dados básicos

Inteiro int

Normalmente chamado de inteiro, é zero, positivo e negativo, sem ponto decimal.

Ao expressar números, também podemos usar a forma hexadecimal de dois, oito, dez, hexadecimal

>>> print(10)
10
>>> print(1001)
1001
>>> print(0b1001)
9
>>> print(0o1234)
668
>>> print(0x9C1A)
39962
>>> print(0x9W2Y)
  File "<stdin>", line 1
    print(0x9W2Y)
             ^
SyntaxError: invalid syntax

Nota: o resultado impresso é sempre decimal

     O comprimento inteiro do Python é de 32 bits-4 bytes e geralmente é uma alocação contínua da função id () do espaço de memória

>>> id(0)
2034812832
>>> id(1)
2034812848
>>> id(2)
2034812864

      Quando o Python inicializa o ambiente, ele divide um espaço na memória, dedicado ao acesso de objetos inteiros. É claro que esse espaço não é infinito e os dados que podem ser armazenados são limitados.

>>> id(251)
2034816848
>>> id(260)
13647712
>>> id(-10)
13647696

Pool de objetos de número inteiro pequeno

    Quando o Python é inicializado, ele cria automaticamente um pequeno pool de objetos inteiros, que é conveniente para nós chamarmos e evitar a geração repetida posteriormente. Ele contém apenas -5 ~ 256. Esses números são nossos números mais comumente usados, portanto, são carregados na memória pelo Python antecipadamente. Para uso de inteiros, se não estiver entre -5 e 256, será recriado.

>>> id(-5)
2034812752
>>> id(-6)
13647728
>>> id(256)
2034816928
>>> id(257)
13647648
>>> id(300)
13647696
>>> id(300)
13647712
>>> id(300)
13647680

Tipo de ponto flutuante flutuante

Os números de ponto flutuante são decimais. Se os decimais forem muito longos, eles também podem ser expressos em notação científica.

>>> print(3.14)
3.14
>>> print(1.298765e10)
12987650000.0
>>> print(0.89e-5)
8.9e-06
>>> print(1.23e-8)
1.23e-08

Complexo

Um número complexo é composto de partes reais e imaginárias, a + bj

>>> print(1+2)
3
>>> print(1+2j)
(1+2j)
>>> (1+2j)*(1-2j)
(5+0j)
>>> complex(1,2)*complex(1,-2)
(5+0j)

Bool

Certo e errado, 0 e 1, positivo e negativo, são todos tipos booleanos no sentido tradicional

Em Python, existem apenas dois tipos booleanos True e False

Os tipos booleanos só podem existir em operações lógicas e operações de comparação

>>> True + False
1
>>> True - False
1
>>> 3 > 2
True
>>> 2 < 1
False
>>> 3 > 2 and 2 < 1
False

Nenhum 空 值 NoneType

O valor nulo não pode ser entendido como o número 0, é o conjunto vazio φ, o utilizamos principalmente na criação de sequências e na programação orientada a objetos.

>>> None + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
>>> [None] * 10  # 创建一个长度为10的列表 没有数据 但有空间
[None, None, None, None, None, None, None, None, None, None]

String str

Existem três formas de sequência de caracteres: aspas simples, aspas duplas, aspas triplas (geralmente usadas em comentários)

>>> print("HelloWorld")
HelloWorld
>>> print('你好')
你好
>>> print(" '' ")
 ''
>>> print(' "" ')
 ""
>>> print(' ' ')
  File "<stdin>", line 1
    print(' ' ')
               ^
SyntaxError: EOL while scanning string literal
>>> print(' \' ')
 '

 

Fugas

  • \\: Barra invertida

  • \':apóstrofo

  • \":Aspas duplas

  • \n: Embrulho

  • \t: Guia horizontal

>>> print(' \' ')
 '
>>> print("\")
  File "<stdin>", line 1
    print("\")
             ^
SyntaxError: EOL while scanning string literal
>>> print("\\")
\

variável

Variável : a quantidade pela qual o valor mudará durante a execução do programa.

Constante: o valor pelo qual o valor não mudará durante a execução do programa. (Literal, dados que aparecem diretamente no código)

Independentemente de se tratar de uma variável ou constante, um espaço é aberto na memória quando é criado para salvar seu valor.

# Java中基本数据类型变量a,b 和 引用数据类型变量c d e
int a = 3;
int b = 8;
Object c = new Object();
Object d = new Object();
Object e = c;

Em Python, tudo é um objeto!

>>> a = 1
>>> b = 1
>>> c = 1
>>> a == b
True
>>> id(1)
2034812848
>>> id(a)
2034812848
>>> id(b)
2034812848
>>> d = a
>>> d == b
True

 

>>> num1 = 300
>>> num2 = 300
>>> num3 = 300
>>> id(num1)
13647712
>>> id(num2)
13647696
>>> id(num3)
13647680
>>> num1 == num2
True

 Você não pode comparar cegamente o endereço, mas também comparar se o conteúdo dos dois objetos é igual.

No espaço da variável, apenas o endereço de um determinado objeto de dados pode ser armazenado, e a variável é apenas uma referência ao objeto

As variáveis ​​devem ser atribuídas antes de serem chamadas.

>>> print(num4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'num4' is not defined

As variáveis ​​podem ser atribuídas continuamente:

>>> a=b=c=10
>>> a
10
>>> b
10
>>> c
10
>>> a,b,c =10,20,30
>>> a
10
>>> b
20
>>> c
30
>>> a=b=c=1000
>>> id(a)
13647776
>>> id(b)
13647776
>>> id(c)
13647776
>>> a=1000
>>> b=1000
>>> c=1000
>>> id(a)
13647792
>>> id(b)
13647648
>>> id(c)
13647824

 A própria variável em Python não tem restrição de tipo de dados, é apenas uma referência a um objeto e armazena o endereço de memória dos dados do objeto

Apenas os tipos de dados são diferenciados entre os objetos de dados.

 

Identificador

O assim chamado identificador é o nome que damos às variáveis, constantes, funções, classes, etc.

As seguintes disposições:

  • O primeiro caractere deve ser uma letra ou sublinhado_

    • Embora Python suporte chinês, também podemos usar chinês para nomear, mas não recomendamos

    • As palavras que começam com um sublinhado têm um significado especial na programação orientada a objetos privada

  • As outras partes do identificador consistem em letras, números e sublinhados

  • Identificadores diferenciam maiúsculas de minúsculas

  • Os nomes das variáveis ​​são todos minúsculos e os nomes das constantes são todos maiúsculos (não há constante PI = 3.14 em Python, e é essencialmente uma variável)

  • O nome da função está em minúsculas e sublinhado, o que é equivalente ao nome da variável

  • O nome da classe usa o método de nomenclatura big camel case: se o nome consistir em várias palavras, a primeira letra de cada palavra é maiúscula

变量的命名不要使用关键字和内置函数的名称!

>>> True = 2
  File "<stdin>", line 1
SyntaxError: cannot assign to True
>>> if = 3
  File "<stdin>", line 1
    if = 3
       ^
SyntaxError: invalid syntax

 

Palavra-chave

Refere-se a palavras que receberam significados especiais por linguagens de programação de alto nível.

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', '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']

Também não pode usar funções integradas (alterar o nome das funções integradas para outros fins)

>>> id(2)
2034812864
>>> id = 3
>>> id + 1
4
>>> id(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

Em Python, tudo é um objeto e as próprias funções são objetos!

>>> id(2)
2034812864
>>> id(id)
45545184
>>> abc = id
>>> abc(1)
2034812848
>>> id(1)
2034812848
>>> id = 10
>>> print(id)
10
>>> abc(id)
2034812992

Quantas funções integradas existem?

>>> dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']

Comente

Nota: Um pedaço de informação de texto usado pelo programa não é considerado parte do programa.

  • Comentário de uma linha : # conteúdo do comentário

  • Comentários de várias linhas : vários comentários de uma linha

  • Nota do documento : "" "O conteúdo da nota pode explicar as informações da função de informação da classe" ""

Acho que você gosta

Origin blog.csdn.net/trichloromethane/article/details/107800214
Recomendado
Clasificación