day3 分支和循环
一、if - elif - else
1、应用场景
针对不同的条件实现不同的操作
2、注意
不同条件之间满足:如果其中一个条件已经满足了,就没有必要判断其他条件的必要
3、语法
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
…
else:
代码段N
4、强调
-
后面的条件是在前面的条件不成立的前提下进行判断的
-
如果条件之间是没有关系的,有几个条件就要用几个if
-
如果条件之间是有关系的,就要用if- elif结构
-
# 练习:要求根据symbol的符号不同,对num与2进行不同的操作,例如:symbol是'+' -> num就加2; '-' -> num就减2; '*' -> num*2,依次类推 # 如果symbol不是数学运算给出 '不能操作!' 的提示 num = 20 symbol = input('请输入数学运算符:') # is_operate = True 可以增加一个变量来显示当前数据是否已经操作 if symbol == '+': print(num + 2) # 没有修改num的值 # num += 2 修改了num最终的值 elif symbol == '-': print(num - 2) elif symbol == '*': print(num * 2) elif symbol == '/': print(num / 2) elif symbol == '//': print(num // 2) elif symbol == '%': print(num % 2) elif symbol == '**': print(num ** 2) else: print('不能操作!') # 可以不用一个一个的print,直接在最后print(num)就可以
二、if嵌套:在if中有其他的if语句
1、语法
if 条件语句:
if 条件语句:
代码段
else:
代码段
else:
代码段# 练习:如果num是奇数就打印 '奇数', 否则打印偶数。如果个数是0,打印 '10的倍数' num = 210 if num % 2 == 0: print('偶数') if num % 10 == 0: print('10的倍数') else: print('奇数') if num % 10 == 1: print('个位数是1')
三、三目运算符
1、C的三目运算符
表达式1 - ?表达式2 - : 表达式3 -
判断表达式1的结果是否是真,如果是真,整个云算的结果是表达式2,否则整个运算结果是表达3
2、python的三目运算符
- 表达式2 if 表达式1 else 表达式3
- 运算规则:判断表达式1的结果是否是True,如果是真,整个云算的结果是表达式2,否则整个运算结果是表达3
result1 = 30 if 10 > 20 else 40 print(result1) result2 = 30 if 100 > 29 else 40 print(result2) # 相当于 if 100 > 29: result2 = 30 else: result2 = 40 print(result2) # 练习:根据年龄值打印成年或者未成年( age = 23 result = '成年' if age >= 18 else '未成年' print(result)
四、for循环(重要)
1、语法
for 变量 in 序列:
循环体
2、说明
- for - 关键字,固定写法
- 变量 - 和定义变量的时候变量名的要求和规范一样;如果变量的值在循环体中不使用,变量名可以用_代替
- in - 关键字;固定写法
- 序列 - 指python中容器型数据类型,例如:字符串、列表、元祖、集合、字典、迭代器、生成器、range等
数据、布尔值、不能放在后面 - : - 关键字;固定写法
- 循环体 - 结构上:和for保持一个缩进的一条或者多条语句;逻辑上:指的是需要重复执行的代码
3、执行过程
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体
(for循环的循环体执行次数看序列中元素的个数)
# 练习:hello word 重复打印5次 for x in 'zxcvb': print(x, 'hello word!')
五、range函数-产生指定范围的数字序列
- range(N) - 产生一个[0,N)的数字序列(N是正整数),例如:range(4) - 产生0、1、2、3
N是多少,就代表着序列中有多少个元素,也就代表着循环体循环N次 - range(M,N) - 产生一个[M,N)的数字序列(要求M<N,并且M和N是整数);
例如:range(-2,2)-产生-2、-1、0、1、 - range(M,N,step) - 产生一个[M,N)的数字序列,每次数值增加step;
例如;range(-3,3,2) - 产生-3,-1,1
for x in range(7):
print('哈哈哈哈')
for _ in range(7): # 不需要变量时,可以用下划线_来代替
print('哈哈哈哈')
for x in range(0, 3):
print('x2:', x)
for x in range(-3, 3, 2): # 递增函数
print('x3:', x)
for x in range(100, 49, -1): # 递减函数
print('x4:', x)
六、while循环
1、语法
while 条件语句:
循环体
2、说明
- while - 关键字;固定写法
- 条件语句 - 任何有结果的表达式都可以(赋值语句不行)
- : - 固定写法
- 循环体 - 和while保持一个缩进的一条或者多条语句;逻辑上:需要重复执行的代码
3、执行过程
- 先判断条件语句是否为True(如果不是布尔值就转换为布尔值),如果条件语句为True就执行循环体,
- 再判断条件语句是否为True,如果为True,就再执行循环体,以此循环,直到条件语句为False,循环终止
x = 0
while x < 5:
print('hello word!')
x += 1
七、for循环和while循环的选择
如果循环次数是确定的就用for循环,如果循环次数不确定就用while循环
# 练习;写程序让客户不断输入内容直到输入的内容是0为止
x = 1
while x != '0': # 这里的0不能是数字0,必须加引号变成字符串来进行比较
x = input('请输入:') # input返回的数据是字符串
print('结束')