一.基础

#导入模块
import xxx #调用 xxx.dd()
from xxx import xx  as dd #导入某个函数,as给函数加别名,调用xx() #包
mkdir sources
touch sources/xx.py
touch sources/init.py #可以是空的
from sources import xx
xx.get_name('cc') from collections import defaultdict
periodic_table = defaultdict(int)
periodic_table['Lead'] #默认给所有键赋值0 def no_idea():
    return 'Huh?'
bestiary = defaultdict(no_idea) #传递的是函数 bestiary = defaultdict(lambda: 'Huh?') #lambda也可以默认值 #标准函数
def hello():
    print("dasd") user_name(a='xx',b='dd') #位置参数和关键字参数、
def user_name(a,b='xx') #默认值
    global a #将a转换为全局变量
    a = 'xx' #赋值
return xx #返回值,可以是变量等 name = user_name('xx','dd') #字符串拼接
def user_name(*a) #a将为一个空元组,可以存储任意多个实参
def user_name(b,c,*a) #填充前2个,再全部填充到后面
def user_name(b,c,**a) #a为字典,可以age='13',name='23'方式传进字典
help(user_name) #打印文档字符串解释
print(echo.__doc__) #得到文档字符串 #返回函数的名称和文档
fuction.__name__
fuction.__doc__ #lambda,冒号以后为函数部分,stairs是第一个参数
edit_story(stairs, lambda word: word.capitalize() + '!') #命名空间
#global
print(locals()) #返回一个局部命名空间内容的字典
print(globals()) #返回全局的
print(id(name)) #打印唯一id值 #表达式
print(getAnswer(random.randint(1, 9))) #函数内修改全局变量
def xx():
    global cc
    cc = 'sdas' #闭包是一个可以由另一个函数动态生成的函数,并且可以改变和存储函数外创建的变量的值。
def knights2(saying):
    def inner2():
    return "We are the knights who say: '%s'" % saying
    return inner2 def rlt(v):
   def product(num):
        return num ** v
   return product
square = rlt(2)
cube = rlt(3)
print(square(2), cube(2))  # 4, 8

二.特殊函数

#生成器 不会记录在内存里,而是用快捷方式记录,并且记录上一次的位置,返回下一个值
sum(range(1,101))  def my_range(first=0, last=10, step=1):
    number = first
    while number < last:
        yield number
        number += step
ranger = my_range(1,5)
for x in ranger: #可以对它进行迭代 #装饰器 不改变源码的情况下修改已存在函数。把一个函数作为输入并返回另一个函数。
def document_it(func):
    def new_function(*args, **kwargs):
        print('Running function:', func.__name__)
        print('Positional arguments:', args)
        print('Keyword arguments:', kwargs)
        result = func(*args, **kwargs)
        print('Result:', result)
        return result
    return new_function def add_ints(a, b):
    return a + b cooler_add_ints = document_it(add_ints) #人工赋值
cooler_add_ints(3, 5) #装饰器可以直接写在要被装饰的函数前面,可以有多个,按顺序执行
@document_it
def add_ints(a, b):
    return a + b
add_ints(3, 5) #命名空间
locals() 返回一个局部命名空间内容的字典 #只能函数内打印
globals() 返回一个全局命名空间内容的字典 #特殊
function.__name__ #函数名称
function.__doc__  #函数文档
__main__ #主程序

Python模块和函数的更多相关文章

  1. Python模块与函数

    python的程序由包(package).模块(module)和函数组成.模块是处理某一类问题的集合,模块由函数和类组成,包是由一系列模块组成的集合.包必须至少包含一个__init__.py文件,该文 ...

  2. 嵌入Python | 调用Python模块中有参数的函数

    开发环境Python版本:3.6.4 (32-bit)编辑器:Visual Studio CodeC++环境:Visual Studio 2013 需求说明前一篇<在C++中嵌入Python|调 ...

  3. 嵌入Python系列 | 调用Python模块中无参数函数

    开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

  4. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

  5. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  6. python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性

    python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性 inspect import inspect def fun(): pass inspect.ism ...

  7. 嵌入Python | 调用Python模块中无参数的函数

    开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

  8. python学习笔记十——模块与函数

    第五章 模块与函数 5.1 python程序的结构 函数+类->模块              模块+模块->包                 函数+类+模块+包=Python pyth ...

  9. python协程函数、递归、匿名函数与内置函数使用、模块与包

    目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...

随机推荐

  1. 【JAVA】笔记(8)--- java.lang.String 精讲

    String 特性: 1.String 表示字符串类型,属于引用数据类型,所以其储存的是地址: 2.java 中规定,双引号括起来的字符串是不可变的,也就说" name "永远也只 ...

  2. [hdu7062]A Simple Problem

    称序列$\{a_{1},a_{2},...,a_{n}\}$​的答案为$\min_{0\le i\le n-k}(\max_{i<j\le i+k}a_{j})$​​(特别的,若$n<k$ ...

  3. [atARC103D]Robot Arms

    合法的必要条件是每个点两维坐标和奇偶性相同,同时这也是充分条件 令$d_{i}=\{2^{0},2^{1},...,2^{m-1}\}$,归纳其可以走到任意满足$|x|+|y|<2^{m}$的$ ...

  4. 如何利用 JuiceFS 的性能工具做文件系统分析和调优

    JuiceFS 是一款面向云原生环境设计的高性能 POSIX 文件系统,在 AGPL v3.0 开源协议下发布.作为一个云上的分布式文件系统,任何存入 JuiceFS 的数据都会按照一定规则拆分成数据 ...

  5. 前端:WebP自适应实践

    WebP介绍 WebP 是 Google 推出的一种同时提供了有损和无损两种压缩方式的图片格式,优势体现在其优秀的图像压缩算法,能够带来更小的图片体积,同时拥有更高的的图像质量.根据官方说明,WebP ...

  6. Python 3 快速入门 1 —— 数据类型与变量

    本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...

  7. [TopCoder2014Final]FrozenStandings 解法探究

    https://vjudge.net/problem/TopCoder-13460 简要题意:给出 \(n\) 段从 \(1\) 到 \(n\) 编号的等长区间,保证区间的端点互不相同.区间可以选取其 ...

  8. 洛谷 P3644 [APIO2015]八邻旁之桥(对顶堆维护中位数)

    题面传送门 题意: 一条河将大地分为 \(A,B\) 两个部分.两部分均可视为一根数轴. 有 \(n\) 名工人,第 \(i\) 名的家在 \(x_i\) 区域的 \(a_i\) 位置,公司在 \(y ...

  9. 洛谷 P6499 - [COCI2016-2017#2] Burza(状压 dp)

    题面传送门 一道挺有意思的思维题(?) 首先我们假设根节点深度为 \(0\),那么 Daniel 的目标显然就是堵住一些节点使得 Stjepan 不能移动到深度为 \(k\) 的节点,Stjepan ...

  10. 【Workflows】 WGS/WES Mapping to Variant Calls

    WGS/WES Mapping to Variant Calls - Version 1.0 htslib官网上给的一个WGS/WES的流程.关于htslib.samtools和bcftools之间的 ...