Python笔记——函数的用法

一文搞懂深度学习:最全神经网络介绍 本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。 阅读详情

1、判断函数是否可用:callable(f)

>>> callable(f)
False


2、改变函数参数(注意是不可变的数据结构:如 字符串、数字、元组),并不会改变外部变量值,这时函数参数只在函数内有效

def y(i):
    i=1      #调用该函数时,创建一个新的命名空间,重新创建新的一个局部变量

    return i  # return 可以没有

>>> i=10
>>> y(i)
1
>>> i
10
>>>

3、改变函数参数(注意是可变的数据结构,如:列表),可以改变外部变量的值,例如:

def y(i):
    i[0]='this is test'      #与不可变量相比,由于是可变量,指向与外部变量相同的存储空间.  此时在函数的命名空间中并没有创建变量i

>>> j=[0,1,2,3,4]        #如果不想改变可变参数的值可以,创建一个副本: i0=i[:]
>>> y(j)
>>> j
['this is test', 1, 2, 3, 4]


4、函数局部变量与全局变量的用法:调用函数时,将创建新的一个命名空间,特点:一、函数内创建的新的变量只在这个这个命名空间有效;二、可以直接调用全局变量,但如果函数内有创建相同的变量,将屏蔽全局变量,此时要想调用的话用globals()['j']这个函数

def y(i):
    i[0]='this is test'
    j="this is the local varity"
    print j
    print globals()['j']

>>> i=[0]
>>> j="global varity"
>>> y(i)
this is the local varity
global varity


5、递归:先写出递归的数学递推表达式,然后写成python语法程序:

def search(seq,num,lower=0,upper=None):
    if upper==None:
        upper=len(seq)-1
    if seq[lower]==num:
        print 'the num locate %d index in seq' % lower
    elif seq[upper]==num:
        print 'the num locate %d index in seq' % upper
    elif seq[lower]==seq[upper]:
        print 'the num is not in seq'
    elif seq[(lower+upper)/2]<num:
        return search(seq,num,(lower+upper)/2+1,upper)
    elif seq[(lower+upper)/2]>num:
        return search(seq,num,lower,(lower+upper)/2-1)
    elif seq[(lower+upper)/2]==num:
        print 'the num locate %d index in seq' % ((lower+upper)/2)

>>> x
[0, 1, 3, 5, 7, 9, 10, 10, 10, 11, 15]
>>> search(x,9)
the num locate 5 index in seq
>>> search(x,10)
the num locate 6 index in seq
>>> search(x,11)
the num locate 9 index in seq
>>> search(x,15)
the num locate 10 index in seq


6、变量命名空间实例

以下是一个示例,演示了如何引用不同作用域和命名空间,以及 global 和 nonlocal 如何影响变量绑定: 
def scope_test():     def do_local(): 
        spam = "local spam"     def do_nonlocal():         nonlocal spam 
        spam = "nonlocal spam"     def do_global():         global spam 
        spam = "global spam"  
    spam = "test spam"     do_local() 
    print("After local assignment:", spam)     do_nonlocal() 
    print("After nonlocal assignment:", spam)     do_global() 
    print("After global assignment:", spam)  
scope_test() 
print("In global scope:", spam) 
以上示例代码的输出为: 
After local assignment: test spam 
After nonlocal assignment: nonlocal spam 

After global assignment: nonlocal spam 

In global scope: global spam 
注意: local 赋值语句是无法改变 scope_test 的 spam 绑定。 nonlocal 赋值语句改变了 scope_test 的spam 绑定,并且 global 赋值语句从模块级改变了 spam 绑定。 你也可以看到在 global 赋值语句之前对 spam 是没有预先绑定的。




STM32智能头盔DIY全攻略:从心率监测到跌倒报警的完整实现 本文提供了基于STM32的智能头盔完整DIY实现方案,涵盖从心率监测到跌倒报警的核心功能。详细解析了系统设计、硬件搭建、软件算法及系统联调,重点介绍了STM32主控、MAX30102心率传感器和MPU6050姿态传感器的应用,并分享了跌倒检测算法与功耗优化等实战经验,为嵌入式开发与物联网创新项目提供全面指导。 阅读详情

相关推荐

【自动驾驶控制算法】 第一讲 绪论

声明【自动驾驶控制算法】系列是博主对所分享教学内容的学习笔记,并且该系列每篇博客都会将博主听课后总结的纸质版笔记附于文末,供大家参考。是一位研究汽车领域,无人驾驶方向及其相关方向的大佬,也算是博主在无人驾驶方向的启蒙老师。所以研究相关领域的朋友推荐去听一听他的视频讲解。...

iamtbon_1的博客 1797

用python刷PAT【小结1】

2018-12-26、27 代码总结 https://blog.youkuaiyun.com/harry_haiwei/article/details/49616409/ http://www.runoob.com/python3/python3-ascii-character.html https://www.aliyun.com/jiaocheng/502795.html https://blog.csd...

