for循环

shell for循环

柔情痞子 提交于 2020-02-14 08:05:53
seq的效果 # seq 1 5 1 2 3 4 5 第一个for脚本 #!/bin/bash # for 操作 for i in `seq 1 5` do echo "num is $i" done 计算1到100的和。 # expr 1 + 100 101 #!/bin/bash # 计算1到100的和 j=0 for i in `seq 1 100` do j=`expr $i + $j` done echo -e "\033[32m 1到100的和为:$j \033[0m"; #!/bin/bash # 计算1到100的和 j=0 for i in {1..100} do j=`expr $i + $j` done echo -e "\033[32m 1到100的和为:$j \033[0m"; #!/bin/bash # 计算1到100的和 j=0 for((i=1;i<=100;i++)) do j=`expr $i + $j` done echo -e "\033[32m 1到100的和为:$j \033[0m"; -x可以查看执行过程。 /bin/bash -x for.sh + BEGIN=1 + END=10 + j=0 + (( i=1 )) + (( i<=10 )) ++ expr 1 + 0 + j=1 + (( i++ )) + (( i<=10 ))

数据结构与算法(4)

纵饮孤独 提交于 2020-02-14 01:16:08
1 冒泡排序 2 插入排序 3 选择排序 4 归并排序 5 线性查找 6 二分查找 1 冒泡排序 1.1 问题 冒泡排序是一种著名的排序方法。 冒泡排序的过程是这样的,首先,将待排序的数组中的第一个元素与第二个元素相对比,如果这两个元素的大小顺序不是我们要求的顺序,则将它们交换过来。然后,将待排序的数组中的第二个元素与第三个元素相对比,如果这两个元素的大小顺序也不是我们要求的顺序,则也将它们交换过来。下一步,是对比第三个元素与第四个元素,直至倒数第二个元素与最后一个元素相对比。这样一趟对比下来,小的数据元素会一点一点的往前放,而大的数据元素会一点一点的往后放。反复多趟的这样对比,直到所有数据都排好序为止。 1.2 方案 为了理解冒泡排序算法,我们先假设有一个长度为10的数组,数组内容如图-1所示: 图-4中的数组元素为无序状态,现需要将数组内的元素排序成从小到大的升序状态。可以先进行第一趟比较。首先比较第1个和第2个数,也就是数组第一个元素3和数组第二个元素2,将小数放前,大数放后。交换后如图-2所示: 然后,将图-2中的第2个和第3个数,也就是数组第二个元素3和数组第三个元素4,进行对比,由于3小于4,所以不进行交换。接着将图-2中的第3个和第4个数对比后发现也不需要交换。这样依次进行对比,直到图-2中的第7个和第8个数,也就是数组第七个元素9和数组第八个元素1,对比时

Go实现简单的Socket服务端笔记(二)

流过昼夜 提交于 2020-02-13 17:22:48
第二步 循环读取数据 利用for循环,等待客户端发送数据 本文代码查看github: https://github.com/zboyco/go-server/tree/step-2 修改上一步的代码,让服务端循环接收客户端发送的消息,主要使用for循环,直接上代码 package main import ( "fmt" "net" ) func main ( ) { //定义一个本机端口 localAddress , _ := net . ResolveTCPAddr ( "tcp4" , ":9043" ) //监听端口 tcpListener , err := net . ListenTCP ( "tcp" , localAddress ) if err != nil { fmt . Println ( "监听出错, " , err ) return } //程序返回后关闭socket defer tcpListener . Close ( ) fmt . Println ( "等待客户连接..." ) //开始接收连接 conn , err := tcpListener . Accept ( ) if err != nil { fmt . Println ( "客户连接失败, " , err ) } //获取连接地址 remoteAddr := conn .

最小生成树(模板)

匆匆过客 提交于 2020-02-13 14:07:16
51nod1212最小生成树模板题: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1212 克鲁斯卡尔(加边法):先取最小的边,在判断是不是一个集合(不是舍去,是加上) 普里姆(加点法):先已经判断了不是一个集合,再从不是的集合中找出最小的边把点加入,最后更新(再取,再更新。。) 都是加到n-1条边停止(n个点最少由n-1条边连通),另外,Kruskal不用考虑重边(并查集自动取舍),Prim需要考虑重边(不考虑必错!) (关于去最小边,克鲁斯卡尔事先排序好按顺序取即可,所以是n*logn;普里姆每轮之后都要更新,所以每次取都循环找一次,所以是n*n,当然最后还可以优化这里就不说了) 克鲁斯卡尔 以边为重点进行各种操作,点不是重点,所以存图方式不重要很简单。(把边连接信息表示出来就行,结构体完美表示) 另外关于并查集,初学并查集推荐不用深度优化,只改变父节点就行更加好理解,而且时间也差不了多少 初级并查集 1 #include <iostream> 2 #include <string> 3 #include <algorithm> 4 #include <iomanip> 5 #include <cstdio> 6 #include <cstring> 7 using namespace std; 8

shell for循环

痞子三分冷 提交于 2020-02-13 00:04:14
1. for语句的定义 var foo = 'bar' ; 1 2 2. for语句的格式 for NUM in 1 2 3 for NUM in { 1. .3 } for NUM in `seq 1 3` 或者 for NUM in `seq 1 2 10` do done 1 2 3 4 5 3. for语句示例 vim for . sh #编辑 for 示例脚本文件 # ! / bin / bash for i(变量名) in { 1. .10 } (变量的范围) do echo $i(输出变量i的所有值) done sh for . sh #运行脚本 1 2 3 4 5 6 7 8 9 vim for . sh # ! / bin / bash a = 1 b = 10 for i in { $a . . $b } do echo $i done 1 2 3 4 5 6 7 8 9 可以看到,这种定义变量的方式是不对的 vim for . sh # ! / bin / bash a = 1 b = 10 for i in `seq $a $b` do echo $i done sh for . sh 1 2 3 4 5 6 7 8 9 10 11 运行脚本,可以看到, vim for . sh # ! / bin / bash a = 1 b = 10 for i in

