前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的for循环对象和循环退出

python中的for循环对象和循环退出

作者头像
py3study
发布2020-01-07 23:23:45
5.1K0
发布2020-01-07 23:23:45
举报
文章被收录于专栏:python3python3

流程控制-if条件  

判断条件,1位true,0是flesh,成立时true,不成立flesh,not取反

代码语言:javascript
复制
if  1;   
    print 'hello python'
    print 'true'

  not取反,匹配取反,表示取非1大于2的正确关系,也就是说取1大于2的不正确证明的结果

代码语言:javascript
复制
if   not 1 > 2 and  1 == 1;       
    print 'hello python'
     print 'true'
代码语言:javascript
复制
if  1 > 2; 
    print 'hello python'
     print 'true'
else:            第一条件1大于2不成立,则执行else里的条件
    print 'jia'            
print 'mei'        这里的print与if是同行的,是单独的一个主进程

if中执行一个输入数字的话,需要声明这个数字是int类型(数值类型) ,不声明的话会被认为是一个字符串,不会被识别为数值

代码语言:javascript
复制
#!/usr/bin/python
ss = int(raw_input("please a num: "))
if ss >= 90:
    print 'A or very good'
elif ss >= 80:
    print 'B or good'
elif ss >= 70:
    print 'C or pass'
else:
    print 'D'

if 对输入的字符进行匹配判断,匹配yes/no,或错误继续输入 下列说明: 将raw_input 赋值给yn,yn通过函数将字符统一为一个格式,if  yn  ==  '条件'  来匹配是否符合,符合并输出或执行某些语法语句,这里也出现了if--elif--else的用法 if yn == ‘条件’    一个=是给变量赋值。两个==才表示条件的判断比较 or  表示链接多个判断条件,也可以使用and来表示 其他(关于字符的方法) *.lower表示把所获取的大写字符都变为小写字符来处理 *.upper表示将小写字符转为大写,取数值的大写字符

代码语言:javascript
复制
#!/usr/bin/python
yesno = raw_input("Please input [Yes/No]: ")
yesno = yesno.lower()
if yesno == 'y' or yesno == 'yes':
    print "programe is runing..."
elif yesno == 'n' or yesno == 'no':
    print "programe is exit"
else:
    print "please input [Yes/No]"

流程控制-for循环 for循环可以使用在序列里,可以在python中遍历序列 这里介绍一个函数 range函数用来遍历一个范围内的所有数字,输出的结果为一个列表类型的数据,可以针对结果做奇偶数选择,如从0开始选择数值间隔为2的数值,这样取值的全部都会是偶数数值 range(10) 这个函数是用来遍历一个范围内的所有数字,遍历数值从0开始,会输出0-9共十个数字,如

代码语言:javascript
复制
In [1]: range(10)
Out[1]: 
[0,
 1,
 2,
 3,
 4,
 5,
 6,
 7,
 8,
 9,]

range取值间隔数字(字符步长间隔的数值),如range取值从0开始的每隔两个长度间隔的数字:

代码语言:javascript
复制
In [6]: range(0,10,2)
Out[6]: [0, 2, 4, 6, 8]

for循环

python的for循环可以针对列表、数组类型的数据进行遍历,把遍历出来的数值进行处理(这里是把遍历做个相加或者3次方相乘) 使用print打印出一个变量可以让输出结果不换行显示,在打印变量名后加上一个逗号 将xrange函数遍历的数值给予一个列表中,然后使用for循环对列表进行遍历,将遍历出来的数值全部相加得出结果

代码语言:javascript
复制
#!/usr/bin/python
a=xrange(101)
sum=0
for i in a :
    sum = sum + i
print sum

for循环将函数遍历结果进行奇偶判断,且将的出来的偶数进行3次方相乘,print出for循环变量的结果,print变量后加逗号表示将结果输出到一行内并以空格显示(去除掉换行符)

代码语言:javascript
复制
[root@localhost shell]# cat 1.py 
#!/usr/bin/python
for i in [i**3 for i in range(0,11) if i % 2 !=0 ]:
    print i,
[root@localhost shell]# python 1.py 
1 27 125 343 729

range函数和xrange函数的区别 range函数是将一个范围内的数值打印出来并存储到内存当中,所打印出来的数值存储为一个列表,这个列表会占用内存资源。调用时会从内存中去读取并释放 xrange输出的数值则是一个引用的对象,它不是把遍历结果输出并保存到内存,而是在需要使用该数值时才会去遍历这个范围段的数值,和range不同的是,xrange不会输出信息。xrange是一个object,只有在读取xrange的数据时才会执行它里面的值

xrange的帮助信息

