首页 > 编程语言 >Python的流程控制

Python的流程控制

时间:2023-11-10 21:57:46浏览次数:39  
标签:控制 迭代 Python 流程 else while 循环 print password

一、流程控制

控制事物的执行流程

1. 顺序结构
# 自上而下依次执行,我们前面写的代码都是顺序执行的
2. 分支结构
# 根据不同的条件执行不同的分支
3. 循环结构
# 言外之意就是重复执行

二、分支结构

1、单分支

if 条件:     条件成立之后要执行的代码块

2、双分支

if 条件:     条件成立之后执行的代码块 else:     条件不成立执行的代码块

3、多分支

if 条件1:     条件1成立之后执行的代码块 elif 条件2:     条件1不成立,条件2成立执行的代码块 elif 条件3:     条件1、条件2不成立,条件3成立之后执行的代码块 ... else:     以上所有条件都不成立的话,执行的代码块 

4、if 嵌套

age = 18 height = 160 weight = 100 is_beautiful = True is_success = False if age < 26 and height >= 160 and weight <= 100 and is_beautiful:     print('小姐姐,能否给个微信?')     if is_success:         print('吃饭,看电影...')         if True:             if False:                 ...     else:         print('滚蛋吧,下一个更好') else:     print('认错人了')

三、循环结构

1、while 循环

while 条件:     条件成立之后执行的循环体

2、while + break (跳出本层循环)

count = 0 while count < 3:     # 1. 先让用户输入用户名和密码     username = input('username>>>:')     password = input('password>>>:')  # password: str---->123       password = int(password)  # 只能转数字类型的     # 2. 比较用户名和密码     # 在python中,==比较值大小和类型     # if username == 'kevin' and password == '123':     if username == 'kevin' and password == 123:         print('登录成功')         break  # 调出while循环,它是跳出本层循环     else:         print('登录失败')

3、while + continue

#循环打印出0-9之间的数字,但是不打印6 count = 0 while count < 10:     if count == 6:         count+=1         continue  # 是调出本次循环     print(count)     count += 1

4、while + else

count = 0 while count < 10:     if count == 3:         break     print(count)     count += 1 else:     print('嘿嘿嘿')       # 当while循环内没有被人为中断(break)的时候,会执行else语句

5、标志位

在复杂的程序中,很多不同的事件都会导致程序停止运行;在这种情况下,该怎么办呢?

例如,在游戏中,多种事件都可能导致游戏结束,如玩家一艘飞船都没有了或要保护的城市都被摧毁了。导致程序结束的事件有很多时,如果在一条 while 语句中检查所有这些条件,将既复杂又困难。在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量被称为标志 ,充当了程序的交通信号灯。你可让程序在标志为 True 时继续运行,并在任何事件导致标志的值为 False 时让程序停止运行。这样,在 while 语句中就只需检查一个条件 —— 标志的当前值是否为 True ,并将所有测试(是否发生了应将标志设置为 False 的事件)都放在其他地方,从而让程序变得更为整洁。

下面来在前一节的程序 parrot.py 中添加一个标志。我们把这个标志命名为 active (可给它指定任何名称),它将用于判断程序是否应继续运行:

active = True while active:     mes = input('请输入 q 退出程序:')     if mes == 'q':         active = False     else:         print(mes)

标志位的使用

flag = True while flag:     # 1. 先让用户输入用户名和密码     username = input('username>>>:')     password = input('password>>>:')  # password: str---->123       password = int(password)  # 只能转数字类型的     # 2. 比较用户名和密码     # 在python中,==比较值大小和类型     # if username == 'kevin' and password == '123':     if username == 'kevin' and password == 123:         print('登录成功')         while flag:             cmd = input('请输入你的指令:')             print('正在执行你的指令: %s' % cmd)               '''如果输入的是q,就退出整个程序'''             if cmd == 'q':                 flag = False     else:         print('登录失败')

2、for 循环

for循环能做的事情,while循环都能够做 for循环代码更加简介,另外,它不会出现死循环   # 请听题: name_list = ['kevin''tank''jason''tony'] # 循环取出列表中每一个人名 for name in name_list:     print(name)       """     语法格式:         for 变量名 in 可迭代对象: # 可迭代对象:可循环的对象,字符串、列表、字典、元组等             print()         当你的变量名没有合适的名字可叫的时候,你可以采用i,j,k,v,item等代替 """   # 字典报出来的是字段的K # 循环打印字段的k和v =  {"username":'kevin'"age":18} for in d:     print(i, d[i])

补充for循环原理

获取可迭代对象:首先,for循环会获取要遍历的可迭代对象。可迭代对象是指实现了__iter__方法的对象,或者是序列类型(如列表、元组、字符串)。   获取迭代器:通过调用可迭代对象的__iter__方法,for循环会获取一个迭代器(iterator)。迭代器是实现了__next__方法的对象,它负责迭代遍历可迭代对象的每个元素。   迭代遍历:for循环会重复调用迭代器的__next__方法,每次获取可迭代对象的下一个元素。这个过程会持续直到迭代器抛出StopIteration异常,表示没有更多的元素可迭代。   执行循环体:在每次迭代中,for循环会将迭代器返回的元素赋值给循环变量(如for item in iterable中的item),然后执行循环体中的代码块。循环体中的代码会针对每个元素进行重复执行。   循环控制:在每次循环迭代之后,for循环会自动处理循环控制,即判断是否继续迭代。如果迭代器已经抛出StopIteration异常,或者循环体内部使用了break语句,循环会终止,否则会继续迭代。   总结起来,for循环通过获取可迭代对象和迭代器,并重复调用迭代器的__next__方法来遍历可迭代对象的元素。循环体内的代码会针对每个元素进行执行,直到迭代完成或循环被终止。这种迭代遍历的机制使得for循环在处理可迭代对象时非常方便和简洁。

