一、if条件分支结构
1.单项分支
if 条件: 判断条件(运算符得到的结果为:True、False)
逻辑代码 (如果条件为True,就执行if模块下面的代码,反之则不执行)
user_name = input("请输入您的账号:")
if user_name == "root":
print("欢迎root管理员登录系统") # 当条件为True的时候,执行if模块下面的代码
print("属于if模块代码外的内容") # 不是if模块内的代码,不受if条件约束,始终会执行
2.双项分支
if 条件:
代码块A
else:
代码块B
满足if条件,执行代码块A ,反之执行代码块B
op=input("是否还存在bug-是/否:")
if op=="是":
print("回退版本,不上线了!")
else:
print("可以上线")
3.多项分支
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
... ...
else:
如果以上的条件都不满足,那么最后还要做什么操作
age = int(input("请输入您的年龄:")) # input接收的值,是什么类型? str 需类型转换
if age >= 60 or age <= 3:
print("免票")
elif age >= 12 and age < 60:
print("成人票")
elif 4 <= age < 12:
print("儿童票")
4.if判断条件
理论上来,if后面可以接任意条件,只要它的结果为bool值就可以
比较运算:> < == !=
逻辑运算:and or not
成员运算:in 、 not in
数学运算:+ - * / ------任何非0和非空(null)值为True,0 或者 null为False。
直接使用bool:True、False
# 案例1:
word = int(input("请输入文字:"))
if "w" not in word:
print("w不在{}内".format(word))
else:
print("w在{}内".format(word))
# 案例2:
a = int(input("请输入数字:"))
if a - 1:
print("if输出的内容")
else:
print("else输出的内容")
5.if子分支
if ... else ... 嵌套的使用
if 条件1:
if 条件2:
... ...
else:
else:
score = int(input("请输入你的总成绩:"))
if score >= 330:
print("恭喜你过目标院校的分数线了")
math = int(input("请输入你的数学成绩:"))
if math >= 60:
print("恭喜你数学单科过线")
else:
print("很遗憾,数学单科未过线,请做好调剂准备")
else:
print("很遗憾,你没有通过目标院校分数线,请做好调剂准备")
二、循环结构
让某些步骤(某段代码)反复去执行,这个就叫循环,具体的执行的次数,由后面的条件决定的
1.while循环
语法规则
初始条件设置 —— 通常是重复执行的计数器
while 条件(判断 计数器 是否达到 目标次数):
条件满足时,执行的代码1
条件满足时,执行的代码2
条件满足时,执行的代码3
…………
处理条件(计数器 + n)
只要条件为True,那么while里面的逻辑代码块,就会反复执行-----从头部,执行到while代码块中的最后一行;然后会重新进行 条件判断(为True,继续执行,如果为False,则终止循环)
案例3:
b = 10
while b: # 非0则为True ,当b=0的时候,while b 可以理解为 while Fasle,终止循环
print("欢迎来到CSDN")
b -= 2
无限循环
如果 while 后的条件语句永远为True,就会陷入死循环的情况。避免死循环的方式:
(1)while后面的条件不为恒定值(如案例3所示)
• 引入变量,并在内部实现变量的递增或递减
• 变量与while后面的条件组合
(2)while后面的条件为恒定值
• 引入continue和break
• 添加内部判断条件
关键字 | 描述 |
---|---|
continue | 跳出当前循环,回过头直接去判断条件,遇到continue不会继续往下执行了,如果条件此时为False,就会终止整个循环,反之则继续循环 |
break | 跳出整个循环,不会去再次判断条件,直接使循环结束 |
案例4:
print("欢迎来到CSDN")
while True:
oper = int(input("请输入指令-1.写博客、2.关键字查询:"))
if oper==1:
print("请开始你的创作")
elif oper==2:
print("请输入查询关键字/内容")
else:
print("输入有误,请核查后再次输入")
continue
break
2.for 循环
(1)for 循环遍历
a.遍历 – 复杂的数据结构中,将里面的元素 一个个的获取出来
b.循环
语法:
for 变量名 in 可遍历的数据: (可拆分的 -- 字符串、列表.. ...)
循环体逻辑:会在每一次循环的时候把遍历的数据一个个拿出来,并且赋值给这个变量名
str1="hello world"
for i in str1:
print(i,end=" ")
range – 迭代器,用于生产一个整数的序列
语法格式:
range(起始值,结束值,指定步长)
*起始值可以省略,如果省略,则从0开始
*结束值:指定计数的结束值(但不包括该值,如range(7),得到的值是0-6,不包括7) -前闭后开
*指定步长:即2个数之间的间隔,可以省略,如果省略,则表示步长为1
for i in range(10): # range默认从0开始,可以省略你的初始值(start),也可以重新设置初始值
print(i)
(2)双重for循环
for循环嵌套
案例5:
k = 0
for i in range(1, 10):
for j in range(1, 10):
k += 1
print(k) # 输出结果81
案例6:
#九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print("{} * {} = {}".format(j, i, i * j), end=" ") #print自带换行符
#print 是通过end来指定结尾的符号是什么
print() # 换行
(3)for循环嵌套if语句
for i in range(10):
if i==2:
print("输出A")
elif i==3:
print("输出B")
else:
print("输出C")