深入python 3 第一份python程序 (2)

2017-12-11 18:51:12来源:cnblogs.com作者:Sandy_li人点击

分享

1)函数声明:以关键字def开头,紧跟函数名称,然后是用括号括起来的参数。多个参数以逗号分割

  •       格式:

               def  函数名(size,a_kilobyte_is_1024_bytes=True):

                       语句体

  •     python要求至少一条语句体, pass

                def    test ()

                         pass

2)python 函数可以有返回值,但不指定返回值数据类型,如果没有return 返回明确的值,则默认返回空值 None

  •     格式 

              def  函数名():

                       s="您好"

                      return s

  •       如果有return 则返回其后的值,否则返回空值 None
  •       函数只能使用一条return语句,但可以返回多个值

              def compute (x,y):

                   s=x+y

                  s2=x-y

                  return [s,s2]

                 result =compute(10,20)

                 print(result)

                 print(result[0])

                 pirnt(result[1])

  •   最好使用原组返回多个个值,因为无法修改

               return  (s,s2)   # 小括号可以省略,系统会识别为元组数据

  •     return (s,)# 如果元祖只有一个元素,必须加逗号,否则会报错,因为会误认为返回具体值,而不是元组

3) 可选的和命名的参数(书中例子有点繁琐,使用简单的函数举例)

  •      python允许函数有默认值。如果函数被调用的时候没有指定参数,那么参数将使用默认值。

                   b=3

                   def  add(a,b):

                      print("a:"+str(a))

                      print("b:"+str(a))

                      pritn(a+b)

                  add(1,b)  #此时 a=1, b=3

                     结果:

                      a:1

                      b:3

                     总和:4

                  add(b,1) #此时 a=b , b=1

                      结果:

                      a:3

                      b:1

                      总和:4

  •      通过使用命名的参数还可以按照任何顺序指定参数

                   add(b=b,a=1) #此时使用命名参数指定顺序

                   结果:

                   a:1
                   b:3

                 总和:4

  •      命名参数是指定形参传递具体的值:

               1)命名参数功能是不用考虑形参传递的顺序

                       add(1,c=2,b=3)

                      add(b=1,a=2,c=3)

               2)一旦启用命名参数,则之后的参数均需使用名参数

                       add(1,b=2,c=3)  #形参传递b=2是命名参数,它的右侧传参必须使用 c=3

                            a:1
                            b:2
                            c:3
                            总和:6

                3)直接传参程序会按顺序传递,其他非命名参数则可以不按顺序指定,但非命名参数需要按原来定义参数的顺序传参

                         add(1,c=2,b=3)

                          a:1

                          b:3

                          c:2
                         总和:6

 4)其他

  •     docstring三引号(''' ....  ''')包含的文本多作为注释属性调取,可用 __doc__调取:

def test(a,b):

'''

测试docstring

'''
print (a+b)

test(1,2)

print(test.__doc__)

                结果:     

两数之和:3

测试docstring

  •     import 的搜索路径

                 1)尝试import一个模块时,python 会寻找几个地方,即sys.path里面所有的路径 (用列表存储所有路径)

                      >>> import sys

                      >>> sys.path

                            ['C:/Programs/Python/Python36', 'C://Programs//Python//Python36//Lib//idlelib',       
                            'C://Programs//Python//Python36//python36.zip', 'C://Programs//Python//Python36//DLLs',
                            'C://Programs//Python//Python36//lib', 'C://Programs//Python//Python36',
                            'C://Programs//Python//Python36//lib//site-packages']                

                  2)sys.path.insert(0,new_path)

                           sys.path.insert(0,'/home/mark/diveintopython3/examples')

                   3) sys内置模块使用起来和常规模块一样,但无法取得它的源代码,因为sys模块是用C语言编写的

                               add(1,c=2,b=3)

  • 对象:在python中所有的东西都是对象

             查看对象属性:

                   1)dir

                   2)__doc__

                   3)help

                         查看某个对象的详细文档用help, 如查看str类型的详细文档可以用help(str)。                         

                       如果文档的内容很多,help会列出全部文档的一部分,并在左下角提示“-- More --”,

                      按Enter键盘会显示更多的信息,要回到命令行交互模式可按Ctrl + C。

  • 代码缩进

          1)python中没有明确的开始和结束

          2)唯一的界定符就是一个冒号(:)和代码自身缩进

          3) python使用回车符分割语句

  • 异常

1)异常可以被处理

2)try...except

3)捕获导入错误

     try:

          import chardet

   except  ImportError:

         chardet=None

   #用if 判断

     if chardet:

        # do something 

     else:

       #continue anyway

  

    try:

       from lxml import etree

   except ImportError:

      import xml.etree.ElementTree as etree

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台