博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python循环for,range,xrange;while
阅读量:4482 次
发布时间:2019-06-08

本文共 2022 字,大约阅读时间需要 6 分钟。

>>>
range
(
1
,
5
)
#代表从1到5(不包含5)
[
1
,
2
,
3
,
4
]
>>>
range
(
1
,
5
,
2
)
#代表从1到5,间隔2(不包含5)
[
1
,
3
]
>>>
range
(
5
)
#代表从0到5(不包含5)
[
0
,
1
,
2
,
3
,
4
]
array
=  
[
1
,
2
,
5
,
3
,
6
,
8
,
4
]
#其实这里的顺序标识是
[
1
,
2
,
5
,
3
,
6
,
8
,
4
]
(
0
1
2
3
4
5
6
)
(
-
7
,
-
6
,
-
5
,
-
4
,
-
3
,
-
2
,
-
1
)
 
>>> array[
0
:]
#列出0以后的
[
1
,
2
,
5
,
3
,
6
,
8
,
4
]
>>> array[
1
:]
#列出1以后的
[
2
,
5
,
3
,
6
,
8
,
4
]
>>> array[:
-
1
]
#列出-1之前的
[
1
,
2
,
5
,
3
,
6
,
8
]
>>> array[
3
:
-
3
]
#列出3到-3之间的
[
3
]
 

那么两个[::]会是什么那?

 
>>> array[::
2
]
[
1
,
5
,
6
,
4
]
>>> array[
2
::]
[
5
,
3
,
6
,
8
,
4
]
>>> array[::
3
]
[
1
,
3
,
4
]
>>> array[::
4
]
[
1
,
6
]
如果想让他们颠倒形成reverse函数的效果
>>> array[::
-
1
]
[
4
,
8
,
6
,
3
,
5
,
2
,
1
]
>>> array[::
-
2
]
[
4
,
6
,
5
,
1
]
 
 
 
 
xrange函数说明:
    用法与range完全相同;不同的是range生成一个数组,而xrange返回一个生成器。

这两个输出的结果都是一样的,实际上不同,range会直接生成一个list对象:

a = range(0,100)

print type(a)

print a

print a[0], a[1]

xrange则不会直接生成一个list,而是每次调用返回其中的一个值

a = xrange(0,100)

print type(a)

print a

print a[0], a[1]

xrange做循环的性能比range好,尤其是返回很大的时候!

尽量用xrange吧,除非你是要返回一个列表。

 

xrange示例: 
  1. >>> xrange(5)
  2. xrange(5)
  3. >>> list(xrange(5))
  4. [0, 1, 2, 3, 4]
  5. >>> xrange(1,5)
  6. xrange(1, 5)
  7. >>> list(xrange(1,5))
  8. [1, 2, 3, 4]
  9. >>> xrange(0,6,2)
  10. xrange(0, 6, 2)
  11. >>> list(xrange(0,6,2))
  12. [0, 2, 4]
 
 
 
while 条件为真时重复执行一块语句:
例如:
i=1
while i<10:
  print i
  i+=1
 
另外, while语句有一个可选的else从句

number = 23
running = True

while running:
    guess = int(raw_input('Enter an integer : '))

    if guess == number:
        print 'Congratulations, you guessed it.' 
        running = False # this causes the while loop to stop
    elif guess < number:
        print 'No, it is a little higher than that' 
    else:
        print 'No, it is a little lower than that'
else:
    print 'The while loop is over.' 
    # Do anything else you want to do here

print 'Done'

输出

$ python while.py
Enter an integer : 50
No, it is a little lower than that.
Enter an integer : 22
No, it is a little higher than that.
Enter an integer : 23
Congratulations, you guessed it.
The while loop is over.
Done

 
 

转载于:https://www.cnblogs.com/cl1024cl/p/6205651.html

你可能感兴趣的文章
Agile实践日志一 -- Grooming Session
查看>>
msgsnd的一个小问题
查看>>
Spring实现动态数据源,支持动态加入、删除和设置权重及读写分离
查看>>
iOS 浅谈:深.浅拷贝与copy.strong
查看>>
BZOJ 3555: [Ctsc2014]企鹅QQ
查看>>
C++和JAVA的关系 (转载)
查看>>
JMeter在linux上分布式压测步骤(二)
查看>>
ClassNotFoundException和NoClassDefFoundError区别
查看>>
我问你,一个程序发三遍是什么毛病
查看>>
企业网站的重构
查看>>
javaScript 深拷贝、浅拷贝
查看>>
E. The shortest problem
查看>>
jdk环境配置
查看>>
css定位
查看>>
MySql数据库的访问
查看>>
JSP—cookie
查看>>
构建之法第六、七章读后感
查看>>
css布局1
查看>>
百度实习第二天
查看>>
直接拿来用!最火的Android开源项目整理
查看>>