python循环结构
while循环
while 条件表达式:
语句块
while语句的条件表达式是循环条件,常用的是关系表达式或者逻辑表达式,语句块是循环执行的语句。
n=1
p=1
num=int(input("input n="))
while n<num:
p*=n
n=n+1
print("{0}的阶乘是{1}".format(num,p))
input n=6
6的阶乘是120
在python中while语句,可以有else语句,else语句会在循环正常执行完的情况下(不管是否执行循环体),但是通过break跳出循环体时,else不会被执行。
num=int(input("put into number="))
qnum=num
count=0
while (num!=0):
if(num==68):
break
count+=1
num//=10
else:
if count!=0:
print("while循环执行完成")
else:
print("num输入为0")
if num==68:
print("break 语句执行,没有执行else语句")
if num==0:
count=1
print("%d是%d位数字"%(qnum,count))
if num==68:
count=2
print("%d是%d位数字"%(qnum,count))
put into number=888
while循环执行完成
888是3位数字
put into number=0
num输入为0
0是1位数字
put into number=68
break 语句执行,没有执行else语句
68是2位数字
while循环合并2个有序的数组,这是归并排序的重点
def sort(arr1,arr2):
i,j,k=0,0,0
arr3=[]
while(i<len(arr1) and j<len(arr2)):
if arr1[i]<arr2[j]:
arr3.insert(k,arr1[i])
i+=1
k+=1
else:
arr3.insert(k,arr2[j])
j+=1
k+=1
while i<len(arr1):
arr3.insert(k,arr1[i])
i+=1
k+=1
while j<len(arr2):
arr3.insert(k,arr2[j])
j=j+1
k=k+1
for elem in arr3:
print(elem,end=" ")
arr1=[1,3,5,7]
arr2=[2,4,6,8,78]
sort(arr1,arr2)
1 2 3 4 5 6 7 8 78
for循环
for语句首行定义了赋值目标和遍历的序列对象,后面需要重复执行的语句块,语句块语句需要向右缩进,且缩进量要一致。
for 赋值目标 in 序列对象:
语句块
for通过遍历任意序列的元素进行建立循环,针对序列的每一个元素执行一次循环体,列表,字符串,元组都是序列,可以利用它们建立循环。
列表
char=['a','b','c']
for ch in char:
print(" ",ch,end=" ")
a b c
字符串
char="abcdefgh"
for ch in char:
print(ch,end="-")
a-b-c-d-e-f-g-h-
元组
char=(1,2,3,4)
for ch in char:
print(ch,end="-")
1-2-3-4-
for循环的循环次数显然就是序列中的元素的个数,即序列的长度,可以利用序列的长度来控制循环的次数,这时关注的不是序列元素的值,而是元素的个数。
计算输入的元素和,与range无关。
sum=0
for k in range(6):
num=int(input("put into numbers:"))
sum+=num
print("sum=",sum)
结果是:
put into numbers:1
put into numbers:2
put into numbers:3
put into numbers:4
put into numbers:5
put into numbers:6
sum= 21
计算1+.....6的和,和序列的元素有关。
sum=0
for i in range(7):
sum+=i;
print("the sum=",sum)
the sum= 21
for语句也支持一个可以选择的else块,它 的功能就像在while循环中一样,如果没有碰到break语句,就会执行else块,也就是序列所有的元素都被访问过了之后,执行else块。
string=input("input char:")
for ch in string:
if ch=='e':
break
else:
print(" bo break stance")
if ch=='e':
print("不会执行break语句")
else:
print("会执行break语句")
input char:abcd
bo break stance
会执行break语句
input char:abcde
不会执行break语句
range函数,经常用在for循环中,看看其功能吧。
>>> list(range(6))
[0, 1, 2, 3, 4, 5]
>>> list(range(1,6))
[1, 2, 3, 4, 5]
for循环的运用。
二分查找,使用for循环。
def seek(targe=66,arr=[11,22,33,68],left=0,right=3):
while left<right:
mid=(left+right)//2
i=arr[mid]
if i==targe:
return mid+1
elif i>targe:
right=mid-1
#seek(targe,arr,left,right)
else:
left=mid+1
#seek(targe,arr,left,right)
return -1
for循环,在循序查找的使用。
def seekxunxu(targe=66,arr=[11,22,33,68],left=0,right=3):
count=0
for i in arr:
count+=1
if i==targe:
return count
if count==len(arr):
return -1
for是计数循环,while是条件循环,python中,for循环有点诡异,for循环和while可以转换。byd 叉车
python循环结构的更多相关文章
- python 循环结构 while for...in
# ### 循环结构 while for...in """ 循环结构的特点:减少代码的冗余,提高代码的效率 语法形式: """ # 打印1~ ...
- python 循环结构(for-in)
循环结构(for-in) 说明:也是循环结构的一种,经常用于遍历字符串.列表,元组,字典等 格式: for x in y: 循环体 执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束 示例1: ...
- Python循环结构用法
本文介绍python中的while循环.for循环.在python中for可以用于循环,也可用于另一种近亲的列表解析,列表解析是python中非常重要的特性,详细内容见后面的文章. 一般来说,pyth ...
- python 循环结构
for循环 list或tuple可以表示一个有序集合.如果我们想依次访问一个list中的每一个元素呢?比如 list: L = ['Adam', 'Lisa', 'Bart'] print L[0] ...
- Python 循环结构语句
1.for循环:计次循环 2.while循环:条件循环 3.嵌套循环 4.跳转语句 一.for循环的使用 1.进行数值循环 利用数值循环输出三次‘你好’: >>> for i in ...
- (9)Python循环结构
- python分支结构与循环结构
python分支结构 一.if 单条件形式 # 年轻人的世界都不容易 age > 18 age = int(input("请输入您的年龄:")) # input()函数 模拟 ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- python基础之循环结构以及列表
python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...
随机推荐
- 给Extjs的window弹窗的关闭事件添加验证
问题:我想在window点击右上角叉关闭时添加一些验证,来确定是否关闭? 实现: 首先想到的是拦截window的关闭事件,在它关闭前添加验证,但是有一个问题是,如何阻止它的关闭和组织关闭后,如何让它再 ...
- JS变量、作用域、内存
写到这个题目<JS变量.作用域,内存>,我就不由自主想起了黄金三嫖客.可能是名字有点像,嗯,一定是这样子的! JS接触下来,应该是要比Java简单不少的,所以,要学好啊.立个flag半年后 ...
- Laravel源码分析--Laravel生命周期详解
一.XDEBUG调试 这里我们需要用到php的 xdebug 拓展,所以需要小伙伴们自己去装一下,因为我这里用的是docker,所以就简单介绍下在docker中使用xdebug的注意点. 1.在php ...
- 调试日志——基于stm32的智能声光报警器(二)
今天调试了音频部分的播放功能,这里我采用的是输出pwm来播放声音的方式. 声音的源文件是一个wav文件,然后用一个软件将wav文件转化为一个数组的文件. 要播放的文件就是这个数组文件里面的数据部分,前 ...
- anaconda创建python虚拟环境
参考: 1.https://blog.csdn.net/lyy14011305/article/details/59500819 我的安装过程: 1. 之前已经安装了anaconda,我的版本是ana ...
- angular中的$cookies和$cookieStore设置过期时间
angular1.4及以上版本才支持$cookies. 项目引入的是1.4.2版本,操作cookies原先一直用的是$cookieStore,用的飞起啊. $cookieStore.remove(&q ...
- 96. Partition List [easy]
Description Given a linked list and a value x, partition it such that all nodes less than x come bef ...
- 证明SG中梯度的期望等于GD的梯度
参考链接: https://zhuanlan.zhihu.com/p/36435504
- 学号 20155311 2016-2017-2 《Java程序设计》第1周学习总结
学号 2016-2017-2 <Java程序设计>第1周学习总结 教材学习内容总结 JAVA三大平台**:Java SE.Java EE .Java ME. Java SE四个组成部分:J ...
- 实验一:实现求正整数1-N之间所有质数的功能,并进行测试。
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 命令行下的程序开 ...