Shell 编程和Python编程的那些不同之处(一)

循环

shell中for循环的表现形式:

1、数字段形式

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

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

sum=0  
  
for i in {1..10..2}  
do  
    let "sum+=i"  
done  
      
echo "sum=$sum"  
View Code

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=0  
i=1  
  
while(( i <= 100 ))  
do  
     let "sum+=i"  
     let "i += 2"     
done  
  
echo "sum=$sum"
View Code

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

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

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

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

echo "Please input the num "  
read num  
  
sum=0  
i=1  
  
signal=0  
  
while [[ "$signal" -ne 1 ]]  
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  
View Code


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条件,循环退出。

循环控制语句

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

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

条件判断

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=1;i<=9;i++))  
do  
      
    for ((j=1;j<=i;j++))  
    do  
        #let "sum=i*j"       
    sum=$((i*j))     #这种方式比较常用
        echo -n "$i*$j=$sum "  
     done   
       
     echo " "   #换行  
done 
View Code
原文地址:https://www.cnblogs.com/luck123/p/7799386.html