3.1 判断的定义
如果条件满足,才能做某件事;如果条件不满足,就做另外一件事,或者什么也不做。
用python将下面流程图翻译为伪代码:

解答:

3.2 if语句的体验
3.2.1 if判断语句基本语法
在python中,if语句就是用来进行判断的,格式如下:
if 要判断的条件:
条件成立时,要做的事情
......
注意:
- 代码的缩进为一个tab键,或者4个空格,建议用空格
- 在python中,缩进与空格不能混合用
练习:判断年龄

# 1. 定义一个整数变量记录年龄
age = 26
# 2. 判断是否满了18岁
if age >= 18:
# 3.如果满了18岁,可以进网吧嗨皮
print("你已经成年了,欢迎进网吧嗨皮")
3.2.2 运算符

3.2.3 Pycharm使用的小技巧

if else格式:

练习:判断年龄改进

# 输入用户年龄
age = int(input("请输入年龄:"))
# 判断是否满18岁
if age >= 18:
# 如果满18岁,允许进网吧嗨皮
print("你已经成年,欢迎进网吧嗨皮")
else:
# 如果未满18岁,提示回家写作业
print("你还没有成年,请回家写作业吧")
分析代码执行顺序:
条件成立时:

条件不成立时:

3.2.4 逻辑运算
逻辑运算符包括:与(and)、或(or)、非(not)三种
and(与):
条件1 and 条件2 #两个条件都成立时为True
or(或):
条件1 or 条件2 #两个条件有一个成立时为True,都不成立时为False
not(非):
not (条件) #条件为True时,为假
练习1:定义一个整数变量age,编写代码判断年龄是否正确,要求人的年龄在0-120之间
# 练习1:定义一个整数变量age,编写代码判断年龄是否正确
age = 120
# 要求人的年龄在0-120之间
if age >= 0 and age <= 120:
print("年龄正确")
else:
print("年龄不正确")
练习2:定义两个整数变量python_score、c_score,编写代码判断成绩,要求只要有一门成绩大于60就算合格。
# 练习2:定义两个整数变量python_score、c_score,编写代码判断成绩
python_score = 80
c_score = 75
# 要求只要有一门成绩大于60就算合格
if python_score > 60:
print("考试通过")
else:
print("考试失败")
练习3:定义一个布尔型变量,is_employee,编写代码判断是否是本公司员工,要求如果不是提示不允许入内。
# 练习3:定义一个布尔型变量,is_employee,编写代码判断是否是本公司员工
is_employee = True
# 要求如果不是提示不允许入内
if not is_employee:
print("非本公司人员,请勿入内")
3.2.5 if语句进阶
在开发中,使用if可以判断条件,使用else可以处理条件不成立的情况,但是希望再增加一些条件,条件不同,需要执行的代码也不同,就可以使用elif。
语法格式:

练习:女友的节日
需求:
- 定义holiday_name字符串变量记录节日名称
- 如果是情人节,应该买玫瑰/看电影
- 如果是平安夜,应该买苹果/吃大餐
- 如果是生日,应该买蛋糕
- 其他的日子每天都是节日啊...
#定义holiday_name字符串变量记录节日名称
holiday_name = "情人节"
#如果是情人节,应该买玫瑰/看电影
if holiday_name == "情人节":
print("买玫瑰/看电影")
#如果是平安夜,应该买苹果/吃大餐
elif holiday_name == "平安夜":
print("买苹果/吃大餐")
#如果是生日,应该买蛋糕
elif holiday_name == "生日":
print("买蛋糕")
#其他的日子每天都是节日啊...
else:
print("每天都是节日啊...")
3.2.6 if的嵌套
elif应用的场景是:同时判断多个条件,所有条件是平级的
if的嵌套的应用场景:在之前条件满足的前提下,在增加额外的判断。
语法格式:

