python两个for循环流程图_Python基础2:流程控制语句 while / for循环

时间:2025-04-21 19:31:14

[ while 循环 ]

如果要计算1+2+3,我们可以直接写表达式:

>>> 1 + 2 + 3

要计算1+2+3+...+10,勉强也能写出来。

但是,要计算1+2+3+...+10000,直接写表达式就不可能了。

为了让计算机能计算成千上万次的重复运算,就需要循环语句。

# while循环结构

while 判断条件: # 只有条件不成立时退出循环,如果条件为真,则循环就没有停止的时候,成为一个死循环

执行语句……

输出1到10的所有整数:

num = 1

while num <11:

print(num)

num = num +1

如果现在我们要当数字为5的时候结束循环,可以使用break语句!

break语句会终端当前循环。

num = 1

while num <11:

print("当前数字是",num)

if num == 5 :

break

num = num +1

print("现在数字变成了:",num)

break的作用: 结束循环,在死循环中,也可以通过设置一定的条件来结束循环。

要求输出1-100之间的所有奇数,可以通过continue语句来实现。

# 输出1-100之间所有奇数

num = 0

while num<100:

num = num + 1

if num%2 ==0:

continue

print(num)

while循环中的else:

# while循环结构

while 判断条件:

执行语句……

else:

执行语句……

while循环中的else语句比较特殊,这里的else语句,只有在循环正常结束的时候才会执行,意思就是说如果我们的while循环在执行过程中中断了,即执行了break语句,这里的else语句就不会被执行。

# 循环没有被中断

num = 0

while num<10:

num = num + 1

if num%2 ==0:

continue

print(num)

else:

print("else-----")

### 循环被中断

num = 0

while num<10:

num = num + 1

if num%2 ==0:

break

print(num)

else:

print("else-----")

优化上篇的猜年龄程序:之前的程序每执行一次,用户就输入一次数字,程序就会判断一个结果,之后程序就结束了。然而这样并不好,程序应该一直让用户输入数字,直到用户输入的数字正确。

init_num = 12

num = int(input("Enter:"))

while init_num != num:

if num > init_num:

print("数字过大")

else:

print("数字过小")

num = int(input("Enter:"))

print("猜对了")

嵌套循环:循环套循环

num1 = 0

while num1 <3:

print(num1,end="++" )

num1 += 1

num2 = 0

while num2<3:

print(num2,end="")

num2 +=1

print()

练习:

1. 输出九九乘法表

first = 1

while first<=9:

sec = 1

while sec <= first:

print( str(sec)+"*"+ str(first) +"="+str(sec * first), end="\t")

sec += 1

print()

first += 1

2. 使用 # 号 输出一个长方形,用户可以指定宽和高,如果长为3 ,高为4 ,则输出一个 横着有3个#号 竖着有4个#号的长方形。

height = int(input("Height:")) # 用户输入一个高度 4

width = int(input("width:")) # 用户输入一个宽度 3

num_height = 1

while num_height <=height:

num_width = 1

while num_width <= width:

print("#", end="")

num_width += 1

print()

num_height += 1

*******************************************************************************************************************************************************************************************************

[ 序列 ]

Sequence是Python的一种内置类型(built-in type),内置类型就是构建在Python Interpreter里面的类型。

Python的数据访问模型:直接存取 ,序列 ,映射。

对非容器类都可以直接存取,所有的数值类型归为此类。

序列类型 是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素。 字符串列表元组归到此类

映射类型和序列类型不同之处,它使用的索引和顺序的数字偏移量不同,它的元素无序存放,通过唯一的key来访问。 字典就是这种类型。

以后会学习的字符串(strings),列表(lists),元组(tuples),我们可以统称为序列。

序列有着相同的访问模式:它的每一个元素都可以通过指定一个偏移量的方式得到,而要想一次得到多个元素,我们可以使用切片,下表偏移量从0开始,总元素数减1结束。

