python基础知识-分支和循环

本文详细介绍了Python中的流程控制,包括顺序结构、分支结构(单分支、双分支、多分支)和循环结构(for循环、while循环)。特别讨论了for循环与while循环的选择,并举例展示了range函数在创建等差数列中的应用。

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

python基础知识-分支和循环

1.流程控制:通过代码控制代码执行的顺序

1.1.三种程序执行的方式

(1)顺序结构:代码从上往下按顺序依次执行,每条语句只执行一次(默认)

(2)分支结构:执行代码的时候根据条件选择执行或者不执行某些代码(if)

​ **a.**单分支结构 -如果XX就XX(满足某个条件才执行某个操作,不满足就不执行)

​ 1)语法:

​ if 条件语句:

​ 代码块

​ 2)说明:

​ --条件语句对应的代码必须是一个有结果的表达式;

​ --关键字if为固定写法;

​ --冒号(:)也是固定写法(必须是英文输入法下面的冒号);

​ --结构上,代码块就是和if保持同一个缩进的一条或多条语句,至少一条;

​ 3)执行过程:先判断条件语句语句是否成立,如果成立就执行代码块,否则代码块就不会执行

案例:

score = int(input("请输入分数:"))
if (score > 80):
    print("通过")
    
    #结果
    请输入分数:81
    通过
    
#水仙花数:一个三位数,各位数的立方和等于它本身
number = int(input("请输入:"))
ge=number%10
shi=number//10%10
bai=number//100
flower=ge**3+shi**3+bai**3
if(number==flower):
    print("这个数是水仙花数")
    #结果
    请输入:153
	这个数是水仙花数

b.双分支结构 --如果XX否则就XX(满足条件就执行某个操作,不满足条件就执行另一个操作)

​ 1)语法:

​ if 条件语句:

​ 代码块1(满足条件执行)

​ else:

​ 代码块2(不满足条件执行)

案例:

age = int(input("请输入年龄:"))
if (age >= 18):
    print("成年")
else:
    print("未成年")

member = int(input("请输入:"))
if member > 10:
    member -= 5
    print(f"member的值{member}")
else:
    member += 5
    print(f"member的值{member}")
    
    #结果
    请输入年龄:13
	未成年
	请输入:10
	member的值15

c.多分枝结构 —如果XX就XX,如果XX就XX,如果XX就XX…(根据不同的场景实现不同的功能)

​ 1)语法:

方法1(如果一个条件成立。其他条件也成立):

if 条件语句1:

​ 代码语句1

if 条件语句2:

​ 代码语句2

if 条件语句3:

​ 代码语句3

方法2(如果其中一个条件成立,其他条件绝不会成立):

if 条件语句1:

​ 代码语句1

elif 条件语句2:

​ 代码语句2

elif 条件语句3:

​ 代码语句3

案例:

score = int(input("请输入分数:"))
if score == 100:
    print("真棒!!给你买车")
elif 90 <= score < 100:
    print("不错哦!!给你买鞋")
elif 80 <= score < 90:
    print("还行!请你吃火锅")

else:
    print("给你一顿")

num = int(input("请输入数字:"))
if num % 2 == 0:
    print(f"{num}是偶数")
elif num % 2 != 0:
    if num % 5 == 0:
        print(f"{num}是能被5整除的奇数")
else:
    print(f"{num}是奇数")
    
    
    #结果
    请输入:10
	给你一顿
	请输入数字:666
	666是偶数

(3)循环结构:让代码重复执行–代码只写一次,重复执行多次(for,while)

a.for循环

​ 1)语法:for 变量 in 序列:

​ 循环体

​ 2)说明:

​ -for --关键字:固定语法

​ -变量 ----变量名

​ -in ----关键字

​ -序列 —容器型数据类型(可以存放多个值)的数据就是序列

​ 常见的容器型数据:字符串(“”),列表([]),元组(()),集合({}),字典({“”:xxx} 注意字典分为键和值,键需要用引号引起来,非数值型的值需要引号)

​ - 循环体 -结构上就是和for保持一个缩进的一条或者多条语句,至少一条;逻辑上,需要重复执行的代码

​ 3)执行过程:

​ 让变量去序列中取值,一个一个的取,取完为止,每取一个就执行循环体,循环次数由序列中的元素的个数来决定。

