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