循环

shell中for循环的表现形式:

1、数字段形式

for i in {1..10};do  echo $i;done

还支持按规定的步数进行跳跃的方式实现列表for循环,例如计算1~100内所有的奇数之和。 sum=$((sum+i))

sum=  

for i in {....}
do
let "sum+=i"
done echo "sum=$sum"

2、详细列出(字符且项数不多)
for f in file1 file2 file3 file4 file5;do echo $f;done

3、对存在的文件进行循环
for f in `ls *.sh`;do echo $f;done

4、类C风格的for循环也被称为计次循环

for ((i=1;i<5;i++));do echo $i;done

while循环

也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句。为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况。

(1)计数器控制的while循环

sum=
i= while(( i <= ))
do
let "sum+=i"
let "i += 2"
done echo "sum=$sum"

(2)结束标记控制的while循环

设置一个特殊的数据值(结束标记)来结束while循环

echo "Please input the num(1-10) "
read num while [[ "$num" != ]]
do
if [[ "$num" < ]]
then
echo "Too small. Try again!"
read num
elif [ "$num" -gt ]
then
echo "To high. Try again"
read num
else
exit
fi
done echo "Congratulation, you are right! "

猜数

(3)标志控制的while循环      使用用户输入的标志值来控制循环的结束(避免不知道循环结束标志的条件)

echo "Please input the num "
read num sum=
i= signal= while [[ "$signal" -ne ]]
do
if [ "$i" -eq "$num" ]
then
let "signal=1"
let "sum+=i"
echo "1+2+...+$num=$sum"
else
let "sum=sum+i"
let "i++"
fi
done

python中循环的表现形式:

Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来。

>>> names = ['Mic', 'Bob', 'Jcy']
>>> for name in names:
... print name
...
Mic
Bob
Jcy

for 循环

range(10)就可以生成0-10的整数序列,计算如下:

sum  = 0
for x in range(10):
sum += x
print sum

计算1-10整数之和

第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。

比如我们要计算100以内所有奇数之和,可以用while循环实现:

sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum

while 循环

在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。

循环控制语句

1、 break 命令不执行当前循环体内break下面的语句从当前循环退出.

2、continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行

条件判断

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

Python 编程中 if 语句用于控制程序的执行,基本形式为:

if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

if 判断

还可以简写为:

if x:
print 'True' 只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。

if 判断简写

附1:

Linux Shell中写循环时,常常要用到变量的自增。
我所知道的,bash中,变量自增,目前有五种方法(红色常用):
1、((i++))       
2、i=$(( $i + 1 ))
3、let i+=1
4、i=`expr $i + 1`
5、i=$[$i+1]

附:乘法口决表:

for ((i=;i<=;i++))
do for ((j=;j<=i;j++))
do
#let "sum=i*j"
sum=$((i*j)) #这种方式比较常用
echo -n "$i*$j=$sum "
done echo " " #换行
done

