• 《think in python》学习-5


    think in python -5

    think in python -5

    条件和递归

    求模操作符%

    用于整数,可以计算出第一个操作数除以第二个操作数的余数

    7%3   #结果是2
    

    求模操作符%有很多用途,比如可以检测一个数是不是另外一个数的倍数.

    布尔表达式

    是值为真或者为假的表达式

    5==5  #True
    5==6  #False
    

    TureFalse是布尔表达式的2个值,他们不是字符串。
    =是个关系操作符,其它的关系操作符有:

    x!=y
    x>y
    x<y
    x>=y
    x<=y
    

    逻辑操作符

    or and not 跟他们英文语义差不多

    and,or,not 三个逻辑操作符

    17 and Ture 
    
    x>0 and x<10 
    
    x<1 or y<2
    
    not(x>y)
    

    条件执行

    为了编写有用的程序,我们几乎总是需要检查条件,并据此改变程序的行为的能力。 条件语句可以给我们帮主

    if表达式很常用

    if 之后的布尔表达式称为 条件。 如果为真 会执行之后缩进的语句,反之什么都不发生

    if x>0:
        print "x is positive"
    

    选择执行

    if else

    if语句的第二种形式是 选择执行,这种形势下有2种可能

    if x%2==0:
        print "x is even"
    else:
        print "x is odd"
    

    这2段不同的语句成为分支,因为他们是程序执行流程中的两个支流

    条件链

    有时候会超过2种可能,我们需要更多的分支

    if x<y:
        print "x is less than y"
    elif x>y:
        print "x is greater than y"
    else:
        print "x and y  are equal"
    

    嵌套条件

    条件判断可以再嵌套条件判断。

    if x<y:
        print "x is less than y"
    else:
        if x<y:
            print "x is greater than y"
        else:
            print "x and y  are equal"
    

    如上,我们可以嵌套条件。但过分嵌套条件分支 会导致程序越来越臃肿。

    递归

    函数调用另外一个函数是合法的,函数调用自己也是合法的。

    def countdown(n):
        if n<=0:
            print "blastoff"
        else:
            print n
            countdown(n-1)
            
    coundown(3)
    >>> 3
    >>> 2
    >>> 1
    >>> blastoff
    

    调用自己的函数成为递归函数,这个过程叫做递归。

    无限递归

    如果设定一个递归永远达不到的基准情形,那么会无限执行下去,称为无限递归。

    def recurse():
        recurse()
    

    以上程序递归到上限以后,系统会报告一个错误。

    键盘输入

    raw_input 可以从键盘获取输入。还可以打印给用户一个提示信息。

    x = raw_input("what...is you name? 
    ")
    
    

    练习

    1. 编写一个函数 check_fermat,接收4个参数(a,b,c,n),检验 a的n次方 + b的n次方 是否等于 c的n次方
    2. 编写一个函数 提示用户输入 a b c n 的值,转换成整数,并调用check_fermat来检查
    def check_fermat(a,b,c,n):
        abn = math.pow(a,n)+math.pow(b,n)
        cn = math.pow(c,n)
        if n>2 and abn==cn:
            print"you"
        else:
            print"no"
    def tips():
        a = raw_input("plz input a value")
        b = raw_input('plz input b value')
        c = raw_input('plz input c value')
        n = raw_input('plz input n value')
        check_fermat(int(a),int(b),int(c),int(n))
    
    1. 有3根木棍,写个函数is_triangle 判断是否可以拜成一个三角形。条件是如果有其中任意一个长度大于其他2个的和,则不能。
    2. 编写一个函数提示用户输入3个木棍的长度 ,转成整数 并使用is_triangle检查
      def is_triangle(a,b,c):
          if a+b<c or a+c<b or b+c<a:
              print "no"
          elif a+b==c or a+c==b or b+c==a:
              print "yes"
          else:
              print "Yes"
      
      #is_triangle(2,4,6)
      
      def tips2():
          a = raw_input("plz input line length")
          b = raw_input('plz input line length')
          c = raw_input('plz input line length')
          is_triangle(int(2),int(4),int(6))
      

    术语表(新手建议阅读并尝试理解)

    • 求模操作符(modules operator):用%表示的操作符,用于两个整数,计算其相除的余数。
    • 布尔表达式(boolean expression):一种表达式,其值是Ture或者False
    • 关系操作符(relational operator):用来表示两个操作对象的比较关系的操作符,比如== != > < >= <=
    • 逻辑操作符(logical operator):用来组合两个布尔表达式的操作符,有3个and or not
    • 条件语句(conditional statement):依照某些条件控制程序执行流程的语句。
    • 条件(condition):条件语句中的布尔表达式,由它决定执行哪一个分支
    • 复合语句(compound statement):一个包含语句头和语句体的语句。语句头以冒号:结尾。语句体相对语句头缩进一层
    • 分支(branch):条件语句中的一个可能性分支句段。
    • 条件链语句(chained conditional):一种包含多个分支的条件语句
    • 嵌套条件语句(nested conditional):在其他条件语句中的分支中出现的条件语
    • 递归(recursion):在当前函数中调用自己的过程
    • 基准情形(base case):递归函数中的一个条件分支,里面不会再继续递归调用
    • 无限递归(infinite recursion):没有基准情形的递归,或者永远无法达到基准情形的分支递归调用,最终,会导致运行错误
  • 相关阅读:
    PHP install perl module
    PHP 静态页
    PHP对类的操作
    PHP Mysql操作。
    2020.7.16
    2020.7.19
    2020.7.14
    2020.7.12
    2020.7.17
    2020.7.10
  • 原文地址:https://www.cnblogs.com/iyueyao/p/4189994.html
Copyright © 2020-2023  润新知