python 条件控制语句
- 1.条件判断控制语句
- 1.1 input()函数
- 1.1.1 input的特点:
- 1.2 if 语句
- 1.2.1 if-else语句
- 1.2.1.1 语句语法
- 1.2.1.1 执行流程:
- 1.2.2 if-elif-else 语句
- 1.2.2.1 语句语法:
- 1.2.2.2 执行流程:
- 2.循环控制
- 2.1 while语句
- 2.2 语法:
- 2.3 三大要素
- 2.4 while循环练习
- 2.5 break和continue 语句
- 2.5.1 break
- 2.5.2 continue
- 2.6 for循环
- 2.6.1 语法
- 2.6.2 需求
- 2.6.3 for循环循环的次数
- 2.6.4 for循环遍历
- 3.while 的循环嵌套
- 3.1语法
- 3.2 练习
- 3.2.1 练习1:
- 3.2.2 练习2:
- 3.2.3 练习3:
- 4.range函数
- 4.1语法
- 4.2 用法
- 4.2.1 用法1
- 4.2.2 用法2
- 4.2.3 用法3
- 5. 课后练习
1.条件判断控制语句
1.1 input()函数
• 该函数用来获取用户的输入
• 输入的值类型为字符串
• 可以采用函数将字符串转换为其他形式:
• eval(str):去掉字符串的‘或’
a = eval(input('请输入0.1或者2的数字中的一个:'))
print(type(a)) # '1' 1 str类型 必须由''"" """""" 包裹的才叫做str
print(a)
• int(str):强制转换为int形式
print(int(0.1))
>>> 0
• float(str):强制转换为浮点型
print(float(2))
>>> 2.0
• abs(str):取绝对值
print(abs(-2))
>>> 2
1.1.1 input的特点:
input具有阻塞程序的作用,你不输入,那么程序永远都不会继续往下执行
eg:
a=input('请输入一个数:')
>>> 请输入一个数:
b=float(input(请输入一个小数:))
>>> 请输入一个小数:
1.2 if 语句
1.2.1 if-else语句
1.2.1.1 语句语法
if + 条件:
代码块
else:
代码块
1.2.1.1 执行流程:
• if-else语句在执行时,先对if后的条件表达式进行求值判断
• 如果为True,则执行if后的代码块
• 如果为False,则执行else后的代码块
1.2.2 if-elif-else 语句
1.2.2.1 语句语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
........
else :
代码块
1.2.2.2 执行流程:
• if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
• 如果表达式的结果为True,则执行当前代码块,然后语句结束
• 如果表达式的结果为False,则继续向下判断,直到找到True为止
• 如果所有的表达式都是False,则执行else后的代码块
oney = int(input('请输入你的工资:'))
if money >= 50000:
print('有钱任性')
elif money >= 30000:
print('有钱真好')
elif money >=10000:
print('哥也月薪上万了')
elif money >= 5000:
print('工资还说的过去')
elif money >=2000:
print('省吃俭用吧')
else:
print('肠胃不好,只能吃软饭')
>>> 请输入你的工资:200
>>> 肠胃不好,只能吃软饭
>>> 请输入你的工资:2000
>>> 省吃俭用吧
>>> 请输入你的工资:9000
>>> 工资还说的过去
>>> 请输入你的工资:10000
>>> 哥也月薪上万了
>>> 请输入你的工资:30000
>>> 有钱真好
>>> 请输入你的工资:50000
>>> 有钱任性
if-elif-else中只会有一个代码块会执行
2.循环控制
2.1 while语句
循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
著名的现象:死循环 当有条件的时候,检测到这个条件符合要求,才会去调用一次死循环
while True:
print(111)
2.2 语法:
while 条件表达式 :
代码块
else:
代码块
i = 1
while i <= 10:
print(111)
print(i)
i += 1
>>> 111
1
111
2
111
3
111
4
111
5
111
6
111
7
111
8
111
9
111
10
2.3 三大要素
• 初始值
• while条件判断语句
• 自增长
• 死循环
2.4 while循环练习
# 求100以内所有的偶数的和, 包括100
# 首先拿到1-100的数
# 拿到偶数
# 在相加
i = 0
r = 0
while i < 100:
i += 1
# print(i)
if i % 2 == 0:
r = r + i # r += i
print(r)
j = 0
s = 0
while j < 100:
j += 2
s += j
print(s)
2.5 break和continue 语句
2.5.1 break
可以用来立即退出循环语句,会直接结束循环 终止循环, 不会执行else后面的语句
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
else:
print('while循环正常结束')
2.5.2 continue
continue的特性:当执行到continue的时候,我们的循环会跳过档次循环,直接开始下一次的循环
i = 0
while i < 5:
if i == 3:
continue
print(i)
i += 1
else:
print('while循环正常结束')
2.6 for循环
2.6.1 语法
语法
for 变量 in 序列(遍历的规则):
代码块
2.6.2 需求
拿到一个列表数据,要对列表数据进行数据处理之后,再用。
list1 = [1, 2, 3, 4, 5]
list2 = []
for i in list1: # 遍历list1列表中元素
i += 1
list1.remove(i)
# list2.append(i)
print(list1)
2.6.3 for循环循环的次数
如果你在循环过程中对列表的长度做了修改,那么你的循环次数就不在受控制了数取决于列表的长度
2.6.4 for循环遍历
通过for循环来遍历列表
语法 for 变量 in 序列(遍历的规则):
代码块
注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
dict1 = dict(a='11', b='12', c='ss')
for k, v in dict1.items():
print(k, '=', v)
3.while 的循环嵌套
Python 语言允许在一个循环体里面嵌入另一个循环。
3.1语法
while 表达式:
while 表达式:
代码块
代码块
for 变量 in 循环规则:
for 变量 in 循环规则:
代码块
代码块
3.2 练习
3.2.1 练习1:
i = 0
while i < 5: # i控制行数
j = 0
while j < 5: # j控制每一行有几列*
print('*', end='')
j += 1
print()
i += 1
*****
*****
*****
*****
*****
3.2.2 练习2:
i = 0
while i < 5: # i控制行数
j = 0
while j < i+1: # j控制每一行有几列*
print('*', end='')
j += 1
print()
i += 1
*
**
***
****
*****
3.2.3 练习3:
i = 0
while i < 5: # i控制行数
j = 0
while j < 5-i: # j控制每一行有几列*
print('*', end='')
j += 1
print()
i += 1
*****
****
***
**
*
4.range函数
range是Python内置函数,用作范围、区间的定义,
range(start,stop,step)
4.1语法
range(开始位置, 结束位置, 步长)
range(start,stop,step)
start: 计数从start开始。默认是从0开始。
例如 range(5)等价于range(0,5)
stop: 计数到stop结束,但不包括 stop。
例如:list(range(0,5))是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。
例如:range(0,5)等价于range(0, 5, 1)
ps:开始位置可以省略,省略即开始位置的数为0, 步长省略即为1
左闭右开区间
4.2 用法
4.2.1 用法1
只有一个参数,表示从0到这个参数内的所有整数,不包括参数
ran=range(10)
定义一个list,用来将range的范围的所有数进行盛放为list形式
arr_str=list(ran)
print(ran)
print(arr_str)
4.2.2 用法2
两个参数,第一个表示左边界,第二个表示右边界,range表示从左边界到右边界的所有整数,左闭右开。
ran=range(1,15)
arr_str=list(ran)
print(ran)
print(arr_str)
4.2.3 用法3
三个参数,第一个表示左边界,第二个表示右边界,第三个表示步长step,即两个整数之间相差的数,左闭右开。
ran=range(1,15,2)
arr_str=list(ran)
print(ran)
print(arr_str)
运行结果:
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1, 15)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
range(1, 15, 2)
[1, 3, 5, 7, 9, 11, 13]
eg:
range(9) # 相当于 range(0, 9, 1)
print(range(9))
print(list(range(9)))
for i in range(9):
print(i)
5. 课后练习
- 求1000以内所有的水仙花数
- 获取用户输入的任意数,判断其是否是质数?
- 打印九九乘法表
- 猜拳游戏:
• 出拳 玩家:手动输入 电脑:随机输入
• 判断输赢: 玩家获胜 电脑获胜 平局
# 1. 求1000以内所有的水仙花数
for i in range(100,1000):
a=i//100
b=(i%100)//10
c=i%10
d=a**3+b**3+c**3
if d==i :
print(i)
# 2. 获取用户输入的任意数,判断其是否是质数?
e: int = int(input('请输入任意数:'))
i = 1
while i < e :
if e%i==0:
print('不是质数')
break
else:
print('是质数')
break
i += 1
else:
print('不在范围内')
# 3.九九乘法表
i = 1
while i <= 9:
j = 1
while(j <= i): # j的大小是由i来控制的
print('{}x{}={}\t'.format(j, i, i * j), end='')
j += 1
print('')
i += 1
# 4. 猜拳游戏:
# • 出拳 玩家:手动输入 电脑:随机输入
# • 判断输赢: 玩家获胜 电脑获胜 平局
import random
while 1:
list = [0, 1, 2]
player = eval(input("从0-‘剪刀’,1-‘石头’,2-‘布’中任选一个数:"))
if player not in list:
print('输入错误')
break
computer = random.randint(0,3)
if player == computer:
print('平局')
elif player == (0 and computer == 2)or (player == 1 and computer == 0) or (player == 2 and computer == 1):
print('恭喜你,你赢了!')
else:
print('抱歉,你输了!')
judge = input("还玩吗?输入t退出,Enter键继续...")
if judge.lower() == "t":
break
else:
continue