Python 3rd Day

函数:

  • 定义函数:  
  • 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" 则以字节读写,否则以字符读写
时间: 2024-12-09 13:45:14

Python 3rd Day的相关文章

Python资料汇总

Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用. Python语言有非常简捷.清晰的语法特点,适合完成各种高层任务,可以在所有操作系统中运行.目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多. Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣

python嵌入到C++的一些理解

1.简介(比较各自的特点,提出问题) C++ 与 python都是用的比较广泛的语言,各有各的优点:C++性能优异,python简单方便库丰富,如果能够结合两者使用就很好. python作为一种脚本语言,解释器会将其翻译成可执行代码.python强大呀,提供了C接口供C/C++调用,意思就是C/C++就能嵌入python代码,实际中就能够发挥两种语言的优点了. 2.如何实现 在实现上,Python提供了C接口供C/C++使用,以C语言lib库的形式提供include和lib:可以在python的

史上最全的Python电子书教程资源下载(转)

网上搜集的,点击即可下载,希望提供给有需要的人^_^   O'Reilly.Python.And.XML.pdf 2.02 MB   OReilly - Programming Python 2nd.pdf 6.98 MB   Orielly.Learning.Python.pdf 3.17 MB   Dive into Python-中文版(python研究,很好的书).chm 573.92 KB   Foundations of Python Network Programming, Sec

Python学习资料下载地址(转)

[转]Python学习资料和教程pdf 开发工具: Python语言集成开发环境 Wingware WingIDE Professional v3.2.12 Python语言集成开发环境 Wingware WingIDE Professional v3.2.9.1 高效Python/Django开发工具:JetBrains PyCharm v1.1.1 (附注册机) Python和Django开发工具:JetBrains PyCharm v1.1 学习资料: Python 3程序开发指南 (第二

Shallow copy and Deep copy

一.来自wikipidia的解释: Shallow copy One method of copying an object is the shallow copy. In that case a new object B is created, and the fields values of A are copied over to B. This is also known as a field-by-field copy,field-for-field copy, or field co

分享:Foundations of Python Network Programming(3rd) 英文版pdf 下载

Foundations of Python Network Programming Third Edition 下载http://www.amazon.com/Foundations-Python-Network-Programming-Brandon/dp/1430258543这本书是2014年底出版的,基于最新的 python3.4 版本.配书源码链接https://github.com/brandon-rhodes/fopnp 目录 Chapter 1: Introduction to C

笨办法学Python(十三)

习题 13: 参数.解包.变量 在这节练习中,我们将讲到另外一种将变量传递给脚本的方法(所谓脚本,就是你写的 .py 程序).你已经知道,如果要运行 ex13.py,只要在命令行运行 python ex13.py 就可以了.这句命令中的 ex13.py 部分就是所谓的"参数(argument)",我们现在要做的就是写一个可以接受参数的脚本. 将下面的程序写下来,后面你将看到详细解释. 1 from sys import argv 2 3 script, first, second, t

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

推荐Python程序员进阶阅读的书籍(2015版)

列一下自己过去一年阅读的Python相关书籍,评论是在本人阅读完书籍并完成书中所有测试用例的基础上编写的: <Python Cookbook 3rd>5星 ,绝对值得阅读!直接看英文版吧,中文翻译的如何不太清楚.对于高手就当是复习功课了,总有一些地方记得不是很清楚. <Cython - A Guide for Python Programmers> 5星 by Kurt W. Smith, O'Reilly 2015 如果你想封装一个C的库,或者别人封装的C库在你的平台下不能够使用