一.基础

#导入模块
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. 0-pyqt介绍

    1.QT 的特点 2.QT的历史 3.搭建pyQT的开发环境 python  pyqt包  pycharm 4.搭建pyQT第一个应用 必须使用两个类:QApplication和QWidget.都在P ...

  2. liunx下安装mysql(8.0.27)

    一.软件下载: 1.通过官网下载: https://dev.mysql.com/downloads/repo/yum/ 本文使用的系统为centos7,基于RedHat7的版本 2.下载完成后文件 m ...

  3. .Net Core中使用ElasticSearch(二)

    .Net的ElasticSearch 有两个版本,Elasticsearch.Net(低级) 和 NEST(高级),推荐使用 NEST,低级版本的更灵活,水太深 把握不住.有个需要注意,使用的版本号必 ...

  4. BehaviorTree.CPP行为树BT的选择节点(四)

    Fallback 该节点家族在其他框架中被称为"选择器Selector"或"优先级Priority". 他们的目的是尝试不同的策略,直到找到可行的策略. 它们具 ...

  5. 洛谷 P5400 - [CTS2019]随机立方体(组合数学+二项式反演)

    洛谷题面传送门 二项式反演好题. 首先看到"恰好 \(k\) 个极大值点",我们可以套路地想到二项式反演,具体来说我们记 \(f_i\) 为钦定 \(i\) 个点为极大值点的方案数 ...

  6. 洛谷 P6860 - 象棋与马(找性质+杜教筛)

    题面传送门 首先我们来探究一下什么样的 \((a,b)\) 满足 \(p(a,b)=1\).不难发现只要点 \((1,0)\) 能够到达,那么网格上所有点都能到达,因为由于 \((1,0)\) 能够到 ...

  7. [R] read.table的check.names参数防止读入数据时列名前自动加上"X."

    最近用之前写的R脚本重新跑数据时,出现了报错.经检查,才发现是数据的列名读入R时发生了变化,列名前自动加上了X.符号. read.table系列函数有一个check.names参数,默认为 TRUE ...

  8. 【模板】二分图最大匹配(匈牙利算法)/洛谷P3386

    题目链接 https://www.luogu.com.cn/problem/P3386 题目大意 给定一个二分图,其左部点的个数为 \(n\),右部点的个数为 \(m\),边数为 \(e\),求其最大 ...

  9. 学习java 7.13

    学习内容: 一个汉字存储:如果是GBK编码,占用2个字节:如果是UTF-8编码,占用3个字节 汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数 字符流=字节流+编码表 采用何种规则编码,就要 ...

  10. abundant

    In ecology [生态学], local abundance is the relative representation of a species in a particular ecosys ...