Python基础知识之4

您所在的位置:网站首页 python中while循环的基本结构 Python基础知识之4

Python基础知识之4

2024-07-10 03:46| 来源: 网络整理| 查看: 265

  控制结构就是控制程序执行顺序的结构。

  Python 有三大控制结构,分别是顺序结构、分支结构(选择结构)以及循环结构。任何一个项目或者算法都可以使用这三种结构来设计完成。这三种控制结构也是结构化程序

设计的核心,与之相对的是面向对象程序设计。有名的 c 语言就是结构化语言,而 c++、 Java 或者 python 等 都是面向对象的语言。 

  顺序结构

  顺序结构就是按照你写的代码顺序执行,也就是一条一条语句顺序执行。这种结构的逻辑最简单,就是按顺序执行就行了。

  分支结构(选择结构)  

  分支结构又称为选择结构,意思是程序代码根据判断条件,选择执行特定的代码。如果条件为真,程序执行一部分代码;否则执行另一部分代码。 

  在 Python 语言中,选择结构的语法使用关键字 if、 elif、 else 来表示,具体语法如下:

  基本语法有一下几种:

  1、if

  2、if...else

  3、if...elif...else

  4、if...elif...elif......else

  5、if 嵌套

# 分支结构 # if a = 1 if a == 1: print('此时a等于1') # if...else a = 2 if a == 1: print('此时a等于1') else: print('此时a不等于1') # if...elif...else a = 2 if a == 1: print('此时a等于1') elif a == 3: print('此时a等于3') else: print('此时a等于2') # if...elif...elif...else a = 2 if a == 1: print('此时a等于1') elif a == 3: print('此时a等于3') elif a == 4: print('此时a等于4') else: print('此时a等于2') # if嵌套 a = 2 b = 5 if a == 2: if b == 3: print('此时a等于2,b等于3') else: print('此时a等于2,b不等于3') else: print('此时a不等于2')

  循环结构

  循环结构是使用最多的一种结构。循环结构是指满足一定的条件下,重复执行某段代码的一种编码结构。Python的循环结构中,常见的循环结构是for循环和while循环。

  for循环  for 循环为循环结构的一种。在 Python 中,for 循环是一种迭代循环,也就是重复相同的操作,每次操作都是机遇上一次的结果而进行。 for 循环经常用与便利字符串、列表、字典等数据结构,for循环需要知道循环的次数。基本语法是:

  for...in...:

  例子:

# 利用了遍历字符串 str_data = 'Now is better than never' count = 0 for str_d in str_data: # print("遍历字符串: ",str_d) #统计字符串中 e出现的次数 if str_d == 'e': count +=1 print(count)

  遍历整个列表:

  遍历整个列表是利用 for 循环得到列表中的每一个元素值,然后执行相同的操作。但同时需要用到 index 和 value 值的时候, python 利用 enumerate()函数。 函数enumerate()

的参数为可遍历的变量,如字符串,列表等均可,返回 enumerate 类。

# 例子1、遍历列表 name_sanguo = ['曹操','孙权','刘备','诸葛孔明','周瑜','关羽','张飞'] print(F"列表元素有: {name_sanguo}") #对列表中每一个元素执行相同的操作 for name in name_sanguo: #print(name.title()+' 是《三国演义》中的角色名字。 ')# title()方法是返回字符串首字母大写,如果不以字母开头的,则全部为大写,在这里title()的意义并不大 print(name + ' 是《三国演义》中的角色名字。 ') ''' 结果为: 列表元素有: ['曹操', '孙权', '刘备', '诸葛孔明', '周瑜', '关羽', '张飞'] 曹操 是《三国演义》中的角色名字。 孙权 是《三国演义》中的角色名字。 刘备 是《三国演义》中的角色名字。 诸葛孔明 是《三国演义》中的角色名字。 周瑜 是《三国演义》中的角色名字。 关羽 是《三国演义》中的角色名字。 张飞 是《三国演义》中的角色名字。 ''' # 例子2、使用 enumerate()函数得到索引和值,此方式经常被使用 for index,name in enumerate(name_sanguo): print(name + f'是《三国演义》里的第{index + 1}个人物')# 加1是因为python计数是从0开始的 ''' 结果是: 曹操是《三国演义》里的第1个人物 孙权是《三国演义》里的第2个人物 刘备是《三国演义》里的第3个人物 诸葛孔明是《三国演义》里的第4个人物 周瑜是《三国演义》里的第5个人物 关羽是《三国演义》里的第6个人物 张飞是《三国演义》里的第7个人物 '''

  for循环创建数值列表:经常用到,因为列表非常适合用于存储数字集合。常常使用list(range())的方法来创建一个列表。注意range(star,end,step)中,包头不包尾,即从star开始