代码语言:javascript
复制
In [7]: help(xrange)
Help on class xrange in module __builtin__:
class xrange(object)
 | xrange(stop) -> xrange object
 | xrange(start, stop[, step]) -> xrange object
 |  
 | Like range(), but instead of returning a list, returns an object that
 | generates the numbers in the range on demand. For looping, this is 
 | slightly faster than range() and more memory efficient.
 |  
 | Methods defined here:
 |  
 | __getattribute__(...)
 | x.__getattribute__('name') <==> x.name
 |  
 | __getitem__(...)
 | x.__getitem__(y) <==> x[y]
 |  
 | __iter__(...)
 | x.__iter__() <==> iter(x)
 |  
 | __len__(...)
 | x.__len__() <==> len(x)
 |  
 | __reduce__(...)
 |  
 | __repr__(...)
 | x.__repr__() <==> repr(x)
 |  
 | __reversed__(...)
 | Returns a reverse iterator.
 |  
 | ----------------------------------------------------------------------
 | Data and other attributes defined here:
 |  
 | __new__ = <built-in method __new__ of type object>
 | T.__new__(S, ...) -> a new object with type S, a subtype of T
(END)

xrange是将数值存储到object里,只有在调用或for遍历时才会取出数值,不调用时则不会产生列表存储不占用内存资源

for循环字典

遍历序列:将序列中各个元素取出来 直接从序列取值 通过索引来取值 迭代,指重复执行一个指令 首先创建一个测试使用的字典

代码语言:javascript
复制
In [12]: nico = {'a':1,'b':2,'c':3}
In [13]: type(nico)
Out[13]: dict
In [14]: nico.fromkeys('abcdefg',1001)
Out[14]: {'a': 1001, 'b': 1001, 'c': 1001, 'd': 1001, 'e': 1001, 'f': 1001, 'g': 1001}

遍历字典中的数值

代码语言:javascript
复制
In [15]: for i in nico:
    ...: print i, nico [i]
    ...:     
a 1
c 3
b 2

遍历字典并添加一个格式化的输出

代码语言:javascript
复制
In [18]: for i in nico:
    ...: print "%s -- %s" % (i, nico[i])
    ...:     
a -- 1
c -- 3
b -- 2

python循环输出乘法口诀表 使用for嵌套的方式在for循环中再套用一个for循环,外层for循环遍历出1-9的数字,内层循环遍历出外层循环+1的数字,print条件中使用两层for循环得出的输出值相乘的出结果,再以格式化输出显示

代码语言:javascript
复制
[root@localhost shell]# vim chen.py 
#!/usr/bin/python
for f in xrange(1,10):
    for j in xrange(1,f+1):
        print "%sx%s=%s" % (j, f, j*f),
    print

for循环退出

python的for循环退出也是和shell里的三个退出参数用法一致,分别是break、continue和exit(终止本循环内容、终止这次循环和直接退出这个脚本) for循环的else输出 else中可以使用continue结束本次循环进入下次循环,break则是结束本次循环输出最后一次循环输出,exit结束这个循环及整个脚本并输出最后内容 如这种脚本

代码语言:javascript
复制
[root@localhost shell]# vim else.py 
#!/usr/bin/python
import time
for i in xrange(10):
    if i == 3:
        continue
    elif i == 5:
       break
    elif i == 6:
        pass
    elif i == 8:
       sys.exit()
    print i
else:
    print 'bilibili'
print 'bilibili'

第一次if判断i等于不等于3,循环到等于3时结束本次循环,直接进入下次循环,等于3这次循环不会输入任何结果,当i等于5时,结束这次循环不再循环下去及输出结果了。如后面的  i等于6、i等于8都不会去循环了,并执行和for循环等行的print出来的内容。 执行出来的结果

代码语言:javascript
复制
[root@localhost shell]# python else.py 
0
1
2
4
bilibili

将脚本的break中断循环注释或删除(即在i等于5时不终止循环),再次测试执行结果,查看是否能够输出else中的内容 只有当for循环中的数值执行完成后才能够执行等行else中的输出或执行 如果在某以匹配条件中存在break或sys.exit()的退出操作,整个脚本就会被终止,exit是退出整个脚本,后面的语句直接不执行了,break是退出循环并会向下继续执行非for内的语句

代码语言:javascript
复制
[root@localhost shell]# cat else.py 
#!/usr/bin/python
import time
import sys
for i in xrange(10):
    if i == 3:
        continue
    elif i == 6:
        pass
    elif i == 8:
         pass
    print i
else:
    print 'bilibili'
print 'bilibili'

下面是摘抄的练习脚本 for循环脚本示例,练习脚本

代码语言:javascript
复制
#!/usr/bin/python
#coding:utf-8
import sys
import random
n=random.randint(1,20)
for i in xrange(1,7):
    m=int(raw_input("请输入你的数字: "))
    if m==n:
        print"恭喜你猜对了"
        sys.exit()
    elif m<n and (6-i)==0:
        print"没机会啦!!!!!!"
    elif m<n:
        print"猜小了哦!\n请继续猜"
        print"你还有%s次机会" % (6-i)
        print
    elif m>n and (6-i)==0:
        print"没机会啦!!!!!!"
    elif m>n:
        print"猜大了哦!\n请继续猜"
        print"你还有%s次机会" % (6-i)
        print
else:
    print"正确答案是:%s" %n
    print "答题超过限制,你输了!"
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 流程控制-if条件  
  • for循环
  • for循环字典
  • for循环退出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档