python while语法结构_python语法之流程控制(if while for)

一.python语法之流程控制

1.1什么是流程控制?

流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(判断)、循环结构(while for)

二.分支结构

2.1 什么是分支结构?

分支结构就是根据条件判断的真假去执行不同分支对应的子代码

2.2 为什么要用分支结构?

为了让计算机可以有像人一样的逻辑判断能力去做事

2.3 怎么使用分支结构?

引入if语句

定义:主要是用于判断事物的对错 真假 是否可行

语法结构

#第一种结构

if 条件:

代码块

#第二种结构

if 条件:

代码块1

else:

代码块2

#第三种结构

if 条件1:

代码块1

elif 条件2:

代码块2

elif 条件3:

代码块3

elif 条件n:

代码块n

else:

代码块n+1

案例1:

如果今天下雨,那么就带伞

weather = '不下雨'

if weather == '下雨':

print('出门记得带伞')

案例2:

如果今天下雨,那么就带伞;反之则不带

weather = '不下雨'

if weather == '下雨':

print('出门记得带伞')

else:

print('不用带伞')

案例3:

如果:成绩>=90,那么:优秀

如果成绩>=80且<90,那么:良好

如果成绩>=70且<80,那么:普通

其他情况:不合格

score = input('请输入您的成绩:')

score = int(score)  #因为input不管你输入的是什么样的数据类型最终都会转为字符串(str),并且我#们下面的成绩要和数字做对比,所以这里必须要把字符串转化为整型

if score >= 90:

print('优秀')

elif score >= 80:

print('良好')

elif score >= 70:

print('普通')

else:

print('不合格')

案例4:

女人的年龄>=18并且<22岁并且身高>160并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨

在表白的基础上继续:如果表白成功,那么:在一起 否则:打印

gender = 'female'

age = 19

height = 161

weight = 99

is_beautiful = True

is_success = 1

if gender == 'female' and age >= 18 and age < 22 and height > 160 and weight < 100 and is_beautiful:

print('表白')

if is_success:

print('Congratulations, please stay together')

else:

print('Oh,my Gad.I am not live')

else:

print('叫阿姨')

PS:

1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行

2、条件可以是任意表达式,但执行结果必须为布尔类型

3、在if判断中所有的数据类型也都会自动转换成布尔类型

4、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False

5、其余均为True

三 循环结构

3.1 什么是循环结构

循环结构就是重复执行某段代码块

3.2 为什么要用循环结构

人类某些时候需要重复做某件事情

所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力

3.3 怎么使用循环结构

while 条件:

代码1

代码2

代码3

......

# while的运行步骤:

# 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......

# 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止

案例1

用户登陆认证,认证成功则登陆成功,认证失败则打印登陆失败,最多可认证三次

#在不能使用循环的情况下,我们要重复三次同样的语句

name = input('请输入您的用户名:')

password = input('请输入您的密码:')

password = int(password) #因为input将最后输入的内容转化为了字符串,这里不进行转化的话,可以#在下一行代码password == 123 换为 password == '123'

if name == 'bing' and password == 123: #进行条件判断

print('登陆成功')

else:

print('登陆失败')

当因为while循环后,我们就可以这样写

count = 0 #记录登陆失败次数

while count < 3:

name = input('请输入您的用户名:')

password = input('请输入您的密码:')

if name == 'bing' and password == '123': #进行条件判断

print('登陆成功')

else:

print('登陆失败')

count += 1

但是在这里我们会发现一个问题:即使是登陆成功了,循环依然会进行三次,这样显然是不符合我们平常的使用习惯的。那么如何在登陆成功后就结束这个循环呢?下面我们就用到了break

案例2

where + break的使用

count = 0

while count < 3:

name = input('请输入您的用户名:')

password = input('请输入您的密码:')

if name == 'bing' and password == '123': #进行条件判断

print('登陆成功')

break #结束本层循环,单纯指代当前while

else:

print('登陆失败')

count += 1

案例3

while循环嵌套+break

count = 0

while count < 3:

name = input('请输入您的用户名:')

password = input('请输入您的密码:')

if name == 'bing' and password == '123':

print('登陆成功')

while True:

cmd = input('>>>:')

if cmd == 'quit':

break

else:

print('haha')

break

else:

print('登陆失败')

count += 1

案例四

针对嵌套多层的while循环,如果我们的目的很明确就是要在某一层直接退出所有层的循环,其实有一个窍门,就让所有while循环的条件都用同一个变量,该变量的初始值为True,一旦在某一层将该变量的值改成False,则所有层的循环都结束

count = 0

tag = True

while count < 3:

name = input('请输入您的用户名:')

password = input('请输入您的密码:')

if name == 'bing' and password == '123':

print('登陆成功')

while tag:

