条件控制语句
1. 条件判断语句(if语句)
- 1执⾏的流程:
- if语句在执⾏时,会先对条件表达式进⾏求值判断,
- 如果为True,则执⾏if后的语句
- 如果为False,则不执⾏
- 语法:if 条件表达式 :
代码块 - 代码块代码块中保存着⼀组代码,同⼀个代码块中的代码,要么都执⾏要么 都不执⾏
- 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
- 代码块就是⼀种为代码分组的机制
2. input() 函数
- 该函数⽤来获取⽤户的输⼊
- input()调⽤后,程序会⽴即暂停,等待⽤户输⼊
- ⽤户输⼊完内容以后,点击回⻋程序才会继续向下执⾏
- ⽤户输⼊完成以后,其所输⼊的的内容会以返回值得形式返回
3. if-else语句
- 语法:
if 条件表达式 :
代码块
else :
代码块
- 执⾏流程:
- if-else语句在执⾏时,先对if后的条件表达式进⾏求值判断
- 如果为True,则执⾏if后的代码块
- 如果为False,则执⾏else后的代码块
4. if-elif-else 语句
- 语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
…
else :
代码块
- 执⾏流程:
- if-elif-else语句在执⾏时,会⾃上向下依次对条件表达式进⾏求值判断,
- 如果表达式的结果为True,则执⾏当前代码块,然后语句结束
- 如果表达式的结果为False,则继续向下判断,直到找到True为⽌
- 如果所有的表达式都是False,则执⾏else后的代码块
- 总结: if-elif-else中只会有⼀个代码块会执⾏
5. while语句
- 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
- 语法:
while 条件表达式 :
代码块
else:
代码块
- 执⾏流程:
- while语句在执⾏时,会先对while语句后⾯的条件表达式进⾏求值判断
- 如果判断结果为True,则执⾏循环体的逻辑(代码块)
- 循环体执⾏完毕之后,继续对条件表达式进⾏求值判断,⼀次类推
- 直到判断结果为False
循环嵌套
- Python 语⾔允许在⼀个循环体⾥⾯嵌⼊另⼀个循环。
- 语法:
while 表达式:
while 表达式:
代码块
代码块
for 变量 in 循环规则:
for 变量 in 循环规则
代码块
代码块
7. break和continue
- break 可以⽤来⽴即退出循环语句,包括else语句
- continue ⽤来跳过当初循环


拓展
random的用法
random此模块为各种分布实现伪随机数生成器。对于整数,有一个范围内的统一选择。对于序列,有一个随机元素的统一选择,一个就地生成列表的随机排列的函数,以及一个无需替换的随机采样函数。
random()方法:返回随机生成的一个实数,它在[0,1)范围内;但该方法不能直接访问,需要导入random模块,然后通过random静态对象调用该方法。
import random
- 1.实值分布
1)random.random():生成一个0到1的随机浮点数
2)random.uniform(a, b):返回一个随机浮点数
- 2.整数函数
1)random.randint(a, b) :返回一个随机整数

- 3.序列函数
random.choice(sequence)
参数sequence表示一个有序类型。泛指一系列的类型:list,tuple,字符串等,如果为空会报错。

random.choices(sequence, weights=None, cum_weights=None, k=1)
从参数列表中随机选择,weights可设置权重,提高选择机率;k返回的列表大小
random.shuffle(sequence, function)
把一个列表内元素的顺序打乱,列表的内存地址不变


random.sample(sequence, k)
返回一个列表,其中从序列中随机选择指定的返回数量。

random.seed(a, version)
自定义随机数生成器的起始编号,将会返回相同值。

课堂练习
- 1.九九乘法表
i = 0
while i < 9:
j = 0
i += 1
while j < i:
j += 1
num1 = j * i
print(f'{j} * {i} = {num1}', end='\t')
print()

课后练习
- 1.求1000以内所有的水仙花数
代码:
import random
i = 100
while i < 999:
a = (i // 100)
b = (i - a * 100) // 10
c = i - a * 100 - b * 10
if i == a ** 3 + b ** 3 + c ** 3:
print(i)
i += 1

- 2.获取用户输入的任意数,判断其是否是质数?
代码:
while True:
i = int(input('请输入:'))
if i < 10:
if (i == 2) or (i == 3) or (i == 5) or (i == 7):
print(f'{i}为质数')
else:
print(f'{i}不为质数')
else:
if (i / 2 != i // 2) and (i / 3 != i // 3) and (i / 5 != i // 5) and (i / 7 != i // 7):
print(f'{i}为质数')
else:
print(f'{i}不为质数')

- 3.猜拳游戏:
- 出拳 玩家:手动输入 电脑:随机输入
- 判断输赢: 玩家获胜 电脑获胜 平局
代码:
import random
print('''1 = 拳头
2 = 布
3 = 剪刀 ''')
while True:
player = int(input('玩家请出拳:'))
computer = random.randint(1, 3)
if 1 <= player <=3:
if player == computer:
print(f'computer = {computer} player = {player} \n平手')
elif (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print(f'computer = {computer} player = {player} \n电脑获胜')
else:
print(f'computer = {computer} player = {player} \n玩家获胜')
else:
print('请重新输入')

- 4.星星菱形排布
代码:
while True:
i = 0
num1 = int(input('请输入行数:'))
while i < num1:
j = 0
s = int((num1 + 1)/2)
t = int((num1 - 1)/2)
if i < s:
while j < 2 * i + 1:
j += 1
print((t - i) * ' ', '*' * j)
else:
while j < 2 * (num1 - 1 - i) + 1:
j += 1
if num1 % 2 != 0:
print((i - t) * ' ', '*' * j)
else:
print((i - 1 - t) * ' ', '*' * j)
i += 1

本文详细介绍了Python中的条件控制语句(if、if-else、if-elif-else)及循环语句(while、for)的使用方法,并通过实例演示了如何应用这些语句进行编程。

被折叠的 条评论
为什么被折叠?