3、range关键字

for in range(1102):  # 如果有三个参数,意思是:从1到10的整数,步长为2   print(i)

range在不同版本解释器中的区别

在python2中直接打印出结果

在python3中做了优化,把它变成了迭代器, 就是节省内存资源

>>> range(1,10) range(110)

4、for+break

for in range(10):     if == 3:         break     print(i)

5、for+continue

for in range(10):     if == 3:         continue     print(i)

此处注意与while中的continue的区别

6、for+else

当 for 下面的if语句被匹配执行,break 人为中断,else

# 验证账号密码是否存在         with open('/Users/sanpangdan/Desktop/python_fullstack/zm.txt''r', encoding='utf-8') as f:             for  name in  f:                 if username == name.split('|')[0]:                     print('用户名已存在,请换一个名字注册')                     break             else:                 res = '%s|%s\n' % (username, passwd)  # 将账号密码做一个格式化赋值                 with open('/Users/sanpangdan/Desktop/python_fullstack/zm.txt''a', encoding='utf-8') as f1:                     f1.write(res)  # 将账号密码存入文本文件                     print('{}注册成功!'.format(username))

四、练习

1、while 循环嵌套的应用

+ View Code

2、for循环嵌套打印九九乘法表

+ View Code

关键:分行与列考虑,共9行9列,i控制行,j控制列。

标签:控制,迭代,Python,流程,else,while,循环,print,password
From: https://www.cnblogs.com/Jessica-Jmm/p/17825142.html

相关文章

  • python执行字段串代码
    很多时候,我们会让用户自己写代码,然后保持,需要的时候执行,这个时候,保持的代码是字符串,怎么执行呢,这里简单介绍一下1.eval如果是单行语句或者表达式可以使用eval执行,如:eval("2+4+5")2.exec如果是多行的代码,可以使用exec执行(可以使用变量,也可以产生变量),如:lenth=10code=......
  • wxFormBuilder + python + wxWidget
    -------------#-*-coding:utf-8-*-#############################################################################PythoncodegeneratedwithwxFormBuilder(version3.10.1-0-g8feb16b3)##http://www.wxformbuilder.org/####PLEASEDO*NOT*EDITTHISFIL......
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入
    从表格中选择数据要从MySQL中的表格中选择数据,请使用"SELECT"语句:示例选择"customers"表格中的所有记录,并显示结果:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",datab......
  • webgoat _v8.1全流程通关
    1.1(A1)SQLInjection(intro)概念 本课程介绍了什么是结构化查询语言(SQL),以及如何操纵它以执行开发人员原始意图之外的任务。 目标 用户将对SQL的工作原理和用途有基本的了解。 用户将对SQL注入有基本的了解,以及它们的工作原理。 用户将展示对以下内容的知识: ......
  • Python七种运算符及其优先级
    例:a=10,b=201、算术运算符运算符描述实例+加-两个对象相加a+b输出结果30-减-得到负数或是一个数减去另一个数a-b输出结果-10*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200/除-x除以yb/a输出结果2%取模-返......
  • python3: dlt - 数据结构
    python3:dlt-数据结构    一、程序:1[wit@fedoranull]$cattest.py2#!/usr/bin/envpython334567#testthisscript8defmsg():9print("\nhello,python3!\n")101112#runningmsg()13#msg()1415......
  • xshell终端——多个窗格同步输入——xshell同时控制多个窗口的快捷方式
    参考:https://blog.csdn.net/m0_58347801/article/details/129551382  ========================   突发发现了终端的另类用法,就是多个窗格同步输入的方法,虽然说这个方法平时确实没啥用,但是突然用到了发现还不赖。 发现在配置Hadoop集群的时候这个操作还真不赖。......
  • python计算代码运行时间
    记录一下自己用python编写计算运行时间的代码 时间类importtimeimportnumpyasnp#编写时间类来方便操作classTimer:def__init__(self):self.times=[]#记录时间self.start()defstart(self):#开始时间启动self.start_time=time.time()......
  • python删除二维数组的某一行某一列
    Python删除二维数组的某一行某一列1.简介在Python中,二维数组可以通过列表嵌套的方式实现。删除二维数组的某一行或某一列可以使用Python内置的列表操作方法来实现。在本篇文章中,我将向你介绍如何使用Python来删除二维数组的某一行或某一列。2.删除二维数组的某一行删除二维......
  • 内网渗透-防火墙出入规则上线-正反向连接+隧道技术-SMB+防火墙控制
    环境:如下图 不出网-控制上线-CS-反向连接前提:已经使用攻击机通过漏洞拿下了windows7主机,又通过windows7正向连接拿下了windows10。 目的:让windows2008在cs上线。      想要通过windows10正向连接拿下windows2008时,发现windows2008开启了防火墙对入站规则做了限制,无法正向......