cmd = input('>>>:')

if cmd == 'quit':

tag = False

#break #此时该break已经没有意义了

else:

print('haha')

break #如果这里我们不要break也想达到所有循环都结束的目的,可以将第一个while换为tag

else:

print('登陆失败')

count += 1

案例5

while+continue

continue:跳过本次循环,执行下一次循环(continue下面不管有多少行代码,都不会执行)

打印1到10之间,除了7的数字

count = 0

while count < 10:

count += 1

if count == 7:

continue

else:

print(count)

案例6

while+else的使用

在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束

count = 0

while count < 5:

count += 1

print(f'第{count}次')

else:

print('结束')

for循环

循环结构的第二种实现方式是for循环,for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值给我们提供了一种不依赖于索引的取值

语法结构

for 变量 in 容器对象

容器对象有几个值就循环几次

for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典,我们之后会专门讲解可迭代对象

代码一

代码二

...

#例1

for item in ['a','b','c']:

print(item)

# 运行结果

a

b

c

# 参照例1来介绍for循环的运行步骤

# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码

# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码

# 步骤3: 重复以上过程直到列表中的值读尽

案例1

打印数字0-5

for i in range(6):

print(i)

count = 0

while count < 6:

print(count)

count += 1

案例2

for i in {'name': 'bing', 'age': 21, 'gender': 'male'}:

print(i)

PS:字典对象,无法直接访问值(value)

案例3

for循环嵌套

#请用for循环嵌套的方式打印如下图形:

*****

*****

*****

for a in range(3):

for b in range(5):

print('*', end='')

print()

PS:break 与 continue也可以用于for循环,使用语法同while循环

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android日志[进阶篇]四-获取错误报告

Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Android日志[进阶篇]四-获取错误报告 Android日志[进阶篇]五-阅读错误报告 目录前言从设备上获取错误报告从 Android 模拟器上…

下列哪个适合做链栈_朋友圈人格图鉴:三天可见 vs 全部可见,哪个更适合做恋人?...

你们的朋友圈里有没有这样几种人&#xff1f;<< 朋友圈大赏 >>你可能已经对这些朋友圈的风格习以为常&#xff0c;其实&#xff0c;每个人在朋友圈展示的语言、行为&#xff0c;可能默默揭示着一个人自己原本是怎样的人、想成为什么样的人&#xff0c;以及与他人的…

python玫瑰花数量的含义_玫瑰花数量代表的含义

1朵玫瑰代表——我的心中只有你 ONLY YOU&#xff01;2朵玫瑰代表——这世界只有我俩&#xff01;3朵玫瑰代表——我爱你 I LOVE YOU&#xff01;4朵玫瑰代表——至死不渝&#xff01;5朵玫瑰代表——由衷欣赏&#xff01;6朵玫瑰代表——互敬 互爱 互谅&#xff01;7朵玫瑰代表…

Android日志[进阶篇]五-阅读错误报告

Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Android日志[进阶篇]四-获取错误报告 Android日志[进阶篇]五-阅读错误报告 目录Logcat查看事件日志ANR 和死锁找出无响应的应用…

iatf16949内审员_申请IATF16949认证有什么要求

1、证件要求必须要提供三证合一的营业执照&#xff08;在有效期内&#xff09;&#xff0c;营业执照的范围必须与申请IATF16949认证范围一致。2、处于汽车供应链的证明因为IATF16949认证要求厂家必须是直接与生产汽车有关的&#xff0c;具有加工制造能力&#xff0c;并通过这种…

GenseeSDK DocView(OpenGL)引起的TextView显示黑块

现象 先上图&#xff1a; 正常的图&#xff1a; 来到这的大侠是否也出现了同样的问题。 操作与描述 退出直播播放器后&#xff0c;整个app界面所有的TextView(EditText/Button)都显示为黑块。 快速解决 退出直播或点播后不要调用DocView的closeDoc函数即可&#xff0c;当…

python医疗发票 信息抽取_PYTHON网络爬虫与信息提取[信息的组织与提取](单元五)...

