python基础day-03:分支和循环

本文详细介绍了Python中的分支结构,包括if单分支、if-else双分支、if-elif-else多分支以及if嵌套。同时,还探讨了for循环和range函数的用法,以及while循环的执行原理。对于何时选择for循环或while循环,文章也给出了指导建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 
 

分支结构

  • 流程控制
  • 顺序执行
  • 代码从上往下一条一条按顺序执行(默认)

 

一、分支结构(选择结构)

根据条件选择执行或者不执行某些代码(python中只有if语句)

1.1 if单分支结构

  • 应用:
    如果满足某个条件就执行某段代码,条件不满足就不执行

  • 语法:

    if 条件语句:
          代码段

  • 说明:

    1. if 关键字;固定写法
    2. 条件语句 任何有结果的表达式(包括:具体的数据、已经赋值过的变量、运算表达式,赋值语句除外…)
    3. 冒号: 固定写法(必须使用英文输入法下的冒号)
    4. 代码段 和if保持一个缩进的一条或多条语句;需要满足条件才会执行的代码
  • 执行过程:

    1. 先判断if后面的条件语句是否为True(如果不是布尔,就看结果的布尔值是否为True)
    2. 条件结果为True,就执行代码段,否则代码段不执行
if 100:
    print('第一条语句')
    print('第二条语句')
第一条语句
第二条语句
# 如果指定年龄成年,打印可以进网吧
age = 22
if age >= 18:
    print('可以进网吧')
可以进网吧

 

1.2 if双分支结构:if-else

  • 应用场景:
    满足条件执行某个操作,不满足时执行另一个操作

  • 语法:
    if 条件语句:
          代码段1(满足条件执行)
    else:
          代码段2(不满足条件的时候执行)

  • 执行过程:
    判断条件语句是否为True,如果为True就执行代码段1,否则执行代码段2

# 练习:根据num的值打印'奇数','偶数'
num = 0
if num % 2:
    print('奇数')
else:
    print('偶数')

# 练习:根据year的值打印'闰年'或'非闰年'
year = 200
if year % 400 == 0 or (year % 100 and year % 4 == 0):
    print('闰年')
else:
    print('非闰年')

# 练习:判断一个数是否是素数
num = 37
if num <= 0:
    print('非素数')
else:
    factors = []
    for i in range(2, num):
        if not num % i:
            factors.append(num % i)
            print('非素数')
            break
    if not factors:
        print('素数')

# 练习:根据symbol的值来对num进行加1或减1的操作
symbol = '-'
num = 10
if symbol == '+':
    num += 1
    print(num)
elif symbol == '-':
    num -= 1
    print(num)

偶数
非闰年
素数
9

 

1.3 多分支结构:if-elif-else

  • 应用场景:
    针对不同的条件实现不同的操作(不同条件之间:如果其中一个条件已经满足,就没有再判断其他条件的必要)

  • 语法:

if 条件语句1:
      代码段1
elif 条件语句2:
      代码段2
elif 条件语句3:
      代码段3

else:
      代码段n

注意:
后面的条件实在前面的条件不成立的前提下进行判断的

# 练习:要求根据symbol的符号不同,对num与2进行不同的操作,例如:symbol是'+' -> num就加2; '-' -> num就减2; '*' -> num*2,依次类推
# 如果symbol不是数学运算给出 '不能操作!' 的提示

symbol = '+'
num = 20

op = True
if symbol == '+':
    num += 2
elif symbol == '-':
    num -= 2
elif symbol == '*':
    num *= 2
elif symbol == '/':
    num /= 2
elif symbol == '//':
    num //= 2
elif symbol == '%':
    num %= 2
elif symbol == '**':
    num **= 2
else:
    op = False
    print('不能操作!')
print('num:', num)
# num: 22

 

1.4 if嵌套

在if语句中有其它的if语句

# 练习:如果num是奇数就打印 '奇数', 否则打印偶数。如果个数是0,打印 '10的倍数'
num = -6078
if num % 2:
    print('奇数')
else:
    print('偶数')
    if not num % 10:
        print('10的倍数')

 