属性,表单,条件,循环,斗篷指令及vue的项目环境

前提是你 提交于 2020-02-12 20:45:38
斗篷指令: ​ v-cloak 避免屏幕闪烁 原理: ​ 1)属性选择器,会将v-cloak属性所在的标签隐藏 ​ 2)当vue环境加载后,会将v-clock属性解析移除,所以内容{{ num }} ​ 就会显示出来 ​ 3)而现在vue已经准备完毕,所以用户会直接看到数值10,而不会看到页面从{{ num }}闪烁成10 <title>Title</title> <style> [v-cloak]{ display: none; } </style> <body> <div id="app" v-cloak> <button v-on:click="fn">{{ num }}</button> </div> </body> <script src="js/vue.js"></script> <script> new Vue({ el:'#app', data:{ num: 10 }, methods:{ fn () { if(this.num !== 0){ this.num -= 2 }else { } } } }) </script> 属性指令: 1)语法:v-bind: 属性名=“变量” :后面不可以有空格 2)针对不同属性,使用方式有些区别 ​ 自定义属性以及title这些直接赋值的,使用方式为(t是变量, o是常量): <p class="a" style="color

SCL编程从入门到精通(一)程序创建与基本控制函数

余生颓废 提交于 2020-02-12 16:58:50
SCL语言是由Pascal而生的结构化程序语言,与梯形图相(LAD)比,SCL语言的灵活程度更高,易于编写控制算法。 本教程基于的平台如下 软件:TIA 15.1 CPU 1516 一、创建SCL程序 在SCL中一般不允许至直接使用绝对地址。 创建程序有两种基本方式; (1)直接创建纯SCL的程序块儿; (2)在LAD/FBD中在插入SCL程序段。 在程序段中直接右击插入即可,但是插入的程序段并不能完全使用SCL语法,GOTO等跳转指令就不能使用。在SCL中一般不能使用绝对地址进行变量地址的访问,变量表中的变量一般使用变量名称进行访问。 创建的SCL块儿可以在观测栏中显示变量的地址,如下,为示例程序: 在SCL中,:= 表示赋值。 二、常量,变量及相关指令 (1)常量及变量的声明 在博图中,可以在代码区进行变量的声明,也可以在程序块内部进行变量声明。具体如下图: 变量声明区有如下区别: 无论是FC还是FB块,都是函数块 Input 函数块的形参,外部传入函数的变量 类型 具体功能 Output 组件返回 函数的返回值 Inout 从外部读入量然后经过程序再输出到外部,其需要划分存储空间,故仅在FB块中使用 Static 同Inout仅在FB块中使用,例如计时器等函数块可以使用此类型函数进行定义 Temp 临时变量,局部变量,仅在当前周期中存在 其中,Constant为常量

Python 流程控制

大憨熊 提交于 2020-02-12 16:05:59
Python流程控制 Python条件控制 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块,可以通过下图来简单了解条件语句的执行过程: if语句 Python中if语句的一般形式如下所示: if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句; 如果 "condition_1" 为False,将判断 "condition_2"; 如果"condition_2" 为 True, 将执行 "statement_block_2" 块语句; 如果 "condition_2" 为False,将执行"statement_block_3"块语句; Python中用elif代替了else if,所以if语句的关键字为: if - elif - else 。 注意: 1.每个条件后面要使用冒号 : ,表示接下来是满足条件后要执行的语句块; 2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块; 3.在Python中没有switch – case语句; 以下是一个简单的if实例: var1 = 10 if

Python基础(五)

我们两清 提交于 2020-02-12 15:51:59
一、Python3条件控制 Python条件语句是通过 一条或多条语句 的 执行结果 (True或者False)来 决定执行的代码块 。 1.if语句 1 if condition_1: 2 statement_block_1 3 elif condition_2: 4 statement_block_2 5 else: 6 statement_block_3 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句 如果 "condition_1" 为False,将判断 "condition_2" 如果"condition_2" 为 True 将执行 "statement_block_2" 块语句 如果 "condition_2" 为False,将执行"statement_block_3"块语句 Python 中用 elif 代替了 else if ,所以if语句的关键字为: if – elif – else 。 注意: 1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。 3、在Python中没有switch – case语句。 1 num = 8 2 Num = -3 3 4 while(Num != num): 5 6 Num = int

python基础-特性

让人想犯罪 __ 提交于 2020-02-12 12:54:59
导航:   高阶特性:      切片: Python没有针对字符串的截取函数,只需要切片一个操作就可以完成      迭代: Python的 for 循环抽象程度要高于Java的 for 循环,因为Python的 for 循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上      列表生成器: 即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式      生成器: Generator ,一系列算法,使用时才计算值,一般采用for遍历.关键字 yield   高阶函数:        map: map() 函数接收两个参数,一个是函数,一个是序列, map 将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。      reduce: reduce() 函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。      filter: filter() 也接收一个函数和一个序列。和 map() 不同的时, filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True 还是 False 决定保留还是丢弃该元素。      sorted: Python内置的 sorted() 函数就可以对list进行排序.      返回函数 :函数作为返回值,闭包