Em primeiro lugar, a profundidade copiar
1, uma cópia superficial:. A lista é o endereço de memória da primeira camada completamente sem distinção uma nova cópia da lista.
Exemplo:
Lista1 = [
'Egon',
'LXX',
[1,2]
]
1, uma cópia superficial:. A lista é o endereço de memória da primeira camada completamente sem distinção uma nova cópia da lista.
Exemplo:
Lista1 = [
'Egon',
'LXX',
[1,2]
]
list3 = list1.copy ()
print (list3)
print (id (list1))
print (id (list3))
print (list3)
print (id (list1))
print (id (list3))
imprimir (id (lista1 [0]), ID (lista1 [1]), ID (lista1 [2]))
de impressão (ID (list3 [0]), ID (list3 [1]), ID (list3 [2] ))
de impressão (ID (list3 [0]), ID (list3 [1]), ID (list3 [2] ))
Experimento 1: Para os tipos imutáveis de atribuições são criadas novo valor, de modo que a lista original de ponto de índice para o novo
endereço de memória, e não afetará a nova lista
Lista1 [0] = 'EGON'
Lista1 [1] = 'LXX'
lista1 [2] = 123
endereço de memória, e não afetará a nova lista
Lista1 [0] = 'EGON'
Lista1 [1] = 'LXX'
lista1 [2] = 123
Experimento 2: Mas para o tipo de variável, podemos mudar o valor do tipo de variável está incluído, mas o mesmo endereço de memória
que está apontando para a lista original de índice apontar para o endereço de memória ainda, em seguida, seguiu com uma nova lista de
impacto, como segue
list1 [ 2] [0] = 111
Lista1 [2] [. 1] = 222
impressão (Lista1)
da impressão (list3)
que está apontando para a lista original de índice apontar para o endereço de memória ainda, em seguida, seguiu com uma nova lista de
impacto, como segue
list1 [ 2] [0] = 111
Lista1 [2] [. 1] = 222
impressão (Lista1)
da impressão (list3)
Experimentos integrados 1 e 2 pode ser desenhado, a mudança para operar a nova lista com a cópia original da lista, a fim de obter a independência plena abriu
deve haver uma tipos de variáveis podem ser distinguidos com o tipo de mecanismo de cópia imutável, que é uma cópia profunda
deve haver uma tipos de variáveis podem ser distinguidos com o tipo de mecanismo de cópia imutável, que é uma cópia profunda
2, cópia profunda: Depois de entender completamente cópia superficial e cópia profunda em um bom entendimento, uma cópia profunda é a re-abrir um espaço na memória,
fala popular é, uma cópia profunda está redefinindo uma variável, não uma cento no anterior relacionamento, então alterar o conteúdo dentro, eo original não vai mudar.
Exemplo: importação Copiar
Lista1 = [
'Egon',
'LXX',
[1,2]
]
fala popular é, uma cópia profunda está redefinindo uma variável, não uma cento no anterior relacionamento, então alterar o conteúdo dentro, eo original não vai mudar.
Exemplo: importação Copiar
Lista1 = [
'Egon',
'LXX',
[1,2]
]
list3 = copy.deepcopy (list1)
print (id (list1))
print (id (list3))
print (list3)
print (id (list1))
print (id (list3))
print (list3)
Imutável imutável Variável
de impressão (ID (Lista1 [0]), ID (Lista1 [. 1]), ID (Lista1 [2]))
impressão (ID (list3 [0]), ID (list3 [. 1]), ID (list3 [2]))
'' '
4497919088 4498367856 4498449216
4497919088 4498367856 4498595328
' ''
de impressão (list3)
da impressão (ID (Lista1 [2] [0]), ID (Lista1 [2] [. 1]))
da impressão ( ID (list3 [2] [0 ]), ID (list3 [2] [1]))
de impressão (ID (Lista1 [0]), ID (Lista1 [. 1]), ID (Lista1 [2]))
impressão (ID (list3 [0]), ID (list3 [. 1]), ID (list3 [2]))
'' '
4497919088 4498367856 4498449216
4497919088 4498367856 4498595328
' ''
de impressão (list3)
da impressão (ID (Lista1 [2] [0]), ID (Lista1 [2] [. 1]))
da impressão ( ID (list3 [2] [0 ]), ID (list3 [2] [1]))
lista1 [0] = 'EGON'
lista1 [1] = 'LXX'
lista1 [1] = 'LXX'
Lista1 [2] [0] = 111
lista1 [2] [. 1] = 222
impressão (lista1)
da impressão (list3) a ser modificada,
lista1 [2] [. 1] = 222
impressão (lista1)
da impressão (list3) a ser modificada,
Dois, enquanto ciclo
1, o que é o while: é um tipo de pitão na estrutura em anel.
Por que usar o ciclo: para repetir determinado momento humana para fazer alguma coisa, para que o programa deve ter os mecanismos apropriados para controlar o computador, como as pessoas, têm a capacidade de fazer as coisas neste ciclo.
1, o que é o while: é um tipo de pitão na estrutura em anel.
Por que usar o ciclo: para repetir determinado momento humana para fazer alguma coisa, para que o programa deve ter os mecanismos apropriados para controlar o computador, como as pessoas, têm a capacidade de fazer as coisas neste ciclo.
2, enquanto sintaxe loop:
enquanto condição:
Código 1
Código 2
Código 3
Código 1
Código 2
Código 3
enquanto etapas operacionais:
Passo 1: Se a condição for verdadeira, o código de execução de cima para baixo 1,2,3 ...
Passo 2: condição determinação vez concluída para o último código de um é repetido, se a condição do passo 1 Treu Se a condição for falso, o fim do ciclo.
Passo 1: Se a condição for verdadeira, o código de execução de cima para baixo 1,2,3 ...
Passo 2: condição determinação vez concluída para o último código de um é repetido, se a condição do passo 1 Treu Se a condição for falso, o fim do ciclo.
2, enquanto as aplicações de circulação:
Caso I: programa de autenticação de usuário
Caso II: enquanto + usando a pausa
depois de usar um loop while, o código faz mais simplificado, mas o problema é depois que o usuário entra o nome de usuário ea senha corretos não pode ser o fim do ciclo, como se fora o fim de um ciclo que?
Necessidade de utilizar uma ruptura !
depois de usar um loop while, o código faz mais simplificado, mas o problema é depois que o usuário entra o nome de usuário ea senha corretos não pode ser o fim do ciclo, como se fora o fim de um ciclo que?
Necessidade de utilizar uma ruptura !
Caso 3: Caso 3: enquanto nested loop de + ruptura
se os while aninhados muitas camadas, cada camada, a fim de sair do loop você precisa ter uma pausa em cada ciclo camada.
se os while aninhados muitas camadas, cada camada, a fim de sair do loop você precisa ter uma pausa em cada ciclo camada.
Caso Quatro: ao usar um tag de loop + aninhada
por um tempo loop aninhado multi-camadas, se o nosso objectivo é claro é que a uma certa - - loop de camada para sair todas as camadas, há um verdadeiro truque, vamos todos a while as
condições são as mesmas, com uma variável, o valor inicial variável Verdadeiro, - mas um - este variável para o valor do Falso camada, depois do fim do ciclo de todas as camadas.
por um tempo loop aninhado multi-camadas, se o nosso objectivo é claro é que a uma certa - - loop de camada para sair todas as camadas, há um verdadeiro truque, vamos todos a while as
condições são as mesmas, com uma variável, o valor inicial variável Verdadeiro, - mas um - este variável para o valor do Falso camada, depois do fim do ciclo de todas as camadas.
Caso 5: enquanto + continuar a utilizar a ruptura da camada em nome do fim do ciclo, e depois continuar até o fim deste ciclo, o próximo ciclo de acesso directo.
Seis casos: enquanto + usando outra pessoa
na parte de trás, enquanto loop, podemos com a declaração de outra pessoa, quando o loop while devidamente preenchido e deve haver quebra de suspensão da execução, que iria realizar atrás da outra declaração, a
fim de que nós podemos usar outra para verificar ciclo é concluído corretamente.
na parte de trás, enquanto loop, podemos com a declaração de outra pessoa, quando o loop while devidamente preenchido e deve haver quebra de suspensão da execução, que iria realizar atrás da outra declaração, a
fim de que nós podemos usar outra para verificar ciclo é concluído corretamente.
Se a execução é pausa, não irá executar a instrução else.