判断语句
布尔类型和比较运算符
布尔类型的字面量:
- True 表示真(是、肯定)
- False 表示假 (否、否定)
定义变量存储布尔类型数据:
变量名称 = 布尔类型字面量
# 定义变量存储布尔类型的数据
bool_1 = True
bool_2 = False
print(f"bool_1变量的内容是:{bool_1}, 类型是:{type(bool_1)}") # bool_1变量的内容是:True, 类型是:<class 'bool'>
print(f"bool_2变量的内容是:{bool_2}, 类型是:{type(bool_2)}") # bool_2变量的内容是:False, 类型是:<class 'bool'>
- 布尔类型不仅可以自行定义,同时也可以通过计算的来。
- 布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。
num1 = 10
num2 = 10
print(f"10 == 10的结果是:{num1 == num2}") # True
num1 = 10
num2 = 15
print(f"10 != 15的结果是:{num1 != num2}")# False
name1 = "itcast"
name2 = "itheima"
print(f"itcast == itheima 结果是:{name1 == name2}") # False
num1 = 10
num2 = 5
print(f"10 > 5结果是:{num1 > num2}") # True
print(f"10 < 5的结果是:{num1 < num2}")# False
num1 = 10
num2 = 11
print(f"10 >= 11的结果是:{num1 >= num2}") # False
print(f"10 <= 11的结果是:{num1 <= num2}") # True
if语句的基本格式
# 定义变量
age = 30
# 进行判断
if age >= 18:
print("我已经成年了"
if语句的注意事项:
- 判断条件的结果一定要是布尔类型
- 不要忘记判断条件后的: 引号
- 归属于if语句的代码块,需在前方填充4个空格缩进
练习案例:成年人判断
结合前面学习的input输入语句,完成如下案例:
- 通过input语句,获取键盘输入,为变量age赋值。(注意转换成数字类型)
- 通过if判断是否是成年人,满足条件则输出提示信息,如下:
# 获取键盘输入
age = int(input("请输入你的年龄:"))
# 通过if判断是否是成年人
if age >= 18:
print("您已成年,游玩需要买票,10元.")
print("祝您游玩愉快")
if else语句
- 注意:
- else后,不需要判断条件
- 和if的代码块一样,else的代码块同样需要4个空格作为缩进
age = int(input("请输入你的年龄:"))
if age >= 18:
print("您已成年,需要买票10元。")
else:
print("您未成年,可以免费游玩。")
if elif else语句
# 定义一个变量数字
num = 5
# 通过键盘输入获取猜想的数字,通过多次if 和 elif的组合进行猜想比较
if int(input("请猜一个数字:")) == num:
print("恭喜第一次就猜对了呢")
elif int(input("猜错了,再猜一次:")) == num:
print("猜对了")
elif int(input("猜错了,再猜一次:")) == num:
print("恭喜,最后一次机会,你猜对了")
else:
print("Sorry 猜错了")
判断语句的嵌套
- 基本语法格式
自由组合嵌套,需求如下:
公司要发礼物,条件是:
- 必须是大于等于18岁小于30岁的成年人
- 同时入职时间需满足大于两年,或者级别大于3才可领取
age = 11
year = 1
level = 1
if age >= 18:
print("你是成年人")
if age < 30:
print("你的年龄达标了")
if year > 2:
print("恭喜你,年龄和入职时间都达标,可以领取礼物")
elif level > 3:
print("恭喜你,年龄和级别达标,可以领取礼物")
else:
print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")
else:
print("不好意思,年龄太大了")
else:
print("不好意思,小朋友不可以领取。")
- 总结
- 嵌套判断语句可以用于多条件、多层次的逻辑判断
- 嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
- 嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系
案例:猜数字
案例需求: 定义一个数字(1~10,随机产生),通过3次判断来猜出来数字
案例要求:
- 数字随机产生,范围1-10
- 有3次机会猜测数字,通过3层嵌套判断实现
- 每次猜不中,会提示大了或小了
# 1. 构建一个随机的数字变量
import random
num = random.randint(1, 10)
guess_num = int(input("输入你要猜测的数字:"))
# 2. 通过if判断语句进行数字的猜测
if guess_num == num:
print("恭喜,第一次就猜中了")
else:
if guess_num > num:
print("你猜测的数字大了")
else:
print("你猜测的数字小了")
guess_num = int(input("再次输入你要猜测的数字:"))
if guess_num == num:
print("恭喜,第二次猜中了")
else:
if guess_num > num:
print("你猜测的数字大了")
else:
print("你猜测的数字小了")
guess_num = int(input("第三次输入你要猜测的数字:"))
if guess_num == num:
print("第三次猜中了")
else:
print("三次机会用完了,没有猜中。")
循环语句
while循环的基础语法
while循环的注意事项
- 条件需提供布尔类型结果,True继续,False停止
- 空格缩进不能忘
- 请规划好循环终止条件,否则将无限循环
sum = 0
i = 1
while i<=100:
sum += i
i += 1
print(f"1-100累加的和是:{sum}")
while循环的基础案例
设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
- 无限次机会,直到猜中为止
- 每一次猜不中,会提示大了或小了
- 猜完数字后,提示猜了几次
# 获取范围在1-100的随机数字
import random
num = random.randint(1, 100)
# 定义一个变量,记录总共猜测了多少次
count = 0
# 通过一个布尔类型的变量,做循环是否继续的标记
flag = True
while flag:
guess_num = int(input("请输入你猜测的数字:"))
count += 1
if guess_num == num:
print("猜中了")
# 设置为False就是终止循环的条件
flag = False
else:
if guess_num > num:
print("你猜的大了")
else:
print("你猜的小了")
print(f"你总共猜测了{count}次")
while循环的嵌套应用
-
同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
- 基于空格缩进来决定层次关系
-
注意条件的设置,避免出现无限循环(除非真的需要无限循环)
-
打印输出九九乘法表
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层循环的print语句,不要换行,通过\t制表符进行对齐
print(f"{j} * {i} = {j * i}\t", end='')
j += 1
i += 1
print() # print空内容,就是输出一个换行
补充:print输出不换行&\t
- 在Python中,默认情况下,每次调用print()函数都会在输出内容的末尾添加一个换行符(\n),导致下一次输出在新的一行显示。但是,在print语句中避免换行,可以将end参数设置为空字符串"",以表示在输出结束时不添加换行符。
- 以下是一个示例:
print("Hello", end="")
print("World", end="")
- 还可以将end参数设置为除换行符之外的任何字符或字符串,用于在输出结束时添加指定的字符或字符串。
例如,通过将end参数设置为一个空格,你可以在输出结束时添加一个空格:
print("Hello", end=" ")
print("World")
# Hello World
- 注意,修改end参数的方法仅适用于Python 3.x 版本。在Python 2.x 中,你需要使用print语句而不是print()函数,或者导入print_function,以获得类似的行为。
- 制表符 “\t” 是一种特殊字符,在字符串中使用它可以创建水平制表位(tab)的效果。它在打印输出或字符串中的对齐时非常有用。
- 当在字符串中使用制表符 \t,它会在当前位置插入一个制表符,并移动到下一个制表位。制表位的宽度通常是距离前一个制表位的一定间隔,类似于键盘上的 Tab 键所做的效果。
print("Name:\tJohn")
print("Age:\t25")
print("Country:\tUSA")
输出如下:
Name: John
Age: 25
Country: USA
for循环的基础语法
- for循环是一种”轮询”机制,是对一批内容进行”逐个处理”
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
# 统计如下字符串中,有多少个字母a
name = "itheima is a brand of itcast"
# 定义一个变量,用来统计有多少个a
count = 0
# for 循环统计
# for 临时变量 in 被统计的数据:
for x in name:
if x == "a":
count += 1
print(f"被统计的字符串中有{count}个a")
range()函数
- range()是一个内置函数,用于生成一系列的整数。range()函数可以接受一个或多个参数,返回一个表示整数序列的可迭代对象。
range()函数的语法格式为:
range(stop) # 生成从0到stop-1的整数序列
range(start, stop) # 生成从start到stop-1的整数序列
range(start, stop, step) # 生成从start到stop-1的整数序列,步长为step
参数说明:
- start:可选,表示序列的起始值,默认为0。
- stop:表示序列的终止值(不包含在序列内)。
- step:可选,表示序列中的元素之间的步长,默认为1。
range()函数通常用于循环结构,例如for循环:
# 打印输出0到4的整数
for i in range(5):
print(i)
- range()函数的结果转换为列表,以便查看生成的整数序列:
# 生成一个步长为2的整数序列 [1, 3, 5] 并将其转换为列表后打印
numbers = list(range(1, 6, 2))
print(numbers)
- 注意,range()函数返回的是一个可迭代对象,而不是实际的列表。如果需要获取完整列表,可以使用list()函数将其转换为列表。
range()函数在循环迭代和生成整数序列时非常有用,特别是当你需要指定起始值和步长时。
for循环变量的作用域
- for循环中的临时变量,其作用域限定为:循环内
- 这种限定:
- 编程规范的限定,而非强制限定
- 不遵守也能正常运行,但是不建议这样做
- 如需访问临时变量,可以预先在循环外定义它
name = "Alice"
for i in range(3):
print(name) # 可以访问循环体外部定义的变量
message = "Hello"
print(message) # 可以访问循环体内部定义的变量
print(name) # 仍然可以访问循环体外部定义的变量
for循环的嵌套应用
- 练习案例-for循环打印九九乘法表
# 通过外层循环控制行数
for i in range(1, 10):
# 通过内层循环控制每一行的数据
for j in range(1, i + 1):
# 在内层循环中输出每一行的内容
print(f"{j} * {i} = {j * i}\t", end=' ')
# 外层循环可以通过print输出一个回车符
print()
循环中断 : break和continue
- break和continue是用于控制循环流程的关键字。
- break用于终止整个循环,跳出循环结构。
- continue用于跳过当前迭代,继续执行下一次迭代。
- break关键字用于中断当前循环,提前跳出循环体,执行循环之后的代码。当程序执行到break语句时,循环立即终止,不再执行循环体中剩余的语句,而是跳出整个循环结构。
for i in range(1, 6):
if i == 3:
break # 当i等于3时跳出循环
print(i)
输出:文章来源:https://www.toymoban.com/news/detail-626362.html
1
2
- 当i等于3时,执行了break语句,因此循环被中断,print(i)语句不再执行。
- continue关键字用于跳过当前迭代,继续执行下一次循环迭代。当程序执行到continue语句时,当前迭代中continue之后的代码不再执行,直接进入下一次迭代。
for i in range(1, 6):
if i == 3:
continue # 当i等于3时跳过当前迭代
print(i)
输出:文章来源地址https://www.toymoban.com/news/detail-626362.html
1
2
4
5
- 当i等于3时,执行了continue语句,因此当前迭代中的print(i)语句被跳过,直接进入下一次迭代。
综合案例:发工资
- 某公司,账户余额有1W元,给20名员工发工资。
- 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
- 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
- 如果工资发完了,结束发工资。
money = 10000
for i in range(1, 21):
import random
score = random.randint(1, 10)
if score < 5:
print(f"员工{i},绩效分{score},低于5,不发工资,下一位。")
continue
else:
money -= 1000
print(f"向员工{i}发放工资1000元,账户余额还剩余{money}元")
if money == 0:
print("工资发完了,下个月领取吧。")
break
到了这里,关于从入门到专业:探索Python中的判断与循环技巧!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!