目录
一、Python中的分支
1.分支介绍
2.分支的关键字
2.1 if 介绍
2.2 else 和 elif 介绍
3.关键字的使用
* range 介绍
二、python中的循环
1.循环对象
2.break和continue
3.for循环嵌套与案例
分支是一种选择结构,即依据条件选择性的执行。
如以下代码,条件是满足的,因此if中的两条语句都会执行。 若不满足,则不会执行。
if True and not 10 < 7:
pass # 代表此处有内容,解释器不会报错
print("你好,中国!")
例如以下代码,虽然 if 中包含的代码只是一行汉字和一个!,没有 print 和 " ",但运行时不会报错,因为条件为 False 时,if 中的语句便不被执行。
if 3 > 4:
我是错的!
注意:使用 if 语句要进行缩进,一般缩进一个 Tab 键的距离即可,这也是新手常犯的错误!
Python中使用分支结构,需要用到的关键字为 if 、else 、elif 。
看如下代码,条件返回的 Flase,即 7不大于9。按理说不会向下执行,但不会执行不代表什么都不写,要有代码。
if 7 > 9:
报的错为 expected an indented block after 'if',即“期望在'if'后面出现缩进块”。
如果不知道写什么,可以写 pass。可自行尝试。
else 和 elif 在 if 之后,else 后的语句是当 if 条件不满足时,会被执行。elif 是为了能够进行多次判断。
if 3 > 7:
print("hh")
elif 2 > 1:
print("对了")
猜一下执行结果吧~
* else 和 elif 都不能单独使用。
看如下代码的执行结果:
else:
print("Chian")
elif:
print("你好")
你会发现返回的是 “invalid syntax” ,即无效语法,也就是说这样写不对。
关键字如何使用?
看懂下面小题,你就对 if 、 else 、elif 能够熟练运用了。
# 输入学生成绩 如果成绩不在[0, 100]之间 则输出不合法
# [90, 100] 优秀
# [75, 90) 良好
# [60, 75) 及格
# [0, 60) 渣渣
解题代码如下:
score = float(input("成绩:"))
if score >= 0 and score <= 100:
if score < 60:
print("渣渣")
elif score < 75:
print("及格")
elif score < 90:
print("良好")
else:
print("优秀")
else:
print("不合法")
range 的意思其实就是范围。话不多说,看代码
datas = range(10)
print(list(datas))
datas = range(7,15,2)
print(list(datas))
datas = range(70,10,-10)
print(list(datas))
结果截图:
你会发现,range( ) 中可以写入三个值,
当步长为整数时,代表递增,起始值要小于结束值。为负值时,代表递减,起始值要大于结束值。
注意:当range( ) 中只有一个值时,代表从0开始,而且range( )返回的是一个列表。
用 [ ] 表示就代表一个列表,可放入任何类型的值,例如[ 1,"你好",3.14,"abc", True, None]
循环,就是对一个缩进块重复执行。
Python中的循环对象要有一系列的内容。
看如下代码:
for i in range(10):
print("醒醒", end = "")
for c in "你 好 中 国":
print(c, end = "")
上面的代码都有循环内容,内容个数决定循环次数。range(10) 就是 0 - 9 ,循环 10 次,执行结果就是打印 10 次 “醒醒”。
“你 好 中 国” 有4个汉字,3个空格,因此执行7次。打印的又是 c ,所以可以把字符串直接打印了。
理解本题,加深印象
计算 从500开始前10个5的倍数的平均数
start = 500
total = 0
for i in range(10):
total += start
start += 5
print(total / 10)
结果是 522.5 哦。
如下代码即可展示他们的作用:
for i in range(10):
if i == 7:
continue
print(i)
if i == 8:
break
你会发现 7 和 9 没有打印。原因是当 i 等于 7 时 跳出了当前循环,不再向下执行。
i 等于 8 时直接终止了循环。循环不再执行。
题目一:计算5的阶乘和,即 5!+ 4!+ 3!+ 2!+ 1!
解题代码:
total = 0
for i in range(1, 6): # 计算总和
product = 1
for j in range(1, i + 1): #计算每个数的阶乘
product *= j
total += product
print(total)
运行结果是153,你能看懂???
如果看懂了,可以尝试打印乘法口诀表,二者是类似的,或者先去写乘法口诀表,再来看本题。新手学循环嵌套可能会小卡壳,所以不太懂也没关系,可以在评论区@我。
再来一道:
题目二:打印如下图形
解题代码:
for i in range(11):
for j in range(11):
if i <= j and i + j <= 10 or i >= j and i + j >= 10 or i ==5 and j == 5:
print(" * ", end="")
else:
print(" ", end="") # 此行用来打印空格,不能少
print()
这里面用到了比较运算符的优先级,要知道 and 的优先级大于 or ,就像数学运算中,乘除的优先级大于加减。
✨✨✨ 结束 ,有不详细或错误的地方,欢迎评论,我会尽力完善