目录
1、定义:用于生成一个整数序列
2、创建range对象的三种方式:
①range(stop)——创建一个以(0,stop)之间的整数序列,步长为1(从零开始,从stop结束,不包括stop)
②range(start,stop)——创建一个(start,stop)之间的整数序列,步长为1
③range(start,stop,step)----创建一个(start,stop)之间的整数序列,步长为step
3、返回值是一个迭代器对象
4、判断指定的整数在序列中是否存在/不存在用in/not in
5、优点:不论range对象表示的整数序列有多长,所有range对象占用的内存空间是一样的。因为只需要储存start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素 ;通常会用range()函数作为for循环遍历的对象
#range的三种创建方式
r=range(10) #默认从0开始,从10结束(不包括10),默认相差1为步长
print(r) #返回值为迭代器对象,结果为range(0,10)
print(list(r)) #用于查看range对象中的整数序列 [0,1,2,3,4,5,6,7,8,9] list是列表
r=range(1,10) #指定了起始值,从1开始,从10结束(不包括10),默认相差1为步长
print(list(r))#[1,2,3,4,5,6,7,8,9]
r=range(1,10,2)#指定了起始值,指定了结束值,指定了步长
print(list(r))#[1,3,5,7,9]
#判断指定的整数在序列中是否存在 in,not in
print(3 in r)#True
print(7 not in r)#False
1、循环结构:反复做同一件事情,流程图如下
2、循环的分类:
while
for-in
3、while循环语法结构:
while 条件表达式:
条件执行体(循环体)
4、选择结构if 与循环结构while的区别:
if是判断一次,条件为True执行一次
while是判断N+1次,条件为True执行N次
a=1
if a<10:
print(a)
a+=1
#if只判断一次,输出结果为1
a=1
while a<10:
print(a)
a+=1
#while判断九次,输出结果为123456789
5、四步循环法
①初始化变量
②条件判断(次数)
③条件执行体(循环体)
④改变变量
初始化的变量与条件判断的变量与改变的变量为同一个
#0到4的累加和
c=0
sum=0 #用于存储累加和
while c<5:
sum+=c
c+=1
print(sum)
练习:1到100之间的偶数和
#1到100之间的偶数和
#法一
e=2
sum=0
while e<101:
sum+=e
e+=2
print(sum)
#法二
e=1
sum=0
while e<101:
if e%2==0:#判断是否为偶数,还可以直接写为not e%2(0的布尔值为FALSE,其他数布尔值为TURE),改为e%2则为奇数累加和
sum+=e#求和
e+=1
print(sum)
1、定义:in 表示从(字符串、序列等)中依次取值,又称遍历。for--in 遍历的对象必须是可迭代对象(字符串、序列等)。
2、语法结构
for 自定义的变量 in 可迭代对象:
循环体
3、执行图
for item in "Python":#第一次取出的是P,将P赋值给item并打印输出,依此遍历字符串中的每一个字母,赋值,打印输出
print(item)
for item in range(10): #依此取出0,1,2456789,赋值打印输出
print(item)
4、如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_"(range()函数可以作为for循环的循环次数)
#如果在循环体中不需要使用到自定义变量,可将自定义变量写为“_"(range()函数可以作为for循环的循环次数)
for _ in range(5): #0到4依此赋值,执行5次循环体,输出5次“喵喵”
print('喵喵')
#1到100之间的偶数和
sum=0
for a in range(101):
if not a%2:
sum+=a
print(sum)
5、练习:输出100到999之间的水仙花数
水仙花数:个位的三次方+十位的三次方+百位的三次方=这个数(eg:153=1*1*1+5*5*5+3*3*3)
#输出100到999之间的水仙花数(eg:153=1*1*1+5*5*5+3*3*3)
for item in range(100,1000):
ge=item%10
shi=(item//10)%10
bai=item//100 #分离出个位、十位、百位上的数
if item==ge**3+shi**3+bai**3:#判断是否为水仙花数
print(item)
非正常结束循环,即一旦满足某种条件就结束循环结构,通常与分支结构if一起使用
#从键盘录入密码,最多录入三次
#法一:for-in循环
mima=123456
for _ in range(3):
a = int(input('请输入密码'))
if a==mima:
print('密码正确')
break
else:
print('密码不正确')
#法二:while循环
i=0
while i<3:
a=input('请输入密码')
if a=='123456':
print('密码正确')
break#break语句放在最后,因为一旦执行,直接跳出循环,不再执行下一条语句
else:
print('密码错误')
i+=1
用于结束当前循环,进入下一次循环,通常与分支结构的if一起使用
#要求输出1-50之间所有5的倍数
for a in range(1,51):
if a%5==0:
print(a)
#使用continue语句
#使用for in循环
for a in range(1,51):
if a%5!=0:
continue#用于结束当前循环,进入下一次循环
else:
print(a)
#使用while循环
i=1
while i<51:
if i%5!=0:
i += 1 #先改变变量,再continue退出循环,否则容易陷入无限循环
continue
print(i)
i+=1 #记得改变变量,否则容易陷入无限循环
与else语句配合使用的三种情况
①if else ——if 条件不成立时执行else
②while else—— 循环正常执行完就执行else,如果碰到break(退出循环)就不会执行else
③for else —— 循环正常执行完就执行else,如果碰到break(退出循环)就不会执行else
#else语句与if、while、for搭配使用
for i in range(3):
a = input('请输入密码')
if a=='123456':
print('密码正确')
break
else:#与if并列搭配使用
print('密码不正确')
else:#与for并列搭配使用,如果执行循环体中的break则不会执行else,如果没有执行循环体中的break则会执行else
print('三次密码均输入错误')
i=0
while i<3:
a=input('请输入密码')
if a=='123456':
print('密码正确')
break
else:
print('密码不正确')
i+=1
else:#与while并列搭配使用,如果执行循环体中的break则不会执行else,如果没有执行循环体中的break则会执行else
print('三次密码均输入错误')
1、循环结构中又嵌套了另外的完整循环结构,其中内层循环做为外层循环的循环体执行
#输出一个三行四列的矩形
for i in range(1,4):#行数为3
for j in range(1,5):#列数为4
print('*',end='\t')#end用于设置print函数输出的结尾,可以设置为空即end=‘’或end=”“,这是标准的不换行输出,
#end=‘\t’指结尾由一个制表位结束
print() #如果不手动设置end,默认end=‘\n',所以print函数默认换行输出
#输出一个九行直角三角形
for i in range(1,10):#行数
for j in range(1,i+1):#列数;内循环执行次数与行数相同(第一行,一颗星;第二行,两颗星;···)
print('*',end='\t')
print()
#输出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
2、二重循环中的break和continue用于控制本层循环
for i in range(5): #i代表外层循环循环执行5次
for j in range(1,11):
if j%2==0: #i=1:j=1,执行print(j);j=2,执行break,退出内部循环;i=2:j=1,执行print(j);j=2,执行break,退出内部循环;
break
print(j)
结果为
1
1
1
1
1
for i in range(5): #i代表外层循环循环执行5次
for j in range(1,11):
if j%2==0: #i=1:j=1,执行print(j);j=2,执行continue,退出内部本次循环;j=3,执行print(j);j=4,执行continue,退出内部本次循环;
continue
print(j,end='\t')
print()
结果为
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
文章浏览阅读1k次。该变归档日志大小只有改变日志组的大小!方法:加入新的大的日志文件,然后删掉旧的小的日志文件假设现有三个日志组,每个组内有一个成员,每个成员的大小为1MB,现在想把此三个日志组的成员大小都改为10MB1、创建2个新的日志组alter database add logfile group 4 ('D:\ORACLE\ORADATA\ORADB\REDO04_1.LOG') size 1024k;alt..._oracle归档日志空间大小
文章浏览阅读7.5k次。很早用的一段三级联动下拉菜单最近发现在chrome里不能联动下拉了,ie下正常,很奇怪,这段代码在之前有段时间经常用,没出现过什么问题,后来调试发现在“this.options.value”处提示“this.options is unfioned”,应该是浏览器之间js用法不同的问题,查资料测试后,改成“this.value”就正常了_options is undefined
文章浏览阅读680次。spring: cloud: refresh: enabled: false2020-09-20 20:41:40.882 ERROR 13292 —[ost-startStop-1] o.s.b.web.embedded.tomcat.TomcatStarter :Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException.Me_failed to instantiate [org.springframework.boot.actuate.endpoint.web.servlet
文章浏览阅读7.7k次,点赞4次,收藏10次。最近在Window10下使用QML写一个单机版的应用程序,整个程序需要全屏显示,所以需要覆Window10的任务栏。QML程序中的窗口对象选的是Window,大致有三个方法可以使程序全屏显示。 一、经过查阅文档,Qt Quick中的Window对象在Window 2.1版本及以上提供了visibility属性,只需要使用import QtQuick.Window 2.1导入Window模块,然后设_qml全屏显示
文章浏览阅读1.9k次。环境ubuntu16.041、在用户根目录下面新建文件夹bin2、PATH=~/bin:$PATH 也就是让环境变量包含用户根目录下的bin文件夹_安卓内核源码下载
文章浏览阅读1k次。先按下Ctrl + A,再按下x键(注意此处x应为小写,大写无效;Ctrl + A中A大小写均可)。_qemu如何退出
文章浏览阅读1.3k次。在CentOS7.3中安装了MySQL8.0.21之后,就开启了一段漫长的爬坑历程,简要回顾如下:一、从Win10中用Navicat连接安装好的MySQL服务器出现如下异常:1045 - Access denied for user ‘root’@‘192.168.101.151’(using password: YES) 于是,在网上查阅了多篇博客,结论可能是3306端口没有加入到防火墙的允许列表。之后,开始研究了CentOS7中的防火墙,发现RHEL6之前版本用的防火墙管理工具都是iptab_error: failed to read file "/proc/sys/net/netfilter/nf_conntrack_helper": [e
文章浏览阅读3.2k次,点赞6次,收藏16次。位运算作为底层的基本运算操作,往往是和'高效'二字沾边,适当的运用位运算来优化系统的核心代码,会让你的代码变得十分的精妙。以下是我所遇之的一些简单的位运算技巧作为博文记录。1.获得int型最大值 public static void main(String[] args) { int maxInt = (1 << 31) - 1; ..._java巧用位运算记录用户
文章浏览阅读710次。名词1名词1解释1...名词2名词2解释1名词2解释2..._html用ul写表格
文章浏览阅读187次。题目链接:点击查看题目大意:给出一个由 n 个数位组成的数字,现在可以通过将其不同的后缀移到前面来组成 n 个新的数字,现在要求出 n 个新数字进行去重后,有多少个新数字分别大于、等于、小于原数字如:1234进行上述转移可以得到的四个新数字分别为:1234,4123,3412,2341题目分析:如果暴力的比较虽然看似只需要枚举 n 个新的字符串,但是每个字符串的比较还需要花费O(n)的..._hdu - 4333
文章浏览阅读2.1w次。http://pengtyao.iteye.com/blog/1462045_用grow模型对下属进行辅导时,为了帮助下属看到更多的可能性,开启思路,管理者常用
文章浏览阅读10w+次,点赞23次,收藏111次。1.网线水晶头为什么要分568A、568B?这要从平行线交叉线说起。平行线:网线2头都做成568B标准,就叫平行线。用于双机不同级连接,比如交换机连电脑。交换机连路由器。交叉线:网线一头做成568B,另一头做成568A,就叫交叉线。用于双机同级连接,比如电脑连电脑,交换机连交换机。现在都是平行线做法,设备能够自己识别。2.568A和568B的区别区别在线序上。568A:白绿,绿,白橙,蓝,白蓝,橙,白棕,棕568B:白橙,橙,白绿,蓝,白蓝,绿,白棕,棕3.为什么不是颜色一致就可以?很多_568b