一、判断语句
1.布尔类型与比较运算符
布尔类型是表示真假的数据类型,字面量True表示真,字面量False表示假。
通过比较运算符可以得到布尔类型的输出
a = 5 > 3
b = "floor" == "flour"
print(f"{a}, {b}")
# 运行后将会得到输出:True, False
(此处显而易见的是比较运算的优先级高于赋值运算)
常见比较运算符:
2.if语句
格式为:
if 判断条件:
条件成立下的指令
注意判断条件后面的冒号以及指令前的缩进(四个空格),由此确定代码块归属
# 用户输入一个数字
user_input = int(input("请输入一个数字: "))
# 判断输入的数字是否为正数,并输出相应的信息
if user_input > 0:
print("输入的数字是正数。")
print("这是 if 语句的代码块。")
# 这是 if 语句之外的代码,不受 if 的影响
print("这是 if 语句之外的代码。")
3.if else语句
在if else语句中if及其代码块,条件满足时执行;而else搭配if的判断条件,当不满足时执行。
注意else不需要判断条件,当if的条件不满足时,else执行;且else的代码块,同样要4个空格作为缩进
# 成年人判断练习
age = int(input("请输入你的年龄:"))
if age >= 18:
print("您已成年,游玩需要补票10元。")
else:
print("您未成年,可以免费游玩。")
print("祝您游玩愉快")
4.if elif else语句
if elif else语句的作用是完成多个条件的判断,使用时注意:
elif可以写多个
判断是互斥且有序的,上一个满足后面的就不会判断了
# elif语句
height = int(input("请输入您的身高:"))
vip_level = int(input("请输入您的VIP等级:"))
if height < 140:
print("身高小于140cm,可以免费")
elif vip_level > 3:
print("vip级别大于3,可以免费")
else:
print("抱歉,您需要买票")
print("祝您游玩愉快")
(若把else语句注释掉,则等效于多个相互独立的if语句)
5.判断语句的嵌套
嵌套判断语句用于多条件、多层次的逻辑判断。
嵌套判断语句,一定要注意空格缩进,通过空格缩进来决定层次关系。
以下练习案例可以说明
"""
题目:定义一个数字(1~10,随机产生),通过3次判断来猜出来数字
要求:
1. 数字随机产生,范围1-10
2. 有3次机会猜测数字,通过3层嵌套判断实现
3. 每次猜不中,会提示大了或小了
"""
import random
ans = random.randint(1,10)
num = int(input("请输入您的预测:"))
if num == ans:
print("恭喜,一次猜中")
else:
if num >ans:
print("您的预测偏大")
else:
print("您的预测偏小")
num = int(input("请再次输入您的预测:"))
if num == ans:
print("恭喜,两次猜中")
else:
if num > ans:
print("您的预测偏大")
else:
print("您的预测偏小")
num = int(input("请第三次输入您的预测:"))
if num == ans:
print("恭喜,三次猜中")
else:
print("三次均未猜中")
二、循环语句
1.while语句
while 循环条件:
条件满足时,执行指令1
条件满足时,执行指令2
条件满足时,执行指令3
......(只要条件满足就会无限循环)
# 通过while循环,计算从1累加到100的和
i = 0
num = 0
while i <= 100:
num += i
i += 1
print(num)
为了更好地理解与应用while语句,此处给出一个例子:
设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
无限次机会,直到猜中为止
每一次猜不中,会提示大了或小了
猜完数字后,提示猜了几次
"""
解决该问题,用布尔类型作为循环条件是个不错的方法,可以实现对循环次数的把我
"""
import random
num = random.randint(1, 100)
i = 0
flag = True
while flag:
guess_num = int(input("请输入您的预测:"))
i += 1
if guess_num < num:
print("第%d次猜错了,您的预测偏小" % i)
elif guess_num > num:
print("第%d次猜错了,您的预测偏大" % i)
else:
flag = False
print("恭喜您,第%d次猜对了" % i)
2.while嵌套循环
注意条件的控制,避免无限循环多层嵌套,主要空格缩进来确定层次关系。
补充知识:
关于print()的输出结果会自行换行,若想实现print()输出不换行,只需要在()内部加上end = ' '
制表符\t效果等同于tab键,用于使多行字符串对齐
# 换行输出:Hello
# World
print("Hello")
print("World")
# 不换行输出:HelloWorld
print("Hello", end='')
print("World")
"""
不对齐输出:
welcome to CN
nice to meet you
"""
print("welcome to CN")
print("nice to meet you")
"""
对齐输出:
welcome to CN
nice to meet you
"""
print("welcome \tto CN")
print("nice to \tmeet you")
以实现九九乘法表为例:
# 九九乘法表
# 外层循环
i = 1
while i <= 9:
# 内层循环
j = 1
while j <= i:
print("%d * %d = %d\t" %(j, i, i * j), end='')
# print(f"{j} * {i} = {j*i}\t", end='')
j += 1
i += 1
print()
体现了while循环嵌套的思想。
3.for语句
for循环是一种”轮询”机制,是对一批内容进行”逐个处理”,即将”待办事项”逐个完成的循环机制。
语句格式如下
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
使用for语句时需注意:
无法定义循环条件,只能被动取出数据处理
循环内的语句,需要有空格缩进
# 练习数一数有几个a
name = "atheism is a brand of it cast"
i = 0
for x in name:
if x == "a":
i += 1
print(i)
4.for嵌套循环
需要注意缩进,嵌套for循环同样通过缩进确定层次关系。
for循环和while循环可以相互嵌套使用。
for循环实现九九乘法表:
# 使用两个嵌套的for循环实现特定格式的九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
result = i * j
print(f"{j} * {i} = {result}\t", end='')
print() # 在每一行结束后换行