1 三种信息类型的简介xml : extensible markup language与html非常相似现有html后有xmlxml是html发展来的 扩展 通用json 类型javascript object notation有类型的键值对 表达的方式一个key对应多个值"key1":["asas",asas]嵌套使用"name":{&quo…

Android WebView https白屏、Http和Https混合问题、证书配置和使用

目录前言启用https后白屏&#xff08;证书错误&#xff09;修改处理WebView中Http和Https混合问题处理办法Webview的几种内容加载模式证书配置或处理https请求的证书okhttp进行请求&#xff1a;HttpsURLConnection忽略证书前言 原有项目中有部分界面是用webview展现的h5页面&am…

Kotlin AAPT: error: resource android:attr/lStar not found.

这是使用kotlin之后发生的错误。 打开 android/app 工程全局搜索androidx.core:core-ktx: 全局搜索快捷键 ctrlshift f将搜索到的内容修改为androidx.core:core-ktx:1.6.0 也就是说将androidx.core:core-ktx: 修改为androidx.core:core-ktx:1.6.0,一般情况下是在module的中的b…

python selenium iframe怎么定位_python+selenium四:iframe查看、定位、切换

iframe是HTML里面嵌套HTML的一种框架1.查看iframe1.Top Window&#xff1a;可直接定位2.iframe#i&#xff1a;说明此元素在iframe上3.iframe显示为空&#xff1a;(id或name为空)4.右边这个看到是空的(2层iframe)以126邮箱为例from selenium import webdriverdriver webdriver.…

Kotlin plugin should be enabled before ‘kotlin-android-extensions‘

问题一 、Kotlin plugin should be enabled before ‘kotlin-android-extensions‘ 在java项目中添加kotlin的类之后&#xff0c;根据提示进行各种配置和下载&#xff0c;一顿操作后出现了Kotlin plugin should be enabled before kotlin-android-extensions’ 处理办法&…

python增加工作日列_将工作日添加到日期字段

我试图在Django的日期字段中添加一些工作日。这是针对产品订购&#xff0c;我们对不同的产品有不同的交付周期&#xff0c;我们希望为每个产品生成一个目标日期。在例如&#xff0c;产品X可能需要10个工作日才能交付&#xff0c;如果此产品是在2013年3月1日星期五订购的&#x…

tensorrt轻松部署高性能dnn推理_基于TensorRT车辆实时推理优化

基于TensorRT车辆实时推理优化Optimizing NVIDIA TensorRT Conversion for Real-time Inference on Autonomous Vehicles自动驾驶系统使用各种神经网络模型&#xff0c;这些模型要求在GPU上进行极其精确和高效的计算。Zoox是一家全新开发robotaxis的初创公司&#xff0c;充分利…

问卷调查试卷的数据设计

目录前言数据定义数据说明1、第一层{}2、question 一个题目{}3、answer一个答题回复{}4、option 一个选项{}5、selectItems {}具体数据1、发题&#xff08;终端请求&#xff09;示例2、答题(图片答题&#xff0c;终端请求)互动或静态3、停止答题(终端请求&#xff0c;一般是互动…

手机上网流量统计_数据统计 | 上半年手机流量同比增110.2%,你贡献了多少?

来源&#xff1a;工信部网站、中新经纬版权申明&#xff1a;内容来源网络&#xff0c;版权归原创者所有。除非无法确认&#xff0c;我们都会标明作者及出处&#xff0c;如有侵权烦请告知我们&#xff0c;我们会立即删除并表示歉意。谢谢&#xff01;7月25日&#xff0c;工信部网…

Kotlin静态方法定义和调用

在习惯java的开发之后&#xff0c;使用kotlin进行编码&#xff0c;总有那么些不自然。 静态类的定义&#xff1a; 全局静态(实际上是单例模型) 直接将类声明为object&#xff0c;那么所有的函数也就静态的了&#xff0c;这种一般适用于各种util的类。 object UIUtil {fun to…

mybatis insert插入成功返回0_mybatis添加客户

在MyBatis的映射文件中&#xff0c;添加操作是通过元素来实现的。例如&#xff0c;向数据库中的t_customer表中插入一条数据可以通过如下配置来实现。在上述配置代码中&#xff0c;传入的参数是一个Customer类型&#xff0c;该类型的参数对象被传递到语句中时&#xff0c;#{use…

Andoid TextView显示富文本html内容及问题处理

目录富文本内容与效果TextView HtmlImageGetter 处理图片(表情)TagHandler 处理html内容的节点Html的转换过程HtmlToSpannedConverterhandleStartTagstartCssStyle(mSpannableStringBuilder, attributes)字体无效果实现getForegroundColorPattern颜色不显示的坑处理办法颜色修…

mysql截取字符串最后两位_MySQL字符串函数substring:字符串截取

MySQL 字符串截取函数&#xff1a;left(), right(), substring(), substring_index()。还有 mid(), substr()。其中&#xff0c;mid(), substr() 等价于 substring() 函数&#xff0c;substring() 的功能非常强大和灵活。1. 字符串截取&#xff1a;left(str, length)mysql> …

Java类加载顺序之一条日志引发的血案

目录为什么是null回顾类加载原因问题重现总结类加载顺序子类重写被父类构造函数调用的函数注意不能放过不起眼的日志一条日志引发的案子 [11:12:58.505][D][Gen][RTLive][getIns ins 4414717] [11:12:58.774][I][Gen][null][updateShowMode] [11:12:58.864][D][Gen][VideoCame…