zoukankan      html  css  js  c++  java
  • python学习笔记(二) 函数、模块、数据结构

    #! 本次学习 函数、模块、数据结构

     

    函数

    1.定义

    通过def关键字定义一个函数,如下:

    def Show(name):

             print (name),

    2.参数

    python中的参数应用是很灵活的,可以指定默认的值,我们都知道在其他语言如c c#指定默认值时我们必须从右向左方向指定(因为在执行的时候我们只能从左开始赋值),现在python解除了这个问题,它在调用时可以具体的指定某个参数的值,而不用担心参数的顺序, 如下:

    def t(a, b=1, c=2):

        print('a:',a,'b:',b,'c:',c)

    t(a=1, c=5)

    3.return语句

    除非你提供你自己的return语句,每个函数都在结尾暗含有return None语句

    Pass语句在python中代表一个空的语句块

     

     

    模块

    通过import语句导入模块,当import mymodule时,它会在sys.path下查找mymodule.py模块,找到模块后主块中的语句将会执行。#小注:sys是与解释器和它的环境有关的模块。

     

    from … import 语句

    类似于命名空间的using语句,也不大相同,因为我们在python中直接引入了模块下的变量,省去模块的名称,如下:

    from sys import argv

    print (argv)

     

    模块的__name__

    因为当一个模块被第一次输入的时候,这个模块的主块将被运行,因此我们可以通过如下判断是否为用户单独运行,如下:

    if __name__ == '__main__':
        print 'This program is being run by itself'
    else:
        print 'I am being imported from another module'

     

    可以使用内建的dir函数来列出模块定义的标识符,函数、变量

     

     

    数据结构

    列表、元组、字典

    l  列表
    定义格式: booklist = [‘JavaScript高级程序设计’, ‘python简明教程’, ‘asp.net mvc3.0学习指南’];
    方法:如len获取列表长度,append添加一个元素到列表,sort对列表排序等,可以用help(list)查看详细方法。

    l  元组
    定义格式:fruit = (‘banana’, ‘orange’)
    与列表区别:只读的,不能修改
    应用:我们可以这样减少字符串的拼接操作,print '%s is %d years old' % (name, age)

    l  字典
    定义格式: dict = {key1:value, key2:value2}
    遍历:for name, age in dic.items():
    print name, age

    l  序列
    索引与切片
    可以对列表和字符串索引取一个值或者切片取一个片段,代码如下:
    colors = [‘red’, ‘green’, ‘yellow’, ‘blue’]
    colors[0] #red
    colors[1:3] #green, yellow,
    指定的索引可以为负数,即从后向前计算

    l  对象的参考
    对象的参考说的很像其他语言中引用类型的指针,当把一个对象变量赋值给另一个对象变量时,其实它们指向了同一块内存,所以值是相同的。#注:任何切片操作都会制作一个对象的副本,这样对象变量重新指向了另一个快内存哦

    l  字符串对象
    跟其他语言一样,字符串对象中也有很多的操作方法,详细可见help(str)

  • 相关阅读:
    Mac 10.13安装telnet
    如何用万用表判断一个12V蓄电池是否没电
    CentOS 7开机不执行/etc/rc.local的解决方法
    华为S5300系列交换机限制特定IP可以登录Web
    Java Bean Validation 最佳实践
    一文说清文本编码那些事
    定义物料组(Material Group)
    kibana 搜索语法
    微服务相关
    Solve Error: nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in libcpmt.lib(newaop.obj)
  • 原文地址:https://www.cnblogs.com/lyroge/p/2125322.html
Copyright © 2011-2022 走看看