目录
一、判断(if)语句
二、逻辑运算
三、if语句进阶
四、综合应用--石头剪刀布
五、循环
一、判断(if)语句
1.判断语句演练--判断年龄
"""
需求
1.定义一个整数变量记录年龄
2.判断是否满18岁(>=)
3.如果满18岁,允许进网吧嗨皮
"""
#1.定义年龄变量
age = 18
#2.判断是否满18岁
# if 语句以及缩进部分的代码是一个完整的代码块
if age >= 18:
#3.如果满了18岁,可以进网吧嗨皮
print("可以进入网吧嗨皮")
#3.思考!- 无论条件是否满足都会执行
print ("这句代码什么时候执行?")
2.运算符
比较(关系)运算符
3.else处理条件不满足的情况
如果需要在不满足条件的时候,做某些事情,可以使用else处理条件不满足的情况
if 要判断的条件:
条件成立时,要做的事情
......
else:
条件不成立时,要做的事情
......
注意:if 和 else 语句以及各自的缩进部分共同是一个完整的代码块
4.判断语句演练--判断年龄改进
"""
需求:
1.输入用户年龄
2.判断是否满18岁(>=)
3.如果满18岁,允许进网吧嗨皮
4.如果未满18岁,提示回家写作业
"""
# 1.输入用户年龄
age = int(input("今年多大了?"))
# 2.判断是否满18岁
if age >= 18:
print("可以进网吧嗨皮")
else:
print("你还没长大,应该回家写作业!")
二、逻辑运算
在程序开发中,通常在判断条件时,会需要同时判断多个条件,只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符。
逻辑运算符可以把多个条件按照逻辑进行连接,变成更复杂的条件。
python中的逻辑运算符包括:与and/或or/非not三种。
1.and
条件1 and 条件2
与/并且,两个条件同时满足,返回True,只要有一个不满足,就返回False。
逻辑运算演练:
"""
练习1:定义一个整数变量age,编写代码判断年龄是否正确
要求人的年龄在0-120之间
"""
age = int(input("请输入年龄:"))
if age >= 0 and age <= 120:
print("年龄正确")
else:
print("年龄不正确")
"""
练习2:定义两个整数变量python_score、c_score,编写代码判断成绩
要求只要有一门成绩>60分就算合格
"""
python_score = int(input("请输入python成绩:"))
c_score = int(input("请输入c成绩:"))
if python_score > 60 or c_score > 60:
print("考试通过")
else:
print("考试失败,继续努力")
"""
练习3:定义一个布尔型变量is_employee,编写代码判断是否是本公司员工
如果不是提示不允许入内
"""
#注意:python将非空字符串解读为True,故该程序只有输入回车时返回False
is_employee = bool(input("请输入你的证明:"))
#如果不是提示不允许入内
if not is_employee:
print("非本公司人员,请勿入内")
三、if语句进阶
1.elif
在开发中,使用if可以判断条件,使用else可以处理条件不成立的情况,但是,如果希望再增加一些条件,条件不同,需要执行的代码也不同时,就可以使用elif。
语法格式如下:
if 条件1:
条件1满足执行的代码
……
elif 条件2:
条件2满足时,执行的代码
……
elif 条件3:
条件3满足时,执行的代码
……
else:
以上条件都不满足时,执行的代码
……
对比逻辑运算符的代码
if 条件1 and 条件2:
条件1满足 并且 条件2满足 执行的代码
……
注意:elif和else都必须和if联合使用,而不能单独使用;可以将if、elif和else以及各自缩进的代码,看成一个完整的代码块。
"""
需求:
1.定义holiday_name字符串变量记录节日名称
2.如果是情人节应该买玫瑰/看电影
3.如果是平安夜应该买苹果/吃大餐
4.如果是生日应该买蛋糕
5.其他的日子每天都是节日啊......
"""
holiday_name = input("今天是什么节日?")
if holiday_name == "情人节":
print("买玫瑰")
print("看电影")
elif holiday_name == "平安夜":
print("买苹果")
print("吃大餐")
elif holiday_name == "生日":
print("买蛋糕")
else:
print("每天都是节日啊......")
2.if的嵌套
elif的应用场景是:同时判断多个条件,所有的条件是平级的。
在开发中,使用if进行条件判断,如果希望在条件成立的执行语句中再增加条件判断,就可以使用if的嵌套。
if的嵌套的应用场景就是:在之前条件满足的前提下,再增加额外的判断。
if的嵌套的语法格式,除了缩进之外和之前的没有区别。
语法格式如下:
if 条件 1:
条件 1 满足执行的代码
……
if 条件 1 基础上的条件 2:
条件 2 满足时,执行的代码
……
# 条件 2 不满足的处理
else:
条件 2 不满足时,执行的代码
# 条件 1 不满足的处理
else:
条件1 不满足时,执行的代码
……
2.1 if的嵌套演练--火车站安检
"""
需求:
1.定义布尔型变量has_ticket表示有车票
2.定义整型变量knife_length表示刀的长度,单位:厘米
3.首先检查是否有车票,如果有,才允许进行安检
4.安检时,需要检查刀的长度,判断是否超过20厘米
如果超过20厘米,提示刀的长度,不允许上车
如果不超过20厘米,安检通过
5.如果没有车票,不允许进门
"""
# 定义布尔型变量 has_ticket 表示是否有车票
has_ticket = True
# 定义整数型变量 knife_length 表示刀的长度,单位:厘米
knife_length = 20
# 首先检查是否有车票,如果有,才允许进行 安检
if has_ticket:
print("有车票,可以开始安检...")
# 安检时,需要检查刀的长度,判断是否超过 20 厘米
# 如果超过 20 厘米,提示刀的长度,不允许上车
if knife_length >= 20:
print("不允许携带 %d 厘米长的刀上车" % knife_length)
# 如果不超过 20 厘米,安检通过
else:
print("安检通过,祝您旅途愉快……")
# 如果没有车票,不允许进门
else:
print("大哥,您要先买票啊")
四、综合应用--石头剪刀布
目标:1.强化多个条件的逻辑运算;2.体会import导入模块(“工具包”)的使用
1.石头剪刀布-简易版
"""
需求:
1.从控制台输入要出的拳--石头(1)/剪刀(2)/布(3)
2.先假定电脑只会出石头,完成整体代码功能
3.比较胜负
"""
# 从控制台输入要出的拳-石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):"))
# 电脑 随机 出拳 - 先假定电脑只会出石头,完成整体代码功能
computer = 1
print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player,computer))
# 玩家胜
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("不服气,我们决战到天明!")
2.石头剪刀布-升级版(随机数)
在pthon中,要使用随机数,首先需要导入随机数的模块--“工具包”
import random
导入模块后,可以直接在模块名称后面敲一个.然后按Tab键,会提示该模块中包含的所有函数
random.randint(a,b),返回[a,b]之间的整数,包含a和b
例如:
import random
random.randint(12,20) #生成的随机数n:12 <= n <= 20
random.randint(20,20) #结果永远是20
random.randint(20,10) #该语句是错误的,下限必须小于上限
"""
需求:
1.从控制台输入要出的拳--石头(1)/剪刀(2)/布(3)
2.电脑随机出拳,完成整体代码功能
3.比较胜负
"""
# 导入随机工具包
# 注意:在导入工具包的时候,应该将导入的语句,放在文件的顶部
# 因为,这样可以方便下方的代码,在任何需要的时候,使用工具包中的工具
import random
# 从控制台输入要出的拳-石头(1)/剪刀(2)/布(3)
player = int(input("请输入您要出的拳 石头(1)/剪刀(2)/布(3):"))
# 电脑 随机 出拳 - 先假定电脑只会出石头,完成整体代码功能
computer = random.randint(1,3)
print("玩家选择的拳头是 %d - 电脑出的拳是 %d" % (player,computer))
# 玩家胜
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("不服气,我们决战到天明!")
五、循环
1.程序的三大流程
在程序开发中,一共有三种流程方式:
顺序--从上到下,顺序执行代码
分支--根据条件判断,决定执行代码的分支
循环--让特定代码重复执行
2.while 循环基本使用
循环的作用就是让指定的代码重复的执行
while循环最常用的应用场景就是让执行的代码按照指定的次数重复执行
2.1 while语句基本语法
初始条件设置-通常是重复执行的计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
处理条件(计数器 + 1)
注意:
while语句以及缩进部分是一个完整的代码块
第一个while循环
"""
需求:
打印5遍Hello Python
"""
# 1.定义重复次数计数器
i = 0
# 2.使用while判断条件
while i < 5:
# 要重复执行的代码
print("Hello Python")
# 处理计算器 i
i = i + 1
print("循环结束后的 i = %d" % i)
注意:循环结束后,之前定义的计数器条件的数值是依旧存在的
死循环
由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止!
2.2 赋值运算符
在python中,使用=可以给变量赋值
在算术运算时,为了简化代码的编写,python还提供了一系列的与算术运算符对应的赋值运算符
注意:赋值运算符中间不能使用空格
2.3 python中的计数方法
常见的计数方法有两种,可以分别称为:
自然计数法(从1开始)--更符合人类的习惯
程序计数法(从0开始)--几乎所有的程序语言都选择从0开始计数
2.4 循环计算
在程序开发中,通常会遇到利用循环重复计算的需求
遇到这种需求,可以:
1.在while上方定义一个变量,用于存放最终计算
2.在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量
# 需求:
# 计算0~100之间所有数字的累计求和结果
# 0.定义最终结果的变量
result = 0
# 1.定义一个整数的变量记录循环的次数
i = 0
# 2.开始循环
while i <= 100:
# 每一次循环,都让result这个变量和i这个计数器相加
result += i
# 处理计数器
i += 1
print("0~100之间的数字求和结果:%d" % result)
# 需求进阶
# 计算0~100之间所有偶数的累计求和结果
"""
开发步骤:
1.编写循环确认要计算的数字
2.添加结果变量,在循环内部处理计算结果
"""
# 0.最终结果
result = 0
# 1.计数器
i = 0
# 2.开始循环
while i <= 100:
# 判断计数器是否为偶数
if i % 2 == 0:
# i是偶数时,都让result这个变量和i这个计数器相加
result += i
# 处理计数器
i += 1
print("0~100之间的偶数求和结果:%d" % result)
3.break和continue
break和continue是专门在循环中使用的关键字
break某一条件满足时,退出循环,不再执行后续重复的代码
continue某一条件满足时,不执行后续重复的代码
break和continue只针对当前所在循环有效
i = 0
while i < 10:
if i == 3:
break
print(i)
i += 1
print("over")
i = 0
while i < 10:
if i == 3:
# 在使用关键字之前,需要确认循环的计数是否修改,否则可能会导致死循环
i += 1
continue
print(i)
i += 1
4.while循环嵌套
4.1 循环嵌套
while嵌套就是:while里面还有while
while 条件 1:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
......
while 条件 2:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
......
处理条件 2
处理条件 1
4.2 循环嵌套演练--九九乘法表
第1步:用嵌套打印小星星
# 在控制台连续输出五行*,每一行星号的数量依次递增
# *
# **
# ***
# ****
# *****
# 1.定义一个计数器变量,从数字1开始
row = 1
# 2.开始循环
while row <= 5:
print("*" * row)
row += 1
第2步:使用循环嵌套打印小星星
在默认情况下,print函数输出内容之后,会自动在内容末尾增加换行
如果不希望末尾增加换行,可以在print函数输出内容的后面增加,end=""
其中""中间可以指定print函数输出内容之后,继续希望显示的内容
语法格式如下:
# 向控制台输出内容结束之后,不会换行
print("*", end="")
# 单纯的换行
print("")
end=""表示向控制台输出内容结束之后,不会换行
# 假设python没有提供字符串的*操作(乘法操作)拼接字符串
# 需求:在控制台连续输出五行*,每一行星号的数量依次递增
# *
# **
# ***
# ****
# *****
row = 1
while row <= 5:
# 假设python没有提供字符串*操作
# 在循环内部,再增加一个循环,实现每一行的星星打印
col = 1
while col <= row:
print("*",end="")
col += 1
# 每一行星号输出完成后,再增加一个换行
print("")
row += 1
第三步:九九乘法表
# 需求:输出九九乘法表
"""
1.打印9行小星星
2.将星星替换成每个乘法算式
"""
row = 1
while row <= 9:
col = 1
while col <= row:
# print("*", end="")
print("%d * %d = %2d "% (col,row,col * row), end=" ")
col += 1
print("")
row += 1
字符串中的转义字符
\t 在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐
\n 在控制台输出一个换行符
制表符的功能实在不使用表格的情况下在垂直方向按列对齐文本
# \t 在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐
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