05 - 条件控制语句

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

条件控制语句

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值