作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白
系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发
如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
如果感觉博主的文章还不错的话,请三连支持一下博主哦
博主正在努力完成2023计划中:以梦为马,扬帆起航,2023追梦人
python入门到实战专栏:从入门到实战
Python爬虫开发专栏:从入门到实战
Python办公自动化专栏:从入门到实战
Python数据分析专栏:从入门到实战
Python前后端开发专栏:从入门到实战
目录
控制语句和逻辑思维
选择结构(条件判断结构)
双分支选择结构
多分支选择结构
循环结构
while循环
控制语句:把语句组合成能完成一定功能的小逻辑模块。
分为三类:顺序、选择和循环。 学会控制语句,是真正跨入编程界的“门槛”,是成为“程序猿”的 “门票”。
1、“顺序结构”代表 “先执行a,再执行b” 的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;
2、“顺序结构”代表 “先执行a,再执行b” 的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;
3、“循环结构”代表 “如果…,则重复执行…” 的逻辑。比如,如果没打通女朋友电话,则再继续打一 次; 如果没找到喜欢的人,则再继续找
实时效果反馈
1. 条件判断语句,代表现实中的什么逻辑?
A “先执行a,再执行b”
B “如果…,则…”
C “如果…,则重复执行…”
D 必须执行
2. 循环语句,代表现实中的什么逻辑?
A “先执行a,再执行b”
B “如果…,则…”
C “如果…,则重复执行…”
D 必须执行
选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分支、双分支、多分支。
单分支选择结构
if语句单分支结构的语法形式如下:
if 条件表达式:
语句/语句块
1 条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
2 语句/语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致
【操作】输入一个数字,小于10,则打印这个数字(if_test01.py)
num = input("输入一个数字:")
if int(num)<10:
print("小于10的数:"+num)
条件表达式详解
在选择和循环结构中,条件表达式的值为 False 的情况如下: False、0、0.0、空值None、空序列对象(空列表、空元祖、 空集合、空字典、空字符串)、空range对象、空迭代对象。 其他情况,均为 True 。这么看来,Python所有的合法表达式都可以看做条件表达式,甚至包括函数调用的表达式。
【操作】测试各种条件表达式
if 3: #整数作为条件表达式
print("ok")
a = [] #列表作为条件表达式,由于为空列表,是False
if a:
print("空列表,False")
s = "False" #非空字符串,是True
if s:
print("非空字符串,是True")
c = 9
if 3
⚠️条件表达式中,不能有赋值操作符 = 在Python中,条件表达式不能出现赋值操作符 = ,避免了其他 语言中经常误将关系运算符 == 写作赋值运算符 = 带来的困扰。 如下代码将会报语法错误:
if 3 < c and (c=20): #直接报语法错误!
print("赋值符不能出现在条件表达式中")
实时效果反馈
1. 如下代码,打印输出的是:
s = "False"
if s:
print("Hello")
A Hello
B False
C 无打印输出
D "Hello"
双分支结构的语法格式如下:
if 条件表达式:
语句1/语句块1
else:
语句2/语句块2
【操作】输入一个数字,小于10,则打印该数字;大于10,则打印 “数字太大”
num = input("输入一个数字:")
if int(num)<10:
print(num)
else:
print("数字太大")
三元条件运算符
Python的三元运算符,用来在某些简单双分支赋值情况。三元条件运算符语法格式如下:
条件为真时的值 if (条件表达式) else 条件为假时的 值
上一个案例代码,可以用三元条件运算符实现:
num = input("请输入一个数字")
print( num if int(num)<10 else "数字太大")
可以看到,这种写法更加简洁,易读。
实时效果反馈
1. 如下代码中if-else结果,可以用哪个代码替换:
a = input("输入一个数字:")
a = int(a)
if a<10:
a = 0
else:
a = "数字太大"
A a = 0 if a<10 : "数字太大"
B a = if a<10 else "数字太大"
C a = 0 if a<10 else "数字太大"
D a = a if a<10 else "数字太大"
多分支选择结构的语法格式如下:
if 条件表达式1 :
语句1/语句块1
elif 条件表达式2:
语句2/语句块2
...
elif 条件表达式n :
语句n/语句块n
[else: 语句n+1/语句块n+1 ]
注:计算机行业,描述语法格式时,使用中括号 [ ] 通常表示可选,非必选。
⚠️多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序
【操作】输入一个学生的成绩,将其转化成简单描述:不及格(小于 60)、及格(60-79)、良好(80-89)、优秀(90-100)
方法1(使用完整的条件表达)
score = int(input("请输入分数"))
grade = ''
if(score<60):
grade = "不及格"
if(60<=score<80):
grade = "及格"
if(80<=score<90):
grade = "良好"
if(90<=score<=100):
grade = "优秀"
print("分数是{0},等级是 {1}".format(score,grade))
每个分支都使用了独立的、完整的判断,顺序可以随意挪动, 而不影响程序运行。
方法2(利用多分支结构)
score = int(input("请输入分数"))
grade = ''
if score<60 :
grade = "不及格"
elif score<80 :
grade = "及格"
elif score<90 :
grade = "良好"
elif score<=100:
grade = "优秀"
print("分数是{0},等级是 {1}".format(score,grade))
⚠️多分支结构,几个分支之间是有逻辑关系的,不能随意颠倒顺序
【操作】已知点的坐标(x,y),判断其所在的象限
x = int(input("请输入x坐标"))
y = int(input("请输入y坐标"))
if(x==0 and y==0):print("原点")
elif(x==0):print("y轴")
elif(y==0):print("x轴")
elif(x>0 and y>0):print("第一象限")
elif(x<0 and y>0):print("第二象限")
elif(x<0 and y<0):print("第三象限")
else:
print("第四象限")
实时效果反馈
1. 如下代码,若输入的分数是75,打印输出的是:
score = int(input("请输入分数"))
grade = ''
if score<60 :
grade = "不及格"
elif score<80 :
grade = "及格"
elif score<90 :
grade = "良好"
elif score<=100:
grade = "优秀"
print("分数是{0},等级是 {1}".format(score,grade))
A 不及格
B 及格
C 分数是75,等级是及格
D 分数是75,等级是良好
选择结构嵌套
选择结构可以嵌套,使用时一定要注意控制好不同级别代码块的缩 进量,因为缩进量决定了代码的从属关系。 【操作】输入一个分数。分数在0-100之间。90以上是A,80以上是 B,70以上是C,60以上是D。60以下是E
score = int(input("请输入一个在0-100之间的数字:"))
grade = ""
if score>100 or score<0:
score = int(input("输入错误!请重新输入一个在0-100之间的数字:"))
else:
if score>=90:
grade = "A"
elif score>=80:
grade = 'B'
elif score>=70:
grade = 'C'
elif score>=60:
grade = 'D'
else:
grade = 'E'
print("分数为{0},等级为 {1}".format(score,grade))
或者也可以用下面代码更少的方法。不过,需要大家思考为什么这么写?
score = int(input("请输入一个在0-100之间的数字:"))
degree = "ABCDE"
num = 0
if score>100 or score<0:
score = int(input("输入错误!请重新输入一个在0-100之间的数字:"))
else:
num = score//10
if num<6:num=5
print("分数是{0},等级是 {1}".format(score,degree[9-num]))
循环结构用来重复执行一条或多条语句。表达这样的逻辑:如果符合条件,则反复执行循环体里的语句。在每次执行完后都会判断一 次条件是否为True,如果为True则重复执行循环体里的语句。图示 如下:
循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否则,就会变成一个死循环。
while循环的语法格式如下:
while 条件表达式:
循环体语句
我们通过一些简单的练习,来慢慢熟悉while循环。
【操作】利用while循环打印从0-10的数字
num = 0
while num<=10:
print(num)
num += 1
【操作】利用while循环,计算1-100之间数字的累加和;计算1- 100之间偶数的累加和,计算1-100之间奇数的累加和
num = 0
sum_all = 0 #1-100所有数的累加和
while num<=100:
sum_all += num
num += 1 #迭代,改变条件表达式,使循环趋于结束
print("1-100所有数的累加和",sum_all)
实时效果反馈
1. 如下代码,计算1+2+...+100,空白处需要填入的代码是:
num = 0
sum_all = 0 #1-100所有数的累加和
while num<=100:
___________
num += 1 #迭代,改变条件表达式,使循环趋于结束
print("1-100所有数的累加和",sum_all)
A sum_all = num"
B num+= sum_all
C sum_all = num+1
D sum_all += num