zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    文档01_基础
    文档07_JavaScript_ajax
    文档02_JavaScript
    文档06_JavaScript_面相对象
    文档05_JavaScript_节点
    文档06_Asp.net2.0_01
    文档04_JavaScript_事件
    文档05_多线程
    文档03_JavaScript_函数
    根据日期计算星座
  • 原文地址:https://www.cnblogs.com/luck123/p/7799386.html
Copyright © 2011-2022 走看看