使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节。这里记录一下range(),复习下list的slide,最后分析一个好玩儿的冒泡程序。

这里记录一下:

>>> 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]

再看看list的操作:

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]

感觉自己懂了吧,那么来个冒泡吧:

array = [1, 2, 5, 3, 6, 8, 4]

for i in range(len(array) - 1, 0, -1):

print i

for j in range(0, i):

print j

if array[j] > array[j + 1]:

array[j], array[j + 1] = array[j + 1], array[j]

print array

一行一行的来看:

line 1:array = [1, 2, 5, 3, 6, 8, 4]一个乱序的list没什么好解释的

line 2:for i in range(len(array) - 1, 0, -1):这就是上边给的例子的第二条,我们替换下就成为range(6,1,-1),意思是从6到1间隔-1,也就是倒叙的range(2,7,1),随后把这些值循环赋给i,那么i的值将会是[6, 5, 4, 3, 2]

line 3:for j in range(0, i):这是一个循环赋值给j,j的值将会是[0, 1, 2, 3, 4, 5][0, 1, 2, 3, 4][0, 1, 2, 3][0, 1, 2][0, 1]

那么上边两个循环嵌套起来将会是

i------------6

j------------0j------------1j------------2j------------3j------------4j------------5

i------------5

j------------0j------------1j------------2j------------3j------------4

i------------4

j------------0j------------1j------------2j------------3

i------------3

j------------0j------------1j------------2

i------------2

j------------0j------------1

line 4:if array[j] > array[j + 1]:

>>> array = [1, 2, 5, 3, 6, 8, 4]

>>> array[0]

1

>>> array[1]

2

>>> array[2]

5

>>> array[3]

3

>>> array[4]

6

>>> array[5]

8

>>> array[6]

4

其实·就是使用这个把这个没有顺序的array = [1, 2, 5, 3, 6, 8, 4]排序

line 5:array[j], array[j + 1] = array[j + 1], array[j] 替换赋值

line 6:打印出来

其实要想省事儿,sort()函数一句就能搞定.......

--EOF--

菜鸟教程python3循环语句_详细记录python的range()函数用法|python3菜鸟教程相关推荐

  1. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  2. python的for循环语句_干货丨Python的循环语句基础讲解!

    我们知道计算机程序语言一般是按照顺序执行的,那么编程语言就提供了各种控制结构,允许更复杂的执行路径,其中循环语句的作用就是允许我们执行一个语句或语句组多次. 在Python中循环语句的类型主要有以下几 ...

  3. python3 进度条_详细介绍Python进度条tqdm的使用

    前言 有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况.这对于第三方库非常丰富的Python来说,想要实现 ...

  4. python获取系统时间函数_简单记录python的时间函数操作

    1. time和datetime模块 import datetime,time 2. 获得当前时间 time.time() #获得当前时间,返回float型 time.localtime([float ...

  5. python class函数报错_如何掌握python中class函数用法?

    虽然大家都知道class是什么,也都知道自己在写代码时候怎么去使用这个功能,但是如果说,想让大家利用class去写一个help大家知道吗?作为一个代码老司机,不得不跟大家说明,好的代码编写一定是靠基础 ...

  6. python3菜鸟教程-Python3 循环语句

    Python3 循环语句 本章节将为大家介绍 Python 循环语句的使用. Python 中的循环语句有 for 和 while. Python 循环语句的控制结构图如下所示: while 循环 P ...

  7. python教程循环语句,Python基础教程之循环语句(for、while和嵌套循环)

    循环可以用来重复执行某条语句,直到某个条件得到满足或遍历所有元素. 1 for循环 是for循环,可以把集合数据类型list.tuple.dict.set的元素遍历出来. (1)对list进行循环 c ...

  8. python编程循环语句_循环语句—Python编程从入门到精通(5)

    第6章.循环语句 在本书上一章的内容中,我们学习了实现条件判断功能的条件语句,让程序的执行顺序发生了变化.为了满足循环和跳转等功能,本章将详细讲解Python语言中循环语句的知识,主要包括for循环语 ...

  9. Shell编程之循环语句(详细讲解以及脚本案例)

    Shell编程之循环语句(详细讲解以及脚本案例) 文章目录 一.for语句的结构 (一).for语句应用实例 1.示例1--批量添加用户 2.示例2--使用根据IP地址检查主机状态 3.示例3--fo ...

最新文章

  1. grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)
  2. mysql集群安装配置
  3. 线程介绍,异步,对象锁
  4. spark on yarn 完全分布式_Apache Spark探秘:三种分布式部署方式比较
  5. 超全的Android组件及UI框架
  6. python人脸识别环境搭建_怎样用3分钟搭建 Python 人脸识别系统
  7. Java快速入门-01-基础篇
  8. LoadRunner解决“服务器正在运行中”方法
  9. PAT乙级 1003
  10. mysql innodb 索引组织表_Mysql InnoDB引擎 -索引组织表
  11. mysql 添加实例_如何在多实例基础上再添加一个mysql的实例
  12. Windows | 常用软件
  13. 什么是数据中心虚拟化?
  14. 微信小程序详细图文教程10分钟解决
  15. 【机器学习】SVM核方法
  16. u盘安装linux戴尔boot设置,戴尔笔记本电脑怎么设置u盘启动|dell新机型bios设置usb启动步骤...
  17. 已解决urllib.error.HTTPError: HTTP Error 403: Forbidden
  18. 企业要如何建立适合自己的PMF?
  19. eggs和egg是什么意思_egg是什么
  20. 后端/Java/大数据/C++ 校招内推面经

热门文章

  1. 苹果M1「徒有其表」?「地表最强」芯只能剪视频引知乎热议
  2. RuntimeError: grad can be implicitly created only for scalar outputs的原因:Pytorch不支持对张量的求导
  3. Ubuntu 安装libjpeg-turbo库
  4. DenseNet详细解读
  5. Springboot2模块系列:securityoauth2(Token安全认证)
  6. 计算机中文件可以重名吗,如何快捷找出电脑内的重复文件(两个工具)
  7. 定义一个用来和老师打招呼的方法。
  8. Julia 基于Flux深度学习框架的cifar10数据集分类
  9. vue.js项目中配置mapbox可视化地图api
  10. Mac系统安装Navicat Premium数据库与汉化