sukeee的博客 1955

BPMN-JS :修改节点“Change Type”事件类型

修改路径:node_modules\bpmn-js\lib\features\replace\ReplaceOptions.js。

TaylorY的博客 679

Python scope test

java里不可以方法里嵌套方法,但是python可以 global - myprogram.py       spam - “global spam” function - scope_test()       spam = “test spam”   &nb...

qq_28091171的博客 505

告别手动画图!用SUMO的netedit快速搭建高速公路交织区路网(附完整XML文件)

本文详细介绍了如何使用SUMO的netedit工具高效构建高速公路交织区路网,避免手动绘图的低效与错误。通过实战案例和XML文件示例,帮助交通工程专业学生快速掌握复杂道路结构建模技巧,特别解析了spreadType参数设置和速度单位换算等关键操作。

weixin_29085865的博客 261

单相PWM整流器四象限运行原理

简述单相PWM整流器四象限运行原理。

m0_75208156的博客 8304

python 文件操作的模块_Python之文件操作修改模块

1.使用OS模块进行path路径操作操作的语法为os.path.方法名();import os # 首先导入os模块*abspath()方法:获取当前文件的全路径,所带参数为file;file_path = os.path.abspath(__file__) # 获取当前文件的全路径print(file_path)dirname()方法: 获取当前文件的目录全路径,所带参数为文件全路径;dir_p...

weixin_34870633的博客 258

RPMsg:协议简介

两台计算机可以通过TCP/IP进行通信,那么同一颗芯片上的两个核心怎么通信呢?

SunnyZhou-1024的博客 1万+

Python命名空间与作用域个思

最近在夯实python基础,又把自己没弄懂的翻出来再攻克一下——python多态,顺藤摸瓜,就到了类的属性查找,其中涉及python名称和对象,再进而到了作用域和命名空间,最然用python也有几年了,也自诩(简历上)python基础扎实者,但自知对这个在python文档“入门教程”一节的内容,还没有完完全全的掌握,再读一遍又有新知,感觉了解的清楚一些了,在此记录一小节。 最近也是在读《如何阅读一本书》,用上了书中的方法,作用域与命名空间一节虽然不长,但自我感觉后面还是比较难度的,像这种没有领会句子或词的意

usiel的博客 287

Matlab生成dsp程序——环境搭建(c2000系列[F28335、F2837x]都适用)

一、环境配置 (28377D的操作是一模一样就是硬件设置的时候需要选择28377d进行相应的设置) 1)matlab与ccs联合编译需要安装对应的matlab版本和ccs版本,且只有2016a以上的matlab支持c2000系列。具体对应关系参照: http://software-dl.ti.com/ccs/esd/documents/ccs_matlab.html 2)matlab版本确定之后,还需要安装有关于ccs的相关软件: I、TI Code Composer Studio xxxx(对应

qq_42151264的博客 2万+

公文流转系统

公文录入区 | QLineEdit(文号/标题)、QComboBox(公文类型/紧急程度)、QTextEdit(正文)、QListWidget(附件列表)、QPushButton(上传附件/保存草稿/提交审批) |// 按时间范围获取。QStringList userNames = {"张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"};

寒寒豆豆软件公司的博客 551

python函数作用域_python函数之作用域(python3.5)

1 基本概念1.1 命名空间 (namespace)命名空间是变量名到对象的映射(name -> obj)。目前大多数的命名空间以类似于python字典的形式实现,实现形式在未来可能发生变化。命名空间举例:内置变量(内置函数abs, 内置的异常等),模块中的全局变量,函数调用时的局部变量。在某种意义上讲,对象的属性也形成一个命名空间。重要的是,不同的命名空间中的变量没有任何关联,两个不同的命名空间...

weixin_39835607的博客 206

STM32实战开发(65):STM32摄像头图像采集开发教程

我们将会详细介绍如何使用STM32进行摄像头控制、图像数据采集以及如何将采集到的图像数据传输到其他设备进行处理。通过这篇博客,您将能够掌握STM32与摄像头模块的图像采集技术,应用于各种图像处理场景。为了确保STM32能够正确接收图像数据,我们需要配置STM32的GPIO引脚,并通过外部中断捕获这些信号。为了实现更高效的图像采集,可以通过DMA进行数据传输,将图像数据直接从GPIO引脚存储到内存中。通过DMA传输,我们可以将采集到的图像数据直接存储在内存中的一个缓冲区,然后进行后续的图像处理。

2201_76125393的博客 2540

python中show函数的用法_python学习笔记之——函数模块

