建议先阅读我之前的博客,掌握一定的Python前置知识后再阅读本文,链接如下:
带你从入门到精通——Python(一. 基础知识)-CSDN博客
目录
二. 判断语句和循环语句
2.1 判断语句
2.1.1 比较运算符
常见的比较运算符如下:
通过比较运算符进行内容比较得到的数据,即为布尔值,此外,还可以自行定义来获取布尔值,布尔类型的字面量有:True 表示真(是、肯定),False 表示假(否、否定),可以使用如下的格式定义布尔类型的变量:变量名称 = 布尔类型字面量
2.1.2 逻辑运算符
常用的逻辑运算符有三种:and表示并且,or表示或者,not表示取反,具体示例如下:
print(False and True)
# 输出False
print(False and False)
# 输出False
print(True and True)
# 输出True
print(False or True)
# 输出True
print(True or True)
# 输出True
print(False or False)
# 输出False
print(not False)
# 输出True
print(not True)
# 输出False
可以看到,使用逻辑运算符可以对布尔值进行比较,同时得到的结果也是布尔值。
2.1.3 Random模块
如果我们需要获取一个随机数,可以导入random模块,并使用其中的randint函数来获取一个随机数,在Python中,函数是指提前组织好的,可以重复使用的,具有特定功能的代码块,更多关于函数的知识会在后续博文中详细介绍。
生成随机数固定步骤如下:
# 导包
import random
# 随机生成一个整数,randint(a, b),取值范围:左闭右闭[a,b]
num = random.randint(1, 2)
注意,我们可以通过按ctrl+鼠标左键点击对应模块名或者函数名等,如何查看相应的源代码。
2.1.4 If语句
2.1.4.1 基础if语句
基础if语句的基本格式如下:
if 条件判断:
条件满足的时候,执行的代码
具体示例如下:
# 需求: 如果你的年龄大于等于18,显示您已经成年
# 1.获取年龄
age = int(input('请您输入年龄:'))
# 2.判断年龄
if age >= 18:
# 3.给出提示
print('您已经成年')
注意: python中用缩进代表层级关系,1个缩进就是4个空格
2.1.4.2 If else语句
If else语句格式的基本格式如下:
if 条件判断:
条件满足的时候,执行的代码
else:
条件不满足的时候,执行的代码
示例如下:
# 需求: 如果你的年龄大于等于18,显示您已经成年,否则显示您未成年
# 1.获取年龄
age = int(input('请您输入年龄:'))
# 2.判断年龄
if age >= 18:
# 3.1 满足条件,给出提示
print('您已经成年')
else:
# 3.2 不满足条件,给出提示
print('您未成年')
2.1.4.3 If elif else语句
If elif else语句格式的基本格式如下:
if 条件判断1:
条件1满足的时候,执行的代码
elif 条件判断2:
条件2满足的时候,执行的代码
...
elif 条件判断n:
条件n满足的时候,执行的代码
else:
上述所有条件都不满足的时候,执行的代码
具体示例如下:
"""
需求: 请编写一个程序,功能是当用户输入成绩后,根据成绩判断对应等级
成绩范围:0-100,等级:90-100:优,80-89:良,60-79:中,0-59:差
示例如下:
请输入成绩: 99
您输入的成绩为:99,等级为: 优
"""
# 1.获取成绩
score = int(input('请输入成绩:'))
# 2.判断成绩 ,并给出提示
if 90 <= score <= 100:
print(f'您输入的成绩为:{score},等级为: 优')
elif 80 <= score < 90:
print(f'您输入的成绩为:{score},等级为: 良')
elif 60 <= score < 80:
print(f'您输入的成绩为:{score},等级为: 中')
elif 0 <= score < 60:
print(f'您输入的成绩为:{score},等级为: 差')
else:
print('您输入的成绩无效!')
2.1.4.4 嵌套if语句
对于if语句来说,我们可以在一个if判断中,嵌套其他的if语句,其基本格式如下:
if 条件1:
满足条件1执行的代码
if 条件2:
满足条件2执行的代码
...
else:
不满足条件2执行的代码
...
else:
不满足条件1执行的代码
具体示例如下:
"""
需求: 请编写一个程序,功能是当用户输入成绩后,根据成绩判断对应等级
成绩范围:0-100,等级:90-100:优,80-89:良,60-79:中,0-59:差
示例如下:
请输入成绩: 99
您输入的成绩为:99,等级为: 优
"""
# 1.获取成绩
score = int(input('请输入成绩:'))
# 2.判断成绩 ,并给出提示
if score < 0 or score > 100:
print('您输入的成绩无效!')
else:
if score >= 90:
print(f'您输入的成绩为:{score},等级为: 优')
elif score >= 80:
print(f'您输入的成绩为:{score},等级为: 良')
elif score >= 60:
print(f'您输入的成绩为:{score},等级为: 中')
else:
print(f'您输入的成绩为:{score},等级为: 差')
2.2 循环语句
2.2.1 While循环
While循环的基本格式有三种,首先基本格式如下:
while 条件:
循环体
完整格式如下:
定义变量并赋初始值
while 条件判断:
循环体
条件控制
嵌套格式如下:
while 条件1:
满足条件1,循环的内容
while 条件2:
满足条件2,循环的内容
具体示例如下:
# 需求: 在控制台打印出1-100
# 分析: 利用while循环的变量作为输出内容
# 定义变量并赋初始值
i = 1
# while 条件判断
while i <= 100:
# 循环体
print(i)
# 条件控制
i += 1
2.2.2 For循环
For循环的基本格式如下:
for 临时变量 in 待处理的数据集:
循环体
注意:for循环中的临时变量的作用范围(作用域)只限定在for循环内部,如果在for循环外部访问临时变量,虽然实际上是可以访问到的,在编程规范上,是不允许、不建议这么做的。
配合range函数格式如下:
for 临时变量 in range(x,y,z):
循环体
# range函数用于生成一段前闭后开的数字序列,其中:
# x表示起始值,如果省略,默认为0,可以与参数z同时省略,但不能单独省略参数x
# y作为一个结束标记,实际结束值是y-1,y的值是取不到的
# z表示步长,可以单独省略,也可以与省略参数x一同省略,如果省略默认为1
嵌套格式如下:
for 临时变量1 in 待处理的数据集:
for 临时变量2 in 待处理的数据集:
循环体
具体示例如下:
# 需求2: 已知字符串'ganxie dianzan shoucang he guanzhu',要求统计'a'出现了几次?
# 1.循环外定义变量赋值0
count = 0
for i in 'ganxie dianzan shoucang he guanzhu':
if i == 'a':
# 2.循环内,满足条件,就累加1
count += 1
# 3.循环外使用最终count结果
print(count)
# 输出5
2.3 循环控制语句
常用的循环控制语句主要有以下两个:
Break表示跳出或者结束当前循环
Continue表示跳过本次循环,继续下一次循环
注意:break和continue作为循环控制语句用于操作循环,但在嵌套循环中,只能作用到当前所在的循环上,无法对上层循环起作用。
具体示例如下:
"""
需求: 夜深人静的时候,一个人独立去做有20层的电梯(假设每层都循环播报),
此时坐到第5层,就下电梯,结束当前这个循环
"""
# for循环循环1-20播报
for i in range(1, 21):
# 播报
print(f'{i}层到了~')
# 判断
if i == 5:
break
"""
需求: 夜深人静的时候,一个人独立去做有20层的电梯(假设每层都循环播报),
此时最不愿听到4层到了~,14层到了~,18层到了~
"""
# for循环循环1-20播报
for i in range(1, 21):
if i == 4 or i == 14 or i == 18:
continue
# 播报
print(f'{i}层到了~')
2.4 综合示例
2.4.1 猜数字游戏
现在需要我们随机产生一个1-100之间的数字,并要求用户来猜,最多有三次猜测的机会,示例代码如下:
# 1.获取一个随机数(范围1-100)
import random
num1 = random.randint(1, 100)
# 4.循环3次
i = 1
while i <= 3:
# 循环体
# 2.获取用户猜的数
num2 = int(input('请您输入您猜的数(范围1-100):'))
# 3.拿着用户猜的数和随机数判断,并给出提示
if num2 < 1 or num2 > 100:
print('您猜的数无效,请仔细查看提示!')
else:
if num2 == num1:
print('猜对了')
# 跳出循环
break
elif num2 > num1:
print('猜大了')
else:
print('猜小了')
# 条件控制
i += 1
2.4.1 打印九九乘法表
在九九乘法表之前先补充一个制表符的知识:在字符串中,可以使用\t符号作为一个制表符,\作为转义字符的标志,其效果等同于在键盘上按下tab键。如果\t前面没有字符,会空四个位置,相当于一个Tab即4个空格;如果\t前面的字符数<4,则会补全一个Tab,不足的字符数用空格补充,下一个字符会从第5个位置开始;如果\t前面的字符数>=4且<8,则会补全两个Tab,不足的字符数用空格补充,下一个字符会从第9个位置开始,依次类推,它可以让我们对多行字符串进行对齐操作。
具体示例和输出如下:
print("a\tab\tabc\na\tab\tabc")
学习完制表符的知识后,我们就可以使用for循环来打印九九乘法表了,示例代码和结果如下:
# 1.外层循环控制行
for i in range(1, 10):
# 2.内层循环控制列
for j in range(1, i + 1):
print(f'{j}*{i}={j * i}', end='\t')
# print()默认表示打印一个换行符\n,表示每行循环结束后,进行换行操作
print()