1.5 三目运算符

  • C的三目运算符 ? :

    A    ?     B    :    C

    (判断表达式 A 的值是真,整个运算的结果是表达式 B ,否则结果是表达式 C)

  • python的三目运算符

    B    if    A    else    C

    (如果表达式 A 的值为True,结果为表达式 B ,否则结果为表达式 C ;在推导式的时候用的多)

result = 30 if 100 > 20 else 40
print(result)

30

# 练习:根据年龄值打印成年或者未成年
age = 19
adult = '已成年' if age >= 18 else '未成年'
print(f'{age}岁{adult}。')

19岁已成年。

 
 

循环

 

一、for循环

1.1 for循环

  • 语法:

    for 变量 in 序列:

          循环体

  • 说明:

    1. for - 关键字;固定写法
    2. 变量 - 和定义变量的时候变量名的要求和规范一样;(如果变量在循环体中不使用,变量名可以用下划线_表示)
    3. in - 关键字;固定写法
    4. 序列 - python中容器型数据类型,例如:字符串、列表、元组、集合(不按顺序遍历)、字典、迭代器、生成器、range等…
    5. 冒号: - 固定写法 循环体 - 和for保持一个缩进的一条或者多条语句
  • 执行过程:
    让变量去序列中取值,一个一个的取,取完为止,每取一个就执行一次循 环体(for循环的执行次数,看序列中的元素个数)

for x in 'abc':
    print(x, 'hello world!')
# 输出
a hello world!
b hello world!
c hello world!

 

1.2 range函数

  • range函数 - 产生指定范围的数字序列

  • range(N) - 产生一个[0, N)的数字序列,N为正整数
    例如:range(4)产生0、1、2、3的数字序列

  • range(M,N) - 产生一个[M, N)的数字序列,M<N,都是整数

  • range(M,N,step) - 产生一个[M, N)的数字序列,每次数值增加step
    如果step<0,也要M>N
    例如:range(-3,3,2) - 产生-3、-1、1

# 打印100行
for _ in range(100):
    print('hello world!')
# 练习:根据年龄值打印成年或者未成年
age = 19
adult = '已成年' if age >= 18 else '未成年'
print(f'{age}岁{adult}。')

# 练习:计算1+2+……+100的和
num = 0
for i in range(1, 100+1):
    num += i
print(num)

# 练习:统计1000以内能被3整除的个数
num = 0
for i in range(0, 1000, 3):
    num += 1
print(num)

# 练习:打印1000以内能被3整除并且个位是2的所有的数
for i in range(0, 1000, 3):  # 先看3的倍数,再找个位为2的数
    if i % 10 == 2:
        print(i, end=' ')
print()

for i in range(2, 1000, 10):  # 先看个位,再找倍数
    if not i % 3:
        print(i, end=' ')
print()

 

二、while循环

  • 语法:

    while 条件语句:
           循环体

  • 说明:

    1. while - 关键字;固定写法
    2. 条件语句 - 任何有结果的表达式(赋值语句不行)
    3. : - 固定写法
    4. 循环体 - 和while保持一个缩进的一条或者多条语句;需要重复执行的代码
  • 执行过程:

    1. 先判断条件语句是否为True,如果是就执行循环体,
    2. 执行完再判断条件语句是否为True,是的话继续执行循环体,
    3. 直到条件语句结果是False循环结束
       

三、for循环和while循环的选择

  • 如果循环次数确定使用for循环;如果循环次数不确定就使用while循环
# 练习:不输入0,就不结束
while input('请输入:') != '0':
    continue
# 练习:猜数字。随机产生一个数,请输入数字,指示大小,直到猜中
from random import randint
num = randint(0, 100)

guess = ''
print('猜数字🙃')
while True:
    guess = input('请输入数字:')
    if guess == '不猜了':
        print('结束')
        break
    else:
    	try:
    		guess = int(guess)
    	except:
    		print('格式不对?')
    	else:
		    if guess == num:
		        print('恭喜你,猜对了!')
		        break
		    elif guess > num:
		        print('大了,再小点儿~')
		    elif guess < num:
		        print('小了,再大点儿~')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值