1、函数参数说明:def login(name,info,passwd = '123456')函数参数可以有默认值,调用函数时:1、如果只传二个参数,则有默认值的一定要放到最后;def login(name,passwd = '123456',info='welcome to you')2、如果传二个参数,一定要指明形参;login(user)login(user,passwd)login(use...

weixin_39766071的博客 7145

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python学习笔记:内置函数zip用法举例

值得考虑的是,传给 zip() 的可迭代对象可能长度不同;极端例子是只有一个可迭代对象参数,zip() 会返回一个一元组的迭代器。zip() 是延迟执行的:直至迭代时才会对元素进行处理,比如 for 循环或放入 list 中。zip() 返回元组的迭代器,其中第 i 个元组包含的是每个参数迭代器的第 i 个元素。这类似于 “矩阵转置”。[(1, 4, 7), (2, 5, 8), (3, 6, 9)] #列表嵌套元组。[[1, 4, 7], [2, 5, 8], [3, 6, 9]] #列表嵌套。

weixin_44073289的博客 786

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Python笔记】Plot、Scatter、Subplot函数用法

Plot、Scatter、Subplot函数用法

qq_25888559的博客 4607

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python open函数的用法笔记

file = open('apple.txt', 'w') open函数第一个参数是文件名称(包括路径),第二个参数是操作模式。   对于第二个参数有如下的选择:   w:向文件写入内容   a:追加写入,就是不修改文件原来的内容,在文件后面写入   r+:既可以读文件,又可以向文件写入内容   w+:同上   a+:同上   rb:读取二进制文件,例如图片文件 ...

WWW54111392的博客 304

【Python 笔记】 join函数用法

在Python中,函数join()用来连接字符串。 >>>li = ['my','name','is','bob'] >>>' '.join(li) 'my name is bob' >>>'_'.join(li) 'my_name_is_bob' >>> s = ['my','name','is','bob'] >>> ' '.join(s) 'my name is bo

Junbin_H的博客 1584

python笔记-find()函数的用法

python笔记-find()函数的用法

weixin_44494624的博客 4866

python open函数用法_python学习笔记之open函数的用法

先上一段代码>>> f = open('1.txt','r');>>> f.readline() #读取数据>>> f.close() #关闭输出结果1234python 的读写模式有很多种1.r 以只读的方式打开开始的事例是用 r 也就是只读的方式打开2.w 以只写的方式打开>>> f = open('1.txt','w')>>> str = 'abcd'>>> f.write(str)>>> ...

weixin_39724004的博客 1112

Python的一些函数用法(笔记)

size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出 m * n * k 个样本,缺省时输出1个值。功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.而iloc是根据行号来索引,行号从0开始,逐次加1,比如table.iloc[0]就是索引第一行。此外,当ioc后面有两个值时,则第一个值代表行号,第二个值代表列号。默认情况下,axis=0,查找每列最大的一个,返回每列的最大值。

qq_42239005的博客 436

python open函数参数_python open函数的用法笔记

file = open('apple.txt', 'w')open函数第一个参数是文件名称(包括路径),第二个参数是操作模式。对于第二个参数有如下的选择:w:向文件写入内容a:追加写入,就是不修改文件原来的内容,在文件后面写入r+:既可以读文件,又可以向文件写入内容w+:同上a+:同上rb:读取二进制文件,例如图片文件wb:写入二进制数据,例如保存图片的时候会用到ab:追加二进制数据rb+:二进制...

weixin_39689377的博客 1017

【Python学习笔记—01】Python format函数用法详解

format函数可以接受不限个数的参数,位置可以不按顺序,是通过{}和:来代替%。 format基本用法有很多种,下边分享几种常用语法: 基本用法 print('Hello {0} i am {1}'.format('world','python')) # Hello world i am python print('Hello {} i am {}'.format('world','python')) # Hello world i am python print('{0}, {1}, {2}

Baoziriji的博客 403

python开发笔记之zip()函数用法详解

今天分享一篇关于python下的zip()函数用法。 zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素按顺序组合成一个tuple,每个tuple中包含的是原有序列中对应序号位置的元素,然后返回由这些tuples组成的list。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。在所有参数长度相同的情况下,zip(...

321

python中匿名函数的用法,python笔记--匿名函数和函数式编程

一、匿名函数(lambda):有些地方需要用到一些简单的函数,而且用到的次数不太多,这个时候可以把函数改写成匿名函数,不必专门去定义一个新的函数。python中,lambda是一个表达式,并不是一个语句,而且lambda的主体是只有一行的简单表达式,并不能扩展成一个多行的代码块。python的一些匿名函数用法例子:# 匿名函数的格式:lambda argument1, argument2, ......

weixin_29098367的博客 431

function函数的用法_Python笔记第六回——常用内置函数用法

一些常用的内置函数经常会忘记,方便自己回溯用法,纯干货,无杂质。只推常用。下列内置函数基于Python3all()和any()参数为iterable,即元组或列表all()函数用于判断iterable中的所有元素是否都为TRUE,元素除了是 0、空、None、False 外都算 True。any()函数用于判断iterable中的所有元素是否都为False。容易混淆,而且有坑,不清楚不建议使用bo...

weixin_39613188的博客 156
上一篇: Python笔记——流程语句
下一篇: Python笔记——类与继承
pat_datamine
博客等级 码龄12年 13粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值