Esta série de notas para aprender Python por conta própria, se houver erros, corrija-me
Selecione o resultado
A estrutura de seleção determina qual ramificação executar ao julgar se a condição é verdadeira. Existem muitas formas de estrutura de seleção, divididas em: ramificação única, ramificação dupla e ramificações múltiplas. O fluxograma é o seguinte:
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo de link anti-leech. É recomendado salvar a imagem e carregá-la diretamente (img-9jFYUifK-1610702861337) (. \ Images \ image-20210115152646962.png)]
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo de link anti-leech. É recomendável salvar a imagem e carregá-la diretamente (img-RcXKw5zK-1610702861353) (. \ Images \ image-20210115152744007.png)]
Estrutura de seleção de filial única
A forma gramatical do resultado de um único ramo da instrução if é a seguinte:
se expressão condicional:
Declaração / Bloco
entre eles:
- Expressões condicionais: podem ser expressões lógicas, expressões relacionais, expressões aritméticas, etc.
- Instrução / bloco de instrução: pode ser uma instrução ou várias instruções. Várias declarações, o recuo deve estar alinhado
num = input('请输入一个数字:')
if int(num)<10:
print(num)
Explicação detalhada das expressões condicionais
Na estrutura de seleção e loop, o valor da expressão condicional é False, conforme a seguir:
Falso 0 0,0 Valor nulo Nenhum, objeto de sequência vazio (lista vazia, conjunto vazio, dicionário vazio, string vazia), objeto de intervalo vazio, objeto de iteração vazio
Todos os outros casos são verdadeiros.
if 3: #整数作为条件表达式
print('ok')
a = [] #列表作为表达式 空列表为False
if a:
print('空列表 False')
s = 'False' #非空字符串
if s:
print('非空字符串')
c = 9
if 3<c and c<20:
print("3<c and c<20")
if True: #布尔值
print("True")
Expressões condicionais não podem ter operadores de atribuição =
Estrutura de seleção de ramo duplo
se expressão condicional:
Bloco de declaração / declaração
outro:
Declaração
num = input('请输入一个数字')
if int(num)<10:
print(num)
else:
print('数字太大')
Operador ternário condicional
Python fornece um operador ternário, usado em algumas situações simples de atribuição de ramificação dupla, a sintaxe do operador condicional ternário:
O valor se a condição for verdadeira if (expressão condicional) senão o valor quando a condição for falsa
num = input('请输入一个数字')
print(num if int(num)<10 else '数字太大')
Estrutura de seleção de vários ramos
se a expressão condicional 1:
Declaração / Bloco
elif expressão condicional 2:
Declaração / Bloco
…
outro:
Declaração / Bloco
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo de link anti-leech. Recomenda-se salvar a imagem e carregá-la diretamente (img-zI3Enszj-1610702861355) (. \ Images \ image-20210115160316557.png)]
score = int(input('请输入分数'))
grade = ''
if score<60:
grade = '不及格'
elif score>=60 and score<70:
grade='及格'
elif score>=70 and score<80:
grade = '良好'
else:
grade = '优秀'
print('分数是{0},等级是{1}'.format(score,grade))
Selecione o aninhamento da estrutura
A estrutura de seleção pode ser aninhada, ao utilizá-la deve-se atentar para o controle do recuo dos diferentes níveis dos blocos de código, pois o recuo determina a subordinação do código.
se expressão 1:
Bloco de declaração 1
Se a expressão 2:
Bloco de declaração 2:
Mais:
Bloco de declaração
outro:
Bloco de declaração
Estrutura de loop
A estrutura de loop usa a execução repetida de uma ou mais instruções. Lógica de expressão: se as condições forem atendidas, as instruções no corpo do loop serão executadas repetidamente. Após cada execução, ele julgará se a condição é Verdadeira e, se for Verdadeira, o loop se repetirá.
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo de link anti-leech. Recomenda-se salvar a imagem e carregá-la diretamente (img-IIricoFW-1610702861357) (. \ Images \ image-20210115161743080.png)]
As instruções no corpo do loop devem conter pelo menos instruções que alterem a expressão condicional, de forma que o loop tenda a terminar, caso contrário, ele se tornará um loop sem fim.
loop while
while 判断条件(condition): 执行语句(statements)……
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和为: %d" % (n,sum))
Loop infinito
Podemos alcançar um loop infinito definindo a expressão condicional para nunca ser falsa
var = 1
while var == 1 : # 表达式永远为 true
num = int(input("输入一个数字 :"))
print ("你输入的数字是: ", num)
print ("Good bye!")
Você pode usar CTRL + C para sair do loop infinito atual.
O loop infinito é muito útil para solicitações de clientes em tempo real no servidor.
for loop e travessia de objetos iteráveis
O loop for geralmente é usado para percorrer um objeto iterável. O formato da sintaxe do loop for é o seguinte:
para variável em objeto iterável:
Declaração do corpo do laço
Objeto iterável
- Sequência: o ancestral de uma lista de strings
- dicionário
- Alinhamento do iterador
- Objeto gerador
for x in list('slp'):
print(x)
d = {
'name':'slp','age':18,'address':'bj'}
for x in d: #遍历所有的key
print(x)
for x in d.keys():#遍历字典所有的key
print(x)
for x in d.values():#遍历字典所有的value
print(x)
for x in d.items():#遍历字典所有的键值对
print(x)
objeto de alcance
O objeto de intervalo é um objeto iterador, usado para gerar um intervalo especificado de números, o formato é: intervalo (início, fim [, etapa])
sum_all=0
sum_even=0
sum_odd=0
for num in range(101):
sum_all +=num
if num%2 ==0:
sum_even+=num
else:
sum_odd+=num
print(sum_all,sum_even,sum_odd)
Loop aninhado
Um loop pode ser incorporado em outro loop, geralmente chamado de loop aninhado ou múltiplos loops
por exemplo: imprimir 99 tabuada de multiplicação:
for m in range(1,10):
for n in range(1,m+1):
print(m,'*',n,'=',m*n ,end='\t')
print('')
declaração de quebra
A instrução break pode ser usada em loops while e for para encerrar o loop inteiro. Quando há aninhamento, a instrução break só pode pular do loop mais próximo
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo de link anti-leech. É recomendado salvar a imagem e carregá-la diretamente (img-nB6cRFES-1610702861364) (. \ Images \ E5A591EF-6515-4BCB-AEAA- A97ABEFC5D7D.jpg)]
while True:
a = input('输入Q退出')
if a.upper() == 'Q':
print('退出')
break
else:
print('继续')
continuar declaração
continue é usado para terminar este loop e continuar na próxima vez. O aninhamento também é aplicado e o loop mais recente.
[Falha na transferência da imagem do link externo. O site de origem pode ter um mecanismo de link anti-leech. É recomendado salvar a imagem e carregá-la diretamente (img-aqfENPtv-1610702861366) (. \ Images \ 8962A4F1-B78C-4877-B328- 903366EA1470.jpg)]
n = 5
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print('循环结束。')
empNum = 0
salarySum = 0;
salarys = []
while True:
s = input('请输入员工的工资(q或Q结束)')
if s.upper() =='Q':
print('录入完成 退出')
break;
if float(s)<0:
continue;
empNum+=1
salarys.append(float(s))
salarySum +=float(s)
print('员工数{0}'.format(empNum))
print('录入薪资',salarys)
print('平均薪资{0}'.format(salarySum/empNum))
declaração de aprovação
Python pass é uma instrução vazia para manter a integridade da estrutura do programa.
passar não faz nada, geralmente é usado como uma declaração de espaço reservado,
Otimização de código de loop
- Minimize cálculos desnecessários dentro do loop
- No loop aninhado, tente reduzir a contagem do loop interno e levante-o o máximo possível
- A consulta de variável local é mais rápida, tente usar variáveis locais
Outros métodos de otimização
- Concatene várias strings, use join em vez de +
- Insira e exclua elementos da lista, tente operar no final
Use zip () para iterar em paralelo
Podemos usar a função zip () para iterar várias sequências em paralelo, e a função zip () irá parar quando a sequência mais curta for usada
names = ('a','b','c')
ages =(16,10)
jobs = ('teacher','programmer','drive')
for name,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))
Pesquise [Zixin] no WeChat ou digitalize o código QR abaixo para fazer amigos e progredir juntos. O artigo é atualizado continuamente. No momento, estou organizando as notas de estudo das centenas de batalhas do Python e espero mais atualizações no futuro.