简单来讲,序列就是按照一定的顺序排列起来的一系列元素,每个元素不是在其他元素之前,就是在其他元素之后。

在介绍for循环之前,先来学习range(范围)语句。

#rang()的用法:

range(stop)#stop为结束位置,列出从0到stop之前的所有整数

range(start, stop[, step])#列出从start开始,到stop之前所有的数字range(start, stop[, step])#start表示起始数字,stop表示结束数字,step表示每两个相邻数字之间的差,也叫步长

实例:

#python range函数使用方法#函数内只有一个参数,则表示会产生从0开始计数的整数列表:

range()>>> range(4)

[0,1, 2, 3] #python 返回值

#python range中,当传入两个参数时,则将第一个参数做为起始位,第二个参数为结束位

>>> range(0,5)

[0,1, 2, 3, 4]#range()函数内可以填入三个参数,第三个参数是步进值(步进值默认为1)

>>> range(0,10,3)

[0,3, 6, 9]#range函数的参数和结果也并非一定要是正数或是递增的,好比下面两个例子:

>>> range(-4,4)

[-4, -3, -2, -1, 0, 1, 2, 3]>>> range(4,-4,-1)

[4, 3, 2, 1, 0, -1, -2, -3]

[ for 循环 ]

for循环 也被称作流程控制语句,常被用来遍历输出指定对象内部的多个元素,比如遍历字符串,列表,元祖,字典等(这些数据类型后边会学习)。

流程图:

基本语法结构为:

#for循环结构一

for var insequence:

statements(s)#for 循环示例

for i in range(10):print(i)

实例:

#!/usr/bin/python#-*- coding: UTF-8 -*-

for letter in 'Python': #第一个实例:循环遍历一个字符串

print('当前字母 :', letter)#第二个实例:循环遍历一个列表 [列表的知识,之前还没学习,这里先强记:一个列表就是一个有序的集合,它内部的每个元素都有对应的一个索引下标数字,可以通过该数字找到相应的元素,并且这个索引下标也是有先后顺序的。

fruits = ['banana', 'apple', 'mango']for fruit infruits:print('当前字母 :', fruit)print ("Good bye!")

结合上边提到的range()语句,我们练习一下:通过序列索引循环迭代。即:通过遍历索引的方式,执行循环。

在练习之前,先回想一下之前学习过的一个Python内置函数:range(),这里我们介绍另外一个Python内置函数:len() ,它的功能是计算列表的长度,即:包含元素的个数。

#!/usr/bin/python#-*- coding: UTF-8 -*-#在没有学习for循环之前,我们如果要通过索引下标取出对应的水果名,会这样操作

fruits= ['banana', 'apple', 'mango']print('当前水果 :', fruits[0])print('当前水果 :', fruits[1])print('当前水果 :', fruits[2])print "Good bye!"

现在我们用for循环语句来实现:

#!/usr/bin/python#-*- coding: UTF-8 -*-

fruits= ['banana', 'apple', 'mango']for index inrange(len(fruits)):print('当前水果 :', fruits[index])print ("Good bye!")

输出结果:

当前水果 : banana

当前水果 : apple

当前水果 : mango

Good bye!

for  循环中的else语句:

在 python 中,for … else 表示:for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,这里和while … else 是一样的。另外,跟while循环一样,在for循环中也可以使用break和continue语句,两者效果一样。

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Author : Jesson

for num in range(10,20): #迭代 10 到 20 之间的数字

for i in range(2,num): #根据因子迭代

if num%i == 0: #确定第一个因子 如果能被2整除,就是质数

j=num/i #计算第二个因子

print('%d = %d * %d' %(num,i,j)) #格式化输出

break #跳出当前循环

else: #循环的 else 部分

print(num,'是一个质数')

输出结果:

10 = 2 * 5

11是一个质数12 = 2 * 6

13是一个质数14 = 2 * 7

15 = 3 * 5

16 = 2 * 8

17是一个质数18 = 2 * 9

19 是一个质数