for循环

手写冒泡排序

半城伤御伤魂 提交于 2020-03-01 14:20:07
// 冒泡排序原理: // 把第一项a和后一项b进行比较,如果a比b大,那么把第一项后移,第二项前移。 // 也就是把第一项变成b,把第二项变成a,依次循环,把每一项都执行一遍。 let arr = [1, 2, 4, 8, 5, 10, 9, 7, 6]; // 减1是为了最后一项不用再和后面的进行比较了,减去j也是不用对当前j进行循环 let isOk = true; for (let j = 0; j < arr.length -1; j ++) { for (let i = 0; i < arr.length - 1 - j; i ++) { let a = arr[i]; let b = arr[i + 1]; if (a > b) { arr[i] = b; arr[i + 1] = a; isOk = false; } if (isOk) { // 如果已经排好,就不继续循环排序 break; } } } 来源: https://www.cnblogs.com/yxfboke/p/12389425.html

Python 海龟绘图 100 题——第 37 题

混江龙づ霸主 提交于 2020-03-01 10:41:37
题目:绘制下面的图形 解析: 使用二重循环绘制以十字为基础的基本图形。 答案: import turtle as t for i in range ( 0 , 4 ) : for j in range ( 0 , 5 ) : t . fd ( 25 ) t . lt ( 90 ) t . fd ( 10 ) t . bk ( 20 ) t . fd ( 10 ) t . rt ( 90 ) t . bk ( 125 ) t . rt ( 90 ) 来源: 玩转Python海龟绘图 来源: CSDN 作者: judi0713 链接: https://blog.csdn.net/u014297578/article/details/104587013

i++与++i必须要区分(for循环中)的细节

妖精的绣舞 提交于 2020-03-01 05:24:19
表面区别 ++i是先加在赋值;i++是先赋值再加。这样记忆: ++在前就先加 代码中初始:i = 1 for循环中i++与++i的区别(根本区别) 在for循环中++i与i++到底有没有区别,只放在for循环里,区别不大,但是要明白他们的区别i++是先用后加,++i是先加后用,所以区别就是。。。看下面代码你就懂啦。 //模拟a=i++; temp = i ; i = i + 1 ; a = temp ; //模拟a=++i; i = i + 1 ; a = i ; i++需要多一个临时存储空间,操作上也要多一步赋值,所以效率上,++i要更快一些。 参考: https://blog.csdn.net/a845717607/article/details/81455105 来源: CSDN 作者: 九筒- 链接: https://blog.csdn.net/weixin_44343282/article/details/104577393

python基础,控制语句与函数

