码迷,mamicode.com
首页 > 编程语言 > 详细

Python 3rd Day

时间:2016-05-27 23:46:56      阅读:383      评论:0      收藏:0      [点我收藏+]

标签:

函数:

  • 定义函数:  
  • def function (param1, param2...):
        body
        return XXX
  1. 函数名用小写

  2. 一旦遇到 return 函数立即退出
  3. 默认返回值为 null
  • 函数参数:
    • 普通参数
    • 默认参数,即调用函数 send_1 时可以不传入 b 参数,b 参数值默认为 ‘gary‘
    • # 默认参数
      def send_1(a, b=gary):
          print(a, b)
          return True
    • 指定参数,可以不按默认位置传参
    • # 指定参数
      def send(a, b):
          print(a, b)
          return True
      
      send(b=aaa, a=bbb)
    • 动态参数,*args and **kwargs, reference: http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/
      • The special syntax, *args and **kwargs in function definitions is used to pass a variable number of arguments to a function. 
      • The single asterisk form (*args) is used to pass a non-keyworded, variable-length argument list.
      • the double asterisk form (**kwargs) is used to pass a keyworded, variable-length argument list.
      • def f1(*args):
            print(args, type(args))
        
        f1([aaa,bbb])

        当传入 [‘aaa‘,‘bbb‘] 时,整个 list 成为元祖的一个元素:([‘aaa‘, ‘bbb‘],)

      • def f2(*args):
            print(args, type(args))
        
        f2(*[aaa,bbb])

        当传入 *[‘aaa‘,‘bbb‘] 时,循环 list 每个元素为元祖的元素:(‘aaa‘, ‘bbb‘),

      • def f3(**kwargs):
            print(kwargs, type(kwargs))

        dict = {‘aaa‘:1, ‘bbb‘:2}

        使用 (**kwargs) 可以传入字典参数,当以 f3(k=dict) 方式调用函数时,可以自动构建字典:

      • {k: {aaa: 1, bbb: 2}}

        使用 f3(**dict) 调用函数时,返回

      • {bbb: 2, aaa: 1}
    • 函数参数传递的是引用
  • 函数变量:
    • 全局变量,函数外定义,任何作用域都可读。
    • 局部变量,函数内部使用。
    • 局部变量优先级更高,程序首先读取。
    • 函数内部加 global 可以修改全局变量,即重新赋值。
    • 如果全局变量是个可修改类型(sting, list, dict),函数内部不加 global 也可以对该变量进行修改,但是重新赋值必须加 global,重新赋值是在内存中创建新的 value
    • 全局变量一定是大写

字符串格式化打印:

string.format():

# str format
list_1 = [gary, 31]
s1 = "im {0}, age {1}".format(*list_1)
print(s1)

s2 = "im {name}, age {age}".format(name=gary, age=31)
print(s2)

dict = {name:gary, age:31}
s3 = "im {name}, age {age}".format(**dict)
print(s3)

 

lambda: 构造简单函数

冒号连接参数和返回值

f2 = lambda a1: a1 + 100

等价于

def f1(a1):
    return a1 + 100

 

三目运算:

用于简单的逻辑表达

name = "gary" if 1 == 1 else "NB"

等价于

if 1 == 1:
    name = "gary"
else:
    name = "NB"

 

文件:

open 函数

  • open 打开文件句柄
  • r: 只读,w: 只写(先清空文件),x(python3): 文件存在则报错,不存在创建并赋 w 权限,防止覆盖存在文件,a: 追加
  • r+: 读写,w+: 读写但每次先清空文件,a+: 无论指针在哪都从最后追加
  • with open() as f: 完成操作自动关闭文件
  • 模式有 "b" 则以字节读写,否则以字符读写

 

Python 3rd Day

标签:

原文地址:http://www.cnblogs.com/garyang/p/5535759.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!