循环

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. 微信硬件平台(一) 公众号 ESP8266 Arduino LED

    微信硬件平台 本文目的,使用微信公众号控制ESP8266的LED开和关.进一步使用微信当遥控器(避免写APP或者IOS或者小程序),控制一切设备.给两个关键的总教程参考. 官网教程  微信硬件平台 微 ...

  2. Linux如何查看端口状态

    netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的 ...

  3. AI SSD目标检测算法

    Single Shot multibox Detector,简称SSD,是一种目标检测算法. Single Shot意味着SSD属于one stage方法,multibox表示多框预测. CNN 多尺 ...

  4. Linux内存管理 一个进程究竟占用多少空间?-VSS/RSS/PSS/USS

    关键词:VSS.RSS.PSS.USS._mapcount.pte_present.mem_size_stats. 在Linux里面,一个进程占用的内存有不同种说法,可以是VSS/RSS/PSS/US ...

  5. 两个select之间的元素互相移动并保持顺序

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. 分布式事务框架Seata及EasyTransaction架构的比对思考

    本文将会对比Seata与EasyTransaction两个分布式事务的一些高层设计,相信大家会有收获. Seata的概述 Seata(曾用名Fescar,开源版本GTS)是阿里的开源分布式事务框架,其 ...

  7. 使用protostuff自定义编解码器优化springcloud-feign性能

    前言 Spring Cloud feign是伪RPC方式解决微服务间的调用.翻看FeignCloudFeign源码,可以看到Feign默认使用HttpUrlConnection; 代码在Default ...

  8. babel-polyfill使用与性能优化

    文章首发于笔者的个人博客 文章概览 本文主要内容包括:什么是babel-polyfill,如何使用,如何通过按需加载进行性能优化. 本文所有例子可以在 笔者的github 找到. 什么是babel-p ...

  9. tornado设置cookie并加密

    最近看看tornado,遇到了sso的东西,了解下如何设置cookie 1.基本cookie set_cookie 方法在用户的浏览中设置 cookie: get_cookie 方法在用户的浏览中获取 ...

  10. Array Queries CodeForces - 797E

    题目链接 非常好的一道题目, 分析,如果用暴力的话,时间复杂度是O(q*n)稳稳的超时 如果用二维DP的话,需要O (n*n)的空间复杂度,会爆空间. 那么分析一下,如果k>sqrt(n)的话, ...