for i in [0,1,2,3,4]:
    print(i,"hello world!!!")
    
#结果
0 hello world!!!
1 hello world!!!
2 hello world!!!
3 hello world!!!
4 hello world!!!

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行(for 循环中的 else 关键字指定循环结束时要执行的代码块)。

for num in range(10,20):  # 迭代 10 到 20 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print ('%d 等于 %d * %d' % (num,i,j))
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print ('%d 是一个质数' % num)
b.while循环

在给定的判断条件为 true 时执行循环体,否则退出循环体

(1)语法:

while 判断条件(condition):
    循环体

​ 循环体可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true,在 python 中,while … else 在循环条件为 false 时执行 else 语句块。

控制语句描述
break 语句在语句块执行过程中终止循环,并且跳出整个循环
continue 语句在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
else 语句else是循环体的一部分,是为了保持程序结构的完整性。

注意:break和continue只能在循环体中使用。

**(2)执行过程:**先判断条件是否成立,成立就执行循环体,执行完循环体子啊此判断条件是否成立,成立就再次执行循环,不成立就退出循环。

案例:

x = 0
while x < 5:
    print("hello world")
    x += 1

*1)*break语句用来终止整个循环语句(整个循环直接结束,不再进行下一次循环),即使循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。


for letter in 'Python':     # 第一个实例
   if letter == 'h':
      break
   print ('当前字母 :', letter)
#结果
当前字母 : P
当前字母 : y
当前字母 : t

  • break的应用 --当while遇到break

    while True

    ​ 需要重复执行的操作

    ​ if 循环结束的条件:

    break

    案例:

  • # 猜数游戏(系统随机生成一个整数,与你输入的数作比较)
    # 猜数游戏
    from random import randint#导入随机模数模块
    
    a = randint(0, 100)
    count = 3
    while 0 < count < 4:#控制次数
        num = int(input("请输入数字:"))
        count -= 1
        if num > a:
            print("大了,你还有{}次机会".format(count))
        elif num < a:
            print("小了,你还有{}次机会".format(count))
        else:
            print("真棒,答对了!!!")
            break
    #结果
    请输入数字:20
    小了,你还有2次机会
    请输入数字:50
    小了,你还有1次机会
    请输入数字:90
    大了,你还有0次机会
    

2) continue 语句跳出本次循环,进入下一次循环*(换言之:continue 语句是一个删除的效果,他的存在是为了删除满足循环条件下的某些不需要的成分)*,而break跳出整个循环

案例:

for letter in 'Python':     # 第一个实例
   if letter == 'h':
      continue
   print ('当前字母 :', letter)
#结果
当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : o
当前字母 : n
c. for和while的选择

遇到问题时优先考虑for循环,for循环解决不了的问题才使用while循环

for循环无法解决的问题:

​ 1)死循环

​ 2)循环次数不确定(循环的次数不由程序员确定,而是由使用程序的用户使用的行为决定)

​ 案例:写程序提示用户输入密码,直到输入的密码和系统保存的密码相同为止

  • 完整的循环

    esle同样是for 和while循环体的部分,else的存在不影响原来的循环的执行

    • 完整的for循环

      for i in 序列:

      循环体

      else:

      ​ 代码块

    • 完整的while循环

      while 条件语句:

      ​ 代码块

      else:

      ​ 代码块

      注意:

      (1)如果前面的循环是正常结束(for把数据取完了导致循环结束;while循环的条件不成立导致循环结束的),else后面的代码会在循环结束后执行。

      (2) 如果前面的循环是因为break而结束的,循环结束时不会执行else后面的代码。

1.2 range函数 —>创建等差数列

(1)range(N) 创建[0,N)–[]表示可以取到,()表示取不到,差是1

例如:range(5)—0,1,2,3,4

for i in range(5):
    print("hello world")
    
    
    #结果
hello world
hello world
hello world
hello world
hello world

(2)range(M,N) 创建M到N的等差数列

例如:range(5,10) 5,6,7,8,9

(3)range(M,N,step) step为步长,即每隔多少取一个

range(5,20,3) 5,8,11,14,17,20

注意:step可以为负

例如:range(5,10,-2) 10,8,6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值