(可省略,省略时候默认为0开始),到end-1结束,不包含end,step为步长(可省略,省略默认为1)。

#生成数字序列 for i in range(0,11,2): print(F"10以内的偶数是 {i}") ''' 结果是: 10以内的偶数是 0 10以内的偶数是 2 10以内的偶数是 4 10以内的偶数是 6 10以内的偶数是 8 10以内的偶数是 10 ''' #len()求列表的长度,当列表不知道长度的时候,使用 b = [] a = [1,3,4,5,3,7,8,43,43,5,5,66,7,43,22,11,34] for i in range(len(a)): b.append(a[i] * 2) print('列表a的值为:',a) print('列表b的值为:',b) ''' 结果是: 列表a的值为: [1, 3, 4, 5, 3, 7, 8, 43, 43, 5, 5, 66, 7, 43, 22, 11, 34] 列表b的值为: [2, 6, 8, 10, 6, 14, 16, 86, 86, 10, 10, 132, 14, 86, 44, 22, 68] ''' #list() + range()= 数值列表 even_numbers = list(range(2,11,2)) print(even_numbers) ''' 结果为: [2, 4, 6, 8, 10] '''

  for循环创建列表解析 :列表解析是将 for循环和创建新元素的代码合并成一行,在实际应用中较为常见。语法为:变量名 = [变量名 2表达式 for 变量名 2 in 序列]

# 生成10以内数的平方数 squares = [value**2 for value in range(1,11)] print('生成10以内数的平方数:',squares) ''' 结果为: 生成10以内数的平方数: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] '''

  遍历字典:

  字典中的键值对可能有上百万个。 Python 支持使用 for 循环遍历字典,包括遍历所有键值对(使用 items()方法)、遍历字典中的所有键(使用 keys()方法)以及遍历字典中

的所有值(使用 values()方法)。

  

# 遍历字典 name_money = {'王老师':30000,'侯老师':28000,'李老师':33000,'张老师':25000} #使用 for()循环遍历字典中的 key-value,方法 items()返回键值对列表 print("各个老师的月薪是:") for key,value in name_money.items(): print(f'\t\t{key}的月薪是{value}元') ''' 结果是: 各个老师的月薪是: 王老师的月薪是30000元 侯老师的月薪是28000元 李老师的月薪是33000元 张老师的月薪是25000元 ''' #遍历字典中的所有键,使用方法 keys() print('老师有:') for name in name_money.keys(): print(f'\t{name}') ''' 结果是: 老师有: 王老师 侯老师 李老师 张老师 ''' #遍历字典中的所有值,使用的方法是 values() print('老师们的月薪由以下结构组成: ') for value in name_money.values(): print(f'\t\t\t{value}') ''' 结果是: 老师们的月薪由以下结构组成: 30000 28000 33000 25000 '''

  嵌套for循环:

# 例子 for i in range(0,4): for j in range(0,7): print("*",end="") print(' ') # 结果是: ''' 结果是: ******* ******* ******* ******* '''

  接下来利用for循环做一两个小小的实际应用:

# 小项目实战1:生成九九乘法表 ''' 项目描述:根据嵌套 for 循环生成九九乘法表 提示: 1、根据九九乘法表的规律,找到两个 for 循环的边界值 。 2、使用 range()函数生成数字集合 ''' for i in range(1,10): for j in range(1,i + 1): print(str(j) + '*' + str(i) + '=' + str(i*j) + ' ',end = "") print(' ') # 结果是: ''' 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 ''' # 小项目实战2:打印星图 ''' * *** ***** ******* ***** *** * 项目描述:使用 for循环打印上图 提示: 1、使用两个for循环 2、找对in后面的边界值,使用 range() ''' n = 8 for i in range(1,n,2): for j in range(i): print('*',end = "") print(' ') for k in range(1,n,2): for m in range(n-2-k): print('*',end = "") print(' ') # 结果是: ''' * *** ***** ******* ***** *** * '''

  while循环:

  while循环不需要知道循环的次数,即无限循环 ,直到条件不满足为止。

  注意: 

1、循环也是以冒号(:)结尾

2、条件为各种算术表达式,

a) 当为真时,循环体语句组 1,重复执行

b) 当为假是,循环体语句组 2,停止执行

3、如果循环体忘记累计,条件判断一直为真,则为死循环。循环体一直实行。

a) 死循环有时候经常被用来构建无限循环

b) 可以使用 ctrl+c 终止,或者停止 IDE

# 构造计数器,记录 5次 print('使用 while循环构造计数器,并且记录 5次') count_number = 0 while count_number


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3