Python 循环语句之 while,for语句详解
作者:LWH9606 发布时间:2024-01-01 02:20:50
循环语句(有两种):
while 语句
for 语句
while 语句:
问题:输入一个整数n,让程序输出n行的:
hello 1
hello 2
.......
hell n
while 语句:
作用:根据一定条件,重复的执行一条语句或多条语句
语法:
while 真值表达式:
语句块1......
else:
语句块2......
说明:
1,先执行真值表达式,测试布尔值为True或False
2,如果真值表达式的测试值为True,侧执行语句1,然后再返回到第一步重复进行测试
3,如果真值表达式的测试值为False。则执行else子句中的语句块2,然后结束此while语句的执行,如果没有else子句,则直接结束while语句的执行。
4,else子句部分可以省略(同if语句类似)。
如:打印10行的hello
i = 1 #创建并初始化一个控制while循环的变量i
while i <= 10:
print("hello") #此处执行10次
i += 1
#运行结果:[root@localhost data]# ./test.py
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
while语句的注意事项:
1,要控制循环的真值表达式的值来防止死循环。
2,通常用真值表达式中的循环变量来控制循环条件。
3,通常在循环语句块內需要改变循环来控制循环的次数和变量的走向
while循环的嵌套:
while语句本身是语句,和其它的语句一样可以嵌套在其它复合语句中(如:if语句 ,while语句, for语句 ....内部)
while语句嵌套示意:
while 真值表达式:
.......
while 真值表达式2:
......
else:
........
else:
........
如:
输入一个数,打印指定宽度的正方形:
如:输入:5
n = int(input("输入一个数:"))
j = 1
while j <= n:
i = 1
while i <= n:
print(i,end=' ')
i += 1
print()
j += 1
######运行结果:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
break 语句:
作用:用于循环语句(while,for语句)中,用来终止当前循环语句的执行。
说明:
1,当break语句执行后,此循环语句break之后的语句将不再执行
2,break语句通常和if语句组合使用。
3,break语句终止循环时,循环语句的else子句将不会被执行
4,break语句只能终止当前循环的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
5,break语句只能在循环语句(while或for语句)内部使用
如:
i = 1
while i < 10:
print("循环开始i=",i)
if i == 5: #当i = 5时结束循环
break
i += 1
#运行结果:[root@localhost data]# ./test.py
循环开始i= 1
循环开始i= 2
循环开始i= 3
循环开始i= 4
循环开始i= 5
死循环 death loop:
1,死循环是指循环条件一直成立的循环
2,死循环通常用break语句来终止循环
3,死循环的else子句永远不会执行
如:用input输入一些文字,当输入三个*号时,代表输入结束,否则一直循环。
s = ""
while True:
a = input("请输入文字(***结束)")
if a == '***':
break
s += a + '\n'
##运行结果:[root@localhost data]# ./test.py
请输入文字(***结束)a
请输入文字(***结束)b
请输入文字(***结束)v
请输入文字(***结束)c
请输入文字(***结束)d
请输入文字(***结束)*** #输入三个*** 结束,退出循环
[root@localhost data]#
二:for 语句(循环语句)
作用:用来遍历可迭代对象的数据元素
语法:
for 变量列表 in 可迭代对象:
语句块1......
else:
语句块2......
语法说明:
1,可迭代对象每次提供一个元素依次赋值给变量列表中的变量,赋值完毕后执行语句块1,重复执行此步骤,
2,当可迭代对象不能够提供数据时,执行else子句部分的语句块2,然后退出循环。
如:
s = 'ABCDE'
for x in s:
print(x)
else:
print("继续执行此条") #迭代对象不能够提供数据时,继续执行else中的这条
##运行结果:[root@localhost data]# ./test.py
A
B
C
D
E
继续执行此条
3,else子句部分可以省略(同while语句类似)
4,当在语句内部用break终止循环时,else子句部分语句块2不会执行,
可迭代对象时指能依次获取数据元素的对象
四:for循环嵌套:
和while循环嵌套一样
如:
for x in "ABC":
for y in "123":
print(x + y)
##运行结果:
[root@localhost data]# ./test.py
A1
A2
A3
B1
B2
B3
C1
C2
C3
经典否循环嵌套示例
用for循环嵌套打印如下图形:
(输入一个数n(10以内)代表矩形的宽度和高度)
如: 输入:5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
n = int(input("输入一个数:"))
for i in range(1, n +1):
for j in range(i, i + n):
print(j,end=' ')
else:
print()
#运行结果:
[root@localhost data]# ./test.py
输入一个数:5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9
五:continue 语句:
作用:用于循环语句(while,for语句)中,不再执行本次循环內continue之后的语句,重新开始一次新循环。
说明:
1,在while语句中执行continue语句,将直接跳转到while语句的真值表达式重新判断循环条件。
2,在for语句中执行continue语句,将会从可迭代对象中取下一个元素,绑定变量后再次进行循环。
如:
for i in range(5):
if i == 3: #当i 等于3时,跳过打印,进行下一次循环。
continue
print(i)
#运行结果
[root@localhost data]# ./test.py
0
1
2
4
示例:
写一个程序,求1-100之间所不能被5,7,11整除的数的和。
s = 0
for i in range(1,101):
if (i % 5) == 0 or (i % 7) == 0 or (i % 11) == 0:
continue
s += i
print(s)
#运行结果:
[root@localhost data]# ./test.py
3007
六:range 函数:
作用:用来创建一个生成一系类整数的可迭代对象(也叫整数序列生成器。)
调用格式:
range(stop)
从零开始,每次生成一个整数后加1,操作,直到stop为止(不包含stop)
range(start,stop[,step])从start开始,每次生成一个整数后移动step,直到stop为止(不包含stop,且step可以为负数。)
注:如果直接打印range(5)或(print(range(5)))的时候会得到range(5),而不是一个列表,这是因为节省空间,防止过大的列表产生。
如:
>>> range(5)
range(0, 5)
>>>
如果想要到交互模式下得到列表,可以加入list到前面来进行,如下:
示例:
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(1,6))
[1, 2, 3, 4, 5]
>>> list(range(10,0,-1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> list(range(1,10,2))
[1, 3, 5, 7, 9]
>>> list(range(5,0,-2))
[5, 3, 1]
>>>
来源:http://blog.51cto.com/9693009/2106619


猜你喜欢
- OpenCV imread读取图片失败问题使用一下代码读取一张图片失败(不管是绝对路径还是相对路径,都失败),工程运行都没问题,就是图片读取
- 前言Python是面向对象的程序设计(Object Oriented Programming)。面向对象的程序设计的一条基本原则是:计算机程
- 1、问题:安装VSCode后打开,发现显示的语言为英文,想显示为中文?2、解决方法:2.1、快捷键CTRL+SHIFT+P,找到如下设置Co
- 字典(dict)对象是 Python 最常用的数据结构,社区曾有人开玩笑地说:"Python企图用字典装载整个世界",字
- python是很容易上手的编程语言,但是有些时候使用python编写的程序并不能保证其运行速度(例如:while 和 for),这个时候我们
- 最近在对接微信公众号、微信支付等功能,发现很多都是用xml格式的。在使用django日常处理的时候,都是手动拼接的,真的是很恶心。今天仔细的
- 前言本篇来学习下柱状图的实现柱状图实现步骤ECharts 最基本的代码结构准备x轴的数据准备 y 轴的数据准备 option , 将 ser
- ⛳️ 本次反反爬实战案例背景本篇博客选择的案例是由 VX 好友提出,他希望有一篇博客能简单的介绍清楚下面这个问题。快速定位加密参数逻辑,快速
- 传参时传递可变对象,实际上传的是指向内存地址的指针/引用这个标题是我的结论,也是我在做项目过程查到的。学过C的都知道,函数传参可以传值,也可
- 一、python运算时精度问题1.运行时精度问题在Python中(其他语言中也存在这个问题,这是计算机采用二进制导致的),有时候由于二进制和
- jquery获取img的src值实例介绍 https://www.jb51.net/article/154746.htm获取: $(&quo
- 一、Tkinter的介绍和简单教程Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建
- python中shape()函数shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度。1、shap
- python之pkl文件pkl文件是python里面保存文件的一种格式,如果直接打开会显示一堆序列化的东西。cPickle在python3中
- 在做项目中遇到这样一个问题,就是我们需要添加几组数据到数据库,但是具体几组数据不确定,有客户来填写,比如我们需要添加打折策略,可能个策略有很
- 本文教大家调用电脑摄像头进行实时人脸+眼睛识别+微笑识别,供大家参考,具体内容如下一、调用电脑摄像头进行实时人脸+眼睛识别# 调用电脑摄像头
- 1、开头:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定#!/usr/bin/pytho
- 在“按需加载”的需求中,我们经常会判断当脚本加载完成时,返回一个回调函数,那如何去判断脚本的加载完成呢?我们可以对加载的 JS 对象使用 o
- 我就废话不多说了,大家还是直接看代码吧!# -*- coding: utf-8 -*-"""Created o
- 在想把CIFAR-10 的16进制数据转为图像的时候需要用到imsave(),但是在import scipy.misc 之后显示该库内没有i