Python条件语句与循环语句
作者:一碗周 发布时间:2023-01-03 05:07:21
目录
1、条件语句
1.1 if语句
2、嵌套的分支语句
3、案例练习
4、循环语句
4.1 for-in循环
4.2 range()函数
4.3 实例1:计算1-100的和
4.4 实例2:计算1-100偶数的和
4.5 实例3:计算1-100奇数的和
5、while循环
6、break 和 continue 语句
6.1 实例:猜字游戏
7、循环嵌套
7.1 实例1:通过for...in语句打印99乘法表
7.2 实例2:通过while语句打印99乘法表
1、条件语句
所谓的条件语句,就是通过指定的表达式的运行结果来判断当前是执行还是跳过某些指定的语句块。简答的说就是如果指定的表达式的运算结果为true
,则执行指定的语句块;如果运算结果为false
则跳过某个语句块或者执行其他的语句块。
如下代码如下:
# 通过input键入用户名和密码
user = input("请输入用户名:")
passwd = input("请输入密码:")
# 将默认的用户名设置为admin 密码123456
user_d = "admin"
passwd_d = "123456"
# 通过if,elif else梳理流程
if user == user_d and passwd == passwd_d:
print("登陆成功")
elif user != user_d:
print("用户名不存在")
else:
print("密码错误")
1.1 if语句
在Python
中,要构造分支结构可以使用if、elif
和else
关键字。所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名(事实上,用作其他的标识符也是不可以)。
我们上面的代码中,解析如下:
每个条件后面要使用冒号 : ,表示接下来是满足条件后要执行的语句块。
一个登陆系统存在3中情况,1. 用户名和密码都吻合,登陆成功;2. 用户名不存在,登陆失败;3. 密码错误,登陆失败
如果用户名和密码都吻合,打印登陆成功
用户名不吻合打印用户名不存在
前两种都排除了,就剩密码错误这一个条件了
值得注意的是Python中是使用缩进来表示代码结构的,也就是说想要在if语句中执行某条语句,只要赋予它相同的缩进即可。缩进可以使用任意数量的空格,但通常使用4个空格
2、嵌套的分支语句
示例代码如下如下:
user_key = int(input("输入1进入登陆系统,输入0退出系统"))
# 通过if,elif else梳理流程
if user_key == 1: # 只要用户输入1才能进入登陆系统界面
# 通过input键入用户名和密码
user = input("请输入用户名:")
passwd = input("请输入密码:")
# 将默认的用户名设置为admin 密码123456
user_d = "admin"
passwd_d = "123456"
if user == user_d and passwd == passwd_d:
print("登陆成功")
elif user != user_d:
print("用户名不存在")
else:
print("密码错误")
elif user_key == 0:
print("已退出")
else:
print("输入错误")
因为此时外层多了一层结构,所以就需要在if的内部构造出一个新的分支结构,同理elif
和else
中也可以再构造新的分支,称之为嵌套的分支结构
但是如果如果可以不是用嵌套结构就尽量不使用,嵌套结构影响代码的可读性
3、案例练习
英制单位英寸与公制单位厘米互换(1英寸(in)=2.54厘米(cm))
value = float(input("请输入数值:"))
unit = input("请输入单位(英寸或in和厘米或cm):")
if unit == "in" or unit == "英寸":
print("%.2f英寸=%.2f厘米" % (value, value * 2.54))
elif unit == "cm" or unit == "厘米":
print("%.2f厘米=%.2f英寸" % (value, value / 2.54))
else:
print("单位错误")
百分制成绩转换为等级制成绩
要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。
score = float(input('请输入成绩: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)
4、循环语句
循环语句就是对某些语句的重复执行,这个重复执行是通过指定表达式来控制的。简单来说就是指定表达式转换为boolean
类型的值后的结果为true
,哪些语句就要一直重复执行,直到指定表达式转换为boolean
类型的值后的结果为false
时才会停止执行。
4.1 for-in循环
for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。语法结构如下所示:
for <variable> in <sequence>:
<statements>
4.2 range()函数
生成一组数列,range()的几种用法:
range(101):
可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101):
可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2):
可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2):
可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
4.3 实例1:计算1-100的和
# 用来存储每次计算的结果
sum = 0
for i in range(101):
sum += i # 这里等同于sum=sum+1
print(sum)
4.4 实例2:计算1-100偶数的和
# 用来存储每次计算的结果
sum = 0
for i in range(0, 101, 2):
sum += i
print(sum)
从0开始,每次步长为2,就跳过了单数
4.5 实例3:计算1-100奇数的和
可以从1开始,步长为2,这样就跳过了偶数,也可以通过嵌套分支结构来实现,例如
# 用来存储每次计算的结果
sum = 0
for i in range(101):
if i % 2 == 1: # 因为单数除2余1,所以只有满足这个条件,才可以进行累加计算
sum += i
print(sum)
5、while循环
while
循环通过一个能够产生或转换出bool
值的表达式来控制循环,表达式的值为True
则继续循环;表达式的值为False
则结束循环。
语法结构如下所示:
while 判断条件:
执行语句……
通过while
语句来实现1-100
累加的结果
# 用来存储每次计算的结果
sum = 0
# 设置开始的值
i = 1
# 设置允许循环的最大值
n = 100
while i <= n:
sum += i
i += 1
print(sum)
6、break 和 continue 语句
break
语句可以跳出 for
和 while
的循环体。如果你从 for
或 while
循环中终止。
continue
语句被用来告诉 Python
跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
代码执行流程:
6.1 实例:猜字游戏
规则:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续;如果次数大于5次,则退出循环。
import random # 导入随机数模块
answer = random.randint(1, 100) # 生成1-100的随机数
counter = 0 # 将次数初始为0
while True:
number = int(input('请输入: '))
if number < answer:
print('大一点')
counter += 1
elif number > answer:
print('小一点')
counter += 1
else:
print('恭喜你猜对了!')
break # 如果猜对了 就跳出循环
if counter >= 5: # 次数大于5则退出这个系统
print('你的智商余额明显不足')
break
print('你总共猜了%d次' % counter)
7、循环嵌套
和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构
7.1 实例1:通过for...in语句打印99乘法表
for x in range(1, 10):
for y in range(1, x+1):
print("%d * %d = %d" % (y, x, x*y), end=" ")
print()
7.2 实例2:通过while语句打印99乘法表
x = 1
y = 1
while x <= 9:
y = 1 # 每执行完一次子循环,y重置为1
while y <= x:
print("%d * %d = %d" % (y, x, x*y), end=" ")
y += 1
x += 1
print() # 每一句结束一个换行
来源:https://juejin.cn/post/7022960970020421646
猜你喜欢
- 关于asp随机数的相关文章:asp生成一个不重复的随机数字 8个asp生成随机字符的函数 <html> <me
- 在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re。正则表达式的大致匹配过程是:1.依
- 1、引言选择排序里面主要讲了三个排序,分别是简单选择排序、树形选择排序、堆排序。今天这篇文章主要讲树形选择排序,树形选择排序也被称为锦标赛排
- 隐藏你的.php文件 隐藏你的.php文件 今天做PHP在线手册镜像的时候看到了这个方法,哈哈,以前都没有注意到,所以说,手册是
- 1.timeit模块timeit模块可以用来测试一小段python代码的执行速度class timeit.Timer(stmt = '
- Pycharm中import torch报错问题描述:今天在跑GitHub上一个深度学习的模型,需要引入一个torch包,在pycharm中
- 本文实例为大家分享了python3实现名片管理系统的具体代码,供大家参考,具体内容如下系统主要是:1.新增名片 2.显示全部 3.查询名片
- 需求:用的是django的框架,想显示一个基本固定的页面,用到了form_layout上图的ROW中添加的是model中的字段名,可以显示对
- 有别于JS跨域、IFRAME跨域等的常用处理办法,还可以利用P3P来实现跨域。P3P是什么P3P(Platform for Privacy
- vue代码压缩优化设置productionSourceMap为false如果不需要生产环境的 source map,可以将其设置为 fals
- uwsgi介绍uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作
- 本文主要跟大家分享在类unix操作系统下supervisor的使用以及一些关于进程的知识一、问题背景1、背景如何才能让一个进程摆脱终端,获得
- MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实A
- 本文实例分析了Python二分法搜索算法。分享给大家供大家参考。具体分析如下:今天看书时,书上提到二分法虽然道理简单,大家一听就明白但是真正
- 简介: tempdb是SQLServer的系统数据库一直都是SQLS
- 前言最近由于换工作,开始交接工作。整理以前的工作内容,由于组内就我一个在做go和大数据。 所以开发没有规划,当时是怎么快怎么来。go也是使用
- 这篇文章主要介绍了微信小程序顶部导航栏可滑动并选中放大,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 用wrapper封装这样在对象内外都可以访问function MapPool(){ function createMarker(n
- 定义神经网络继承nn.Module类;初始化函数__init__:网络层设计;forward函数:模型运行逻辑。class NeuralNe
- 图例如下1.先在detail.html中做好页面上下文链接;然后在view.py中进行数据绑定:2.访问验证以上来源:https://www