Shell 编程和Python编程的那些不同之处(一)的更多相关文章

  1. Python学习手册之 Python 之禅、Python 编程规范和函数参数

    在上一篇文章中,我们介绍了 Python 的正则表达式使用示例,现在我们介绍 Python 之禅. Python 编程规范和函数参数.查看上一篇文章请点击:https://www.cnblogs.co ...

  2. 学Python编程能做什么工作?从事什么岗位?——这些问题你知道吗?

    前言 学Python编程能做什么工作?随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能能都可以用Python实现.除了编程,各种岗位的人都 ...

  3. Emacs 配置 Python 编程环境

    python编程环境设置涉及到:自动完成.语法检查.虚拟环境. 为了不把系统搞乱,在python的虚拟环境中安装相关的插件. 一.安装python虚拟环境 virtualenvwrapper sudo ...

  4. 书籍推荐Python编程:从入门到实践(高清完整pdf)

    这本书我看了电子版的,感觉还不错,全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 -- 游戏.数据可视化和 Web 应用程序,同时掌握让你终身受益 ...

  5. 《趣学Python编程》

    <趣学Python编程> 基本信息 作者: (美)Jason Briggs 译者: 尹哲 出版社:人民邮电出版社 ISBN:9787115335951 上架时间:2014-2-21 出版日 ...

  6. Python编程中 re正则表达式模块 介绍与使用教程

    Python编程中 re正则表达式模块 介绍与使用教程 一.前言: 这篇文章是因为昨天写了一篇 shell script 的文章,在文章中俺大量调用多媒体素材与网址引用.这样就会有一个问题就是:随着俺 ...

  7. [零基础学pythyon]安装python编程环境

    不论什么高级语言都是须要一个自己的编程环境的,这就好比写字一样,须要有纸和笔,在计算机上写东西.也须要有文字处理软件,比方各种名称的OFFICE.笔和纸以及office软件,就是写东西的硬件或软件.总 ...

  8. (2)麻省理工:计算机科学和 Python 编程导论

    语义描述了我们如何从那些表达式中推导出相关的含义,从而解决我们想解决的问题. 语法描述了如何将合法表达式组合在一起. 我们要选择什么样的编程语言? 1.     不管我们选什么,都有如下过程: 输入信 ...

  9. 《简明Python编程》核心笔记(1~5章)

    2014年8月20日 <简明Python编程>核心笔记  (1~5章) 昨天和今天两天时间里.把<简明Python编程>这一本书学完了,包含书上的代码.现把核心笔记记录下来,以 ...

随机推荐

  1. 深入学习vue指令,自定义指令解决开发痛点

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code v-model指令 vue.js的定义是一个mvvm框架,将它发挥到极致能够极大的提升 ...

  2. 【angularjs】使用angular搭建项目,获取dom元素

    方法一:需要引入jq,否则会报angularJS1 Error: [jqLite:nosel](不建议使用) <div id="testID" class="tes ...

  3. Eclipse中利用JSP把mysql-connector-java-8.0.13.jar放到WebContent\WEB-INF\lib中连接MySQL数据库时Connection conn = DriverManager.getConnection(url,username,password)报错的解决办法

    开发环境: 1.系统:windows 7/8/10均可 2.jdk:1.8.0_144 3.服务器:apache-tomcat-9.0.8 4.IDE:eclipse+jsp 0.网页代码如下: &l ...

  4. 调试CAS源码步骤

    1.先安装gradle2.eclipse安装gradle(sts)插件3.克隆cas源码 这一块需要很长时间4.gradle build 会遇到安装node.js 的模块 不存在的问题. 按提示解决就 ...

  5. Eclipse MAT内存分析工具(Memory Analyzer Tool)

    MAT内存分析工具 MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器.可以用于查找内存泄露以及查看内存消耗情况.MAT是基于Eclipse开发的,是一款免费的性能分 ...

  6. eclipse maven设置

    eclipse 4.4以上版本集成了maven,只需配置一下即可,如果你的eclipse 没有安装maven,可以参考这个文章.http://marketplace.eclipse.org/conte ...

  7. 使用publisher模式控制频繁的UI输出,避免Winform界面假死

    http://www.cnblogs.com/Charltsing/p/publisher.html 最近测试task并发任务的效率与线程池的区别,发现了另外一个问题.task建立任务的速度很快,输出 ...

  8. MySQL 深入浅出数据库索引原理(转)

    本文转自:https://www.cnblogs.com/aspwebchh/p/6652855.html 前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术 ...

  9. semantic-ui 下拉框

    注意:在使用semantic的下拉框的时候,不仅需要引入semantic.css,还要引入semantic.js,最重要的是引入jquery.否则下拉效果不会显示. 并且,jquery必须先于sema ...

  10. Booth乘法

    先看一个例子,结合疑问看算法. 1.已知X=+0.0011 Y=-0.1011 求[XY]补 解:[x]补 =0.0011 , [-x]补 =1.1101,[y]补 =1.0101 部分积      ...