练习:火车站的安检
需求:
- 定义布尔型变量,has_ticket表示是否有车票
- 定义整型变量knife_length表示到的长度,单位:厘米
- 首先检查是否有车票,如果有,才允许进行安检
- 安检时,需要检查刀的长度,判断是否超过20厘米
- 如果超过20厘米,提示刀的长度,不允许上车
- 如果不超过20厘米,安检通过
- 如果没有车票,不允许进门
# 定义布尔型变量,has_ticket表示是否有车票
has_ticket = True
# 定义整型变量knife_length表示到的长度,单位:厘米
knife_length = 30
# 首先检查是否有车票,如果有,才允许进行安检
if has_ticket:
print("车票检查通过,准备开始安检")
# 安检时,需要检查刀的长度,判断是否超过20厘米
if knife_length > 20:
# 如果超过20厘米,提示刀的长度,不允许上车
print("您携带的刀太长了,有%d公分长!"%knife_length)
print("不允许上车")
else:
#如果不超过20厘米,安检通过
print("安检通过,祝您旅途愉快")
# 如果没有车票,不允许进门
else:
print("大哥,请先买票")
综合应用—石头剪刀布
需求:
- 从控制台输入要出的拳—石头(1)/剪刀(2)/布(3)
- 电脑随机出拳—先假定电脑只会出石头,完成整体代码功能
- 比较胜负

# 从控制台输入要出的拳—石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳—石头(1)/剪刀(2)/布(3):"))
# 电脑随机出拳—先假定电脑只会出石头,完成整体代码功能
computer = 1
print("玩家选择的拳头是 %d-电脑出的拳是 %d:"%(player,computer))
# 比较胜负
# 1 石头 胜 剪刀
# 2 剪刀 胜 布
# 3 布 胜 石头
if ((player == 1 and computer == 2)
or (player == 2 and computer == 3)
or (player == 3 and computer == 1)):
print("欧耶,电脑弱爆了!")
#平局
elif player == computer:
print("真是心有灵犀啊,再来一盘吧!")
#其他的情况就是电脑获胜
else:
print("不服气,我们决战到天明!")
3.2.7 随机数的处理
在python中,要使用随机数,首先要导入随机数的模块—“工具包”
import random

random.randint(a,b) #返回一个整数,包含a和b
改进综合练习—石头剪刀布:
#导入随机工具包
import random
# 从控制台输入要出的拳—石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳—石头(1)/剪刀(2)/布(3):"))
# 电脑随机出拳—先假定电脑只会出石头,完成整体代码功能
computer = random.randint(1,3)
print("玩家选择的拳头是 %d-电脑出的拳是 %d:"%(player,computer))
# 比较胜负
# 1 石头 胜 剪刀
# 2 剪刀 胜 布
# 3 布 胜 石头
if ((player == 1 and computer == 2)
or (player == 2 and computer == 3)
or (player == 3 and computer == 1)):
print("欧耶,电脑弱爆了!")
#平局
elif player == computer:
print("真是心有灵犀啊,再来一盘吧!")
#其他的情况就是电脑获胜
else:
print("不服气,我们决战到天明!")
3.3 循环
程序的三大流程:
- 顺序:从上向下,顺序执行代码
- 分支:根据条件判断,决定执行代码的分支
- 循环:让特定代码重复执行

3.3.1 while循环基本使用
基本语法:

例子:打印5遍Hello Python
#打印5遍Hello Python
#1.定义一个整数变量,记录循环次数
i = 1
#2.开始循环
while i <= 5:
# 1>处理计数器
print("Hello Python")
i = i + 1
3.3.2 赋值运算符

