• 第一周 Basics of Python 第二节 Python面面观


    1.2 More About Python

    一 条件condition

    1 if语句——条件表达式expression条件为true时执行代码块 expr_trhe_sute;代码块必须缩进(通常为4个空格)

    语法:if expression:

                 expr_true_suite

    2 else语句——expression条件为false时候执行代码块 expr_false_suite;代码块必须缩进;else语句不缩进

    语法:if expression:

                 expr_true_suite

            else:

                 expr_false_suite

    3 elif语句——多分支结构

    语法:if expression:

                 expr_true_suite

            elif expression2:

                 expr_true2_suite

            else:

                 none_of_the_obove_suite

    4 条件嵌套——同等缩进为同一条件嵌套

    例子及结果:

     1 k=raw_input('input the index of shape:')
     2 if k=='1':
     3     print 'circle'
     4 elif k=='2':
     5     print 'oval'
     6 elif k=='3':
     7     sd1=int(raw_input('the first side:'))
     8     sd2=int(raw_input('the second side:'))
     9     if sd1==sd2:
    10         print "the square's area is:%d"%(sd1*sd2)
    11     else:
    12         print "the rectangle's area is:%d"%(sd1*sd2)
    13         print 'rectangle'
    14 elif k=='4':
    15     print 'triangle'
    16 else:
    17     print 'you input the invalid number'
    1 runfile('C:/Users/john/Desktop/hello world.py', wdir='C:/Users/john/Desktop')
    2 
    3 input the index of shape:3
    4 
    5 the first side:2
    6 
    7 the second side:5
    8 the rectangle's area is:10
    9 rectangle

    二 range和xrange

    1 range()——生成一个真实的列表

    语法:range(start,end,step=1)

             range(start,end)  默认step值为1

             range(end) 默认start值为0

    start起始值(包含)end终值(不包含)step步长(不能为0)

    >>>range(3,11,2)

    [3,5,7,9]

    >>>range(3,11)

    [3,4,5,6,7,8,9,10]

    >>>range(11)

    [0,1,2,3,4,5,6,7,8,9,10]

    2 xrange()——语法同range;不同在于:range返回列表,xrange返回生成器、range生成真实列表,xrange则用多少生成多少,更节省内存

    在Python3中range已经成为xrange,若想要生成列表可用list(range)

    三 循环

    1 while——赋初值;注意表达式;不要害怕死循环

    2 for——适合循环次数确定的情况下:遍历一个数据集内的成员、在列表解析中使用、生成器表达式中使用

    语法:for iter_var in iterable_object:

                suite_to_repeat

    可迭代对象 iterable_object: String、List、Tuple、Dictionary、File

    列表解析语法规则用[]; 生成器表达式和xrange比较像,用于数据量较大时候

      

    四 循环中的break,continue和else

    1 break——跳出循环

    eg1:

    eg2:输出2-100之间的素数  (2~根号x之间没有x的约数)分别以while和for【不懂】

    2 continue语句——在while和for循环中,continue语句的作用是:停止当前循环,重新进入循环;while循环则判断循环条件是否满足;for循环则判断迭代是否已经结束

     

    左边:i=3时候结束循环直接跳出,所有没有print i=3

    右边:i=4时候继续循环,所以直接跳过了print 进入i=4

    3 循环中的else——如果循环代码从break处终止,跳出循环;正常结束循环,则执行else中的代码

    课程案例:猜数字游戏——程序随机产生一个0~300之间的整数;玩家竞猜,系统给出“猜中”、“太大了”、“太小了”的提示;允许玩家自己控制游戏次数,不想玩了可以退出。

     1 from random import randint
     2 x=randint(0,300)
     3 print x
     4 print 'please input a number between 0~300:'
     5 for count in range(0,5):
     6     digit=input()
     7     if digit==x:
     8         print 'Bingo!'
     9     elif digit>x:
    10         print 'Too large,please try again.'
    11     else:
    12         print 'Too small,please try again.'

     五、Self-defined Functions自定义函数【**】

    1 自定义函数的创建

    语法:def function_name([arguments]):

             "optional documentation string"

             function_suite

    函数调用方式:函数名(参数),没有参数小括号也不行省

    eg:输出1-100之间的素数【不懂】

    from math import sqrt
    def isprime(x):
        if x==1:
            return False
        k=int(sqrt(x))
        for j in range(2,k+1):
            if x%j==0:
                return False
            return True
    for i in range(2,101):
        if isprime(i):
            print i,

    out:

    runfile('C:/Users/john/Desktop/hello world.py', wdir='C:/Users/john/Desktop')
    5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99

    2 默认参数——函数的参数可以有一个默认值,如果提供默认值,在函数定义中,默认参数以赋值语句的形式提供;默认参数可以改变

    3 传递函数

    4 匿名函数

     【被跳过了】

     六、递归recursion:递归是最能表现计算思维的算法之一;循环---(生成裴波那契数列的方法)---递归;递归必须要有边界条件,即停止递归的条件n==0 or n==1;递归的代码更简洁,更符合自然逻辑,更容易了解。

    递归的执行:逐层递归调用;遇到边界条件停止递归;逐层返回调用至最初层;系统资源消耗比循环大。

    eg.0,1,1,2,3,5,8,···

    举例: 简化版汉诺塔游戏

    三个塔座ABC上各有一根针,通过B把64个盘子从A针移动到C针上,移动时必须遵守下列规则:(1)圆盘可以插在ABC塔座的针上(2)每次智能移动一个圆盘(3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上

    #filename:hanoi.py
    def hanoi(a,b,c,n):
        if n==1:
            print a,'->',c
        else:
            hanoi(a,c,b,n-1)
            print a,'->',c
            hanoi(b,a,c,n-1)
                            
    hanoi('a','b','c',4)
    ##课后作业:n个盘子需呀多少步骤31  15 7 3
    
    runfile('C:/Users/john/Desktop/hello world.py', wdir='C:/Users/john/Desktop')
    a -> b
    a -> c
    b -> c
    a -> b
    c -> a
    c -> b
    a -> b
    a -> c
    b -> c
    b -> a
    c -> a
    b -> c
    a -> b
    a -> c
    b -> c

    【答案是对的然而。。看不懂】

     七、变量作用域scope of variable: 全局变量,局部变量。内层屏蔽外层;可以用global语句进行全局变量定义;编程要求内部内聚性强,与其他模块耦合性较差,全局变量不符合这一要求,但若能给程序带来较大便利则可用。

  • 相关阅读:
    关于m3u8格式的视频文件ts转mp4下载和key加密问题
    Flask報錯 KeyError 'SQLALCHEMY_TRACK_MODIFICATIONS'.md
    ajax post data 获取不到数据,注意 content-type的设置 、post/get(转)
    Ajax 的一些概念 解析
    Apache2 服务配置 ubuntu16.04 + django1.11
    GitHub 远程仓库 de 第一次配置
    Django自带后台admin的使用配置
    每次启动虚拟机都要重置网卡设置,否则无法上网,很烦
    pip崩了, 解决 ModuleNotFoundError: No module named 'pip'.
    vue proxyTable
  • 原文地址:https://www.cnblogs.com/mobuzao/p/6195512.html
Copyright © 2020-2023  润新知