≡放荡痞女 提交于 2020-03-01 02:38:03
一,for循环 for 变量 in 可迭代对象 : 循环体语句 注意:for循环其实是将可迭代对象依此赋给变量。包含range迭代器 用for循环遍历可迭代对象,代码如下: for i in [ 1 , 2 , 3 ] : print ( i ) 1 2 3 >> > for i in ( 1 , 2 , 3 ) : print ( i ) 1 2 3 >> > for i in { 1 , 2 , 3 } : print ( i ) 1 2 3 >> > d = { 1 : 2 , 2 : 3 } >> > for i in d : print ( i ) 1 2 >> > for i in d . items ( ) : print ( i ) ( 1 , 2 ) ( 2 , 3 ) >> > for i in '123' : print ( i ) 1 2 3 练习: 1,计算0到100的总和,奇数和,以及偶数和 sum = 0 sum_odd = 0 sum_even = 0 for i in range ( 101 ) : sum += i if i % 2 == 1 : sum_odd += i else : sum_even += i print ( sum ) print ( sum_even ) print ( sum_odd ) print (

avalon2学习教程09循环操作

谁都会走 提交于 2020-02-29 04:15:45
avalon2的循环指令的用法完全改变了。avalon最早期从knockout那样抄来ms-each,ms-with,分别用于数组循环与对象循环。它们都是针对元素内容进行循环。后来又从angular那里抄来了ms-repeat, 这是循环元素内部的。 到avalon2,这三个指令合并成一个ms-for指令 ,用法与angular更相似,但没有$index, $last, $first, $middle. 如果想得到数组元素或对象的键值,在in关键字前指定一个新变量 <div ms-for="el in @arrayOrObject">{{el}}</div> 如果要指定数组索引值或对象的键名,那么需要加一个小括号 <div ms-for="(index,el) in @arrayOrObject">{{el}}</div> 我们可以用limitBy, filterBy, orderBy, selectBy过滤器生成新的循环体 <div ms-for="(index,el) in @arrayOrObject | filterBy('name')">{{el}}</div> 如果用limitBy过滤器,那么数组的长度或对象的大小会变小,那我们现在就不 知道现在的长度,因此我们需要另一个变量引用新对象新数组 <div ms-for="(index,el) in

for循环以及数据类型

旧城冷巷雨未停 提交于 2020-02-28 13:54:11
一.for循环(迭代式循环) 了解:当我们在写代码时,如果代码是纯运算的代码,会占用大量的CPU,如果是I/O代码,则不会占用CPU。 for i in range(10): #可以是任意类型(字符串、列表、字典) pass while循环 VS for循环: 1. while循环:称之为条件循环,循环的次数取决于条件何时为False。 for循环:称之为迭代式循环,循环的次数取决于数据的包含的元素的个数。 2. for循环专门用来取值,在循环取值方面比while循环要强大,以后但凡遇到循环取值的场景,就应该用for循环。 for循环也可以跟continue、break、else使用,其使用方法与whlie循环一致。 for循环也可以进行嵌套。 二.数字类型 1.整型int(不可变类型,一个值) int里面的数据类型只能是整数、浮点数和纯数字的字符串。其结果都会转换成整型。 了解:十进制转换成二进制(bin(14))、八进制(oct(14))、十六进制(hex(14))。 2.浮点型float(不可变类型,一个值) float里面的数据类型只能是整数、浮点数和浮点数的字符串。其结果都会转换成浮点型。 三.字符串类型str(不可变类型,一个值,有序) 字符串可以把任意类型的数据都转换成字符串类型。 内置方法: 重点: 1、按索引取值(正向取+反向取) :只能取 正向取:从左向右

List遍历方式

倾然丶 夕夏残阳落幕 提交于 2020-02-28 07:13:05
实现了RandomAccess接口的List,优先选择f普通for循环,其次foreach 未实现RandomAccess接口的List,优先选择iterator遍历(foreach底层也是用iterator来实现的),大的数据千万不要容普通for循环。 来源: oschina 链接: https://my.oschina.net/u/4434424/blog/3169115

迭代访问列表的最“ pythonic”方法是什么?

我是研究僧i 提交于 2020-02-28 03:23:24
我有一个Python脚本,它将一个整数列表作为输入,我需要一次处理四个整数。 不幸的是,我无法控制输入,或者将其作为四元素元组的列表传递。 目前,我正在以这种方式对其进行迭代: for i in xrange(0, len(ints), 4): # dummy op for example code foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3] 不过,它看起来很像“ C思维”,这使我怀疑还有一种处理这种情况的更Python的方法。 该列表在迭代后被丢弃,因此不需要保留。 也许这样的事情会更好? while ints: foo += ints[0] * ints[1] + ints[2] * ints[3] ints[0:4] = [] 不过,还是不太“正确”。 :-/ 相关问题: 如何在Python中将列表分成均匀大小的块? #1楼 此问题的理想解决方案适用于迭代器(而不仅仅是序列)。 它也应该很快。 这是itertools文档提供的解决方案: def grouper(n, iterable, fillvalue=None): #"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx" args = [iter(iterable)] * n return itertools.izip

高级变量类型

*爱你&永不变心* 提交于 2020-02-27 12:31:57
列表 元组 字典 字符串 公共方法 变量高级 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 ( int ) 浮点型( float ) 布尔型( bool ) 真 True 非 0 数 —— 非零即真 假 False 0 复数型 ( complex ) 主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题 非数字型 字符串 列表 元组 字典 在 Python 中,所有 非数字型变量 都支持以下特点: 都是一个 序列 sequence ,也可以理解为 容器 取值 [] 遍历 for in 计算长度 、 最大/最小值 、 比较 、 删除 链接 + 和 重复 * 切片 01. 列表 1.1 列表的定义 List (列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 专门用于存储 一串 信息 列表用 [] 定义, 数据 之间使用 , 分隔 列表的 索引 从 0 开始 索引 就是数据在 列表 中的位置编号, 索引 又可以被称为 下标 注意:从列表中取值时,如果 超出索引范围 ,程序会报错 name_list = ["zhangsan", "lisi", "wangwu"]  1.2 列表常用操作 在 ipython3 中定义一个 列表 ,例如: name_list = [] 输入 name_list. 按下 TAB 键,

C语言-黑白棋(人机对战)

徘徊边缘 提交于 2020-02-26 13:04:25
1 #include <stdio.h> 2 #include <conio.h> 3 /* 4 分析:要实现黑白棋的关键在于由计算机下棋时,智能判断最佳下棋位置。具体思路如下: 5 1.定义一个二维数组chessboard[8][8],用于保存黑白双方所下棋子的位置。如果数组元素为0,表示该单元格为落子;如果是-1,表示该单元格是黑子;如果是1,则表示该单元格是白子。 6 2.当一方下棋时,先检查是否有位置可下,如果没有就让对手下,如果有就让玩家或计算机下。 7 3. 若玩家下,需要等待玩家输入下子坐标。 8 4.若计算机下,程序需对棋盘的空位置进行判断,找出最佳的下子位置。 9 5.重复步骤2~4,直到棋盘已满或双方都不能下子时结束。 10 */ 11 12 void Output(char chessboard[][8]); //显示棋盘中的下子情况 13 int Check(char chessboard[][8],int moves[][8],char player);//检查一方是否有位置下子 14 void PlayStep(char chessboard[][8],int row,int col,char player);//在指定位置下棋 15 void AutoPlayStep(char chessboard[][8],int moves[][8],char