zoukankan      html  css  js  c++  java
  • python快速学习2

    python流程控制

    if语句

    >>> if age < 12:
    ...     print "儿童"
    ... elif age < 30:
    ...     print "青年"
    ... elif age < 50:
    ...     print "壮年"
    ... else:
    ...     print "老年"
    ...
    

    for in 语句

    >>> name = ['song', 'shou', 'li']
    >>> for x in name:
    ...     print x, len(x)
    ...
    song 4
    shou 4
    li 2
    

    循环控制语句
    break continue 以及for与else的搭配
    用法与C语言类似

    pass

    pass语句什么也不做

    range()函数

    range(左边界,右边界,步长)

    >>> range(5)
    [0, 1, 2, 3, 4]
    >>> range(0,5,1)
    [0, 1, 2, 3, 4]
    >>> range(-10, 20,100)
    [-10]//后面连个参数不要搞混了
    >>> range(-10, 100, 20)
    [-10, 10, 30, 50, 70, 90]
    >>>
    

    常用于索引列表

    >>> for i in range(len(name)):
    ...     print i ,name[i]
    ...
    0 song
    1 shou
    2 li
    >>>
    

    函数的定义

    //例子
    >>> def fib(n):
    ...     a,b = 0,1
    ...     while b<n:
    ...             print b
    ...             a,b = b,a+b
    ...
    >>> fib(100)
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    89
    

    函数调用会为局部变量生成一个新的符号表
    全局变量不能再函数中直接赋值(除非是global语句命令的变量)

    函数也是对象
    在没有return语句下默认的返回值是NONE

    >>> f = fib
    >>> f(100)
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    89
    >>> print fib(100)
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    89
    None//函数的返回值是NONE
    

    新的例子,返回斐波那契列表

    >>> def fib(n):
    ...     ret = []
    ...     a,b = 0,1
    ...     while b<n:
    ...             ret.append(b)//也可以换成ret += [b],不过用append效率更高
    ...             a,b = b,a+b
    ...     return ret
    ...
    >>> fib(100)
    [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
    >>>
    

    python函数的深入使用

    1.默认参数值可以是多个,也可以是变量(会在作为默认参数的时候被解析为常量看待)

    >>> def name_List(name1, name2='WuPing',name3='LengXianjin'):
    ...     return [name1,name2,name3]
    ...
    >>> name_List('Song')
    ['Song', 'WuPing', 'LengXianjin']
    >>> name_List('HuLuping','SongShouli','XinMingquan')
    ['HuLuping', 'SongShouli', 'XinMingquan']
    >>>
    
    >>> Name = 'songshouli'
    >>> def name_print(name = Name)://这里面的name = Name 相当于name = 'songshouli'
    ...     return name
    ...
    >>> Name = 'WuPing'
    >>> name_print
    <function name_print at 0x0295C7B0>
    >>> name_print()   //虽然Name变量的值变了,但是函数的返回值依旧没变
    'songshouli'
    >>>
    

    默认值只会被赋值一次
    所以默认值如果是可变对象的时候,情况就会改变

    >>> def name_print(name, List=[]):
    ...     List.append(name)
    ...     return List
    ...
    >>> name_print('song')
    ['song']
    >>> name_print('Wu')
    ['song', 'Wu']
    >>> name_print('Leng')
    ['song', 'Wu', 'Leng']
    >>>
    

    2.关键字参数
    使用与字典类型的值

    >>> def List_name_age(**kk):
    ...     for i in kk:
    ...             print i,":",kk[i]
    ...
    >>> List_name_age(song=23,Wu=23,Leng=31)
    Wu : 23
    Leng : 31
    song : 23
    >>>
    

    命名关键字参数
    命名关键字参数有点像默认参数,其实是限制参数个数的关键字参数
    区别就是命名关键字参数可以不按照顺序来,但是必须按照参数的顺序排列
    必选参数---默认参数---可变参数---命名关键字参数---关键字参数

    由于命名关键字参数和默认参数形式一样,所以,只有在调用的时候才能确定

    >>> def Name(name, song=23,wu=24,leng=31):
    ...     print name,song,wu,leng
    ...
    >>> Name(34,wu=12,leng=32,song=12)
    34 12 12 32
    >>> Name(34)
    34 23 24 31
    >>> Name(name=12,song=24,leng=14)//此时wu是关键字参数
    12 24 24 14
    >>> Name(34,12,leng=44,wu=11)//此时wu相当于默认参数
    34 12 11 44
    >>> Name()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: Name() takes at least 1 argument (0 given)
    >>>
    

    3.多个参数(可变参数/元组参数)
    使用*的方式

    >>> def List_name(*name):
    ...     print name
    ...
    >>> List_name('song','wu','leng')
    ('song', 'wu', 'leng')
    

    实在不理解为什么参数搞这么多种类型,很乱啊

    4.匿名函数
    lanbda a,b : a+b返回一个函数对象

    >>> f = lambda x:x+3
    >>> f(2)
    5
    >>> def time(diff_time):
    ...     return lambda time:time-diff_time
    ...
    >>> f=time(20)
    >>> f(40)
    20
    >>>
    

    5.文档字符串
    用于对象的介绍,默认放在__doc__下

    >>> def time_get(diff_time):
    ...     '''This is a function to modify the minute
    ...     because the real world environment,the time is later
    ...     so,I sub the time with 20
    ...     '''
    ...
    >>> print time_get.__doc__
    This is a function to modify the minute
            because the real world environment,the time is later
        so,I sub the time with 20
    
    >>>
    

    编码风格(明天看看)

    • 使用 4 空格缩进,而非 TAB。

    在小缩进(可以嵌套更深)和大缩进(更易读)之间,4空格是一个很好的折中。TAB 引发了一些混乱,最好弃用。

    • 折行以确保其不会超过 79 个字符。

    这有助于小显示器用户阅读,也可以让大显示器能并排显示几个代码文件。

    • 使用空行分隔函数和类,以及函数中的大块代码。
    • 可能的话,注释独占一行
    • 使用文档字符串
    • 把空格放到操作符两边,以及逗号后面,但是括号里侧不加空格: a = f(1, 2) + g(3, 4) 。
    • 统一函数和类命名。

    推荐类名用 驼峰命名, 函数和方法名用 小写_和_下划线。总是用 self 作为方法的第一个参数(关于类和方法的知识详见 初识类 )。

    • 不要使用花哨的编码,如果你的代码的目的是要在国际化 环境。 Python 的默认情况下,UTF-8,甚至普通的 ASCII 总是工作的最好。
    • 同样,也不要使用非 ASCII 字符的标识符,除非是不同语种的会阅读或者维护代码。
  • 相关阅读:
    OAuth2在微服务架构中的应用
    使用SpringSecurity体验OAuth2 (入门2)
    SpringSecurity的配置分析
    SpringSecurity在Springboot下使用的初步体验
    Spring框架中的org.springframework.context.annotation.Import注解类
    使用SpringSecurity体验OAUTH2之一 (入门1)
    5. SpringBoot —— Actuator简介
    无题
    C# 委托的本质
    json 字符串 反序列化
  • 原文地址:https://www.cnblogs.com/sslblog/p/6930400.html
Copyright © 2011-2022 走看看