3.3.3 Python中的计数方法
程序计数都是从0开始的。所以程序员应该早点养成从0计数的习惯。
3.3.4 循环计算
开发中,遇到利用循环重复计算的需求,可以:
- 在while上方定义一个变量,用于存放最终计算结果
- 在循环内部,每次循环都用最新的计算结果,更新之前定义的变量
例子1:
- 计算0-100之间所有数字的累计求和结果
# 计算0-100之间所有数字的累计求和结果
#0.定义最终结果的变量
result = 0
# 1.定义一个整数变量记录循环的次数
i = 0
# 2.开始循环
while i <= 100:
#处理计算器
#每一次循环,都让result这个变量和i这个计数器相加
result += i
i += 1
print(result)
例子2:累计求和进阶
- 计算0-100之间所有偶数的累计求和结果
开发步骤:
- 编写循环确认要计算的数字
- 添加结果变量,在循环内部处理计算结果
# 计算0-100之间所有偶数的累计求和结果
# 开发步骤:
# 1.编写循环确认要计算的数字
# 2.添加结果变量,在循环内部处理计算结果
# 1>定义一个记录最终结果的变量
result = 0
i = 0
while i <= 100:
#判断变量i中的数值,是否是一个偶数
#i % 2 ==0
if i % 2 == 0:
result += i
i += 1
print("0-100之间偶数累加结果=%d" %result)
3.3.5 break和continue
break和continue是专门在循环中使用的关键字
- break某一条件满足时,退出循环,不在执行后续重复的代码
- continue某一条件满足时,不执行后续重复的代码
break和continue只针对当前所在循环有效

案例:break案例
i = 0
while i < 10:
#break 某一条件满足时,退出循环,不在执行后续重复代码
#i==3
if i == 3:
break
print(i)
i += 1
print("over")
结果:

案例:continue案例
i = 0
while i < 10:
#continue 某一个条件满足时,不执行后续重复代码
# i == 3
if i == 3:
#注意:在循环中,如果使用continue这个关键字
#在使用关键字之前,需要确认循环的计数是否修改
#否则可能会导致死循环
i += 1
continue
print(i)
i += 1
结果:

3.3.6 while循环嵌套
while嵌套就是:while里面还有while

练习1:在控制台连续输出五行*,每一行星号的数量依次递增
# 1.定义一个计数器变量,从数字1开始,循环会比较方便
row = 1
#2.开始循环
while row <= 5:
print("*"*row)
row += 1
结果:

补充知识点:
对print函数的使用的补充
- 在默认情况下,print函数输出内容之后,会自动在内容末尾增加换行
- 如果不希望末尾增加换行,可以在print函数输出内容的后面增加,end=""
- 其中,""中间可以指定print函数输出内容之后,会自动在末尾增加换行
例子1:
print("*")
print("***")
结果

例子2:
print("*",end="---")
print("***")
结果

练习2:在控制台连续输出五行*,每一行星号的数量依次递增(用while循环)

#1>完成5行内容的简单输出
#2>分析每行内部的*应该如何处理
row = 1
while row <= 5:
#每一行打印的星星和当前行一致
col = 1
while col <= row:
print("*",end="")
col += 1
print("*")
row += 1
练习:九九乘法表

开发步骤:
1.打印9行小星星

完成第一步:
#1.打印9行小星星
row = 1
while row <= 9:
col = 1
while col <= row:
print("*", end="")
col += 1
print("")
row += 1
2.将每一个*换成元素
#1.打印9行小星星
row = 1
while row <= 9:
col = 1
while col <= row:
#print("*", end="")
print("9*9=81", end=" ")#end后是空格
col += 1
print("")
row += 1
结果:

修改行号:
row = 1
while row <= 9:
col = 1
while col <= row:
#print("*", end="")
print("9*%d=81" %row, end=" ")
col += 1
print("")
row += 1
结果:

最终结果:
row = 1
while row <= 9:
col = 1
while col <= row:
#print("*", end="")
print("%d*%d=%d" %(col,row,col*row), end=" ")
col += 1
print("")
row += 1
结果:

补充知识:字符串中的转义字符

#t在控制台输出一个制表符,使得在输出文本时垂直方向对齐
print("1t2t3")
print("10t20t30")
#n在控制台输出一个换行符
print("helonhello")
结果:

改进九九乘法表:
row = 1
while row <= 9:
col = 1
while col <= row:
#print("*", end="")
print("%d*%d=%d" %(col,row,col*row), end="t")
col += 1
print("")
row += 1
结果:
