1.1. 基础函数

函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可.

灌输一个概念:Python中函数就是对象,函数和我们之前的[1,2,3],'abc',8等一样都是对象,而且函数是最高级的对象(对象是类的实例化,可以调用相应的方法,函数是包含变量对象的对象)

既然函数是对象,那么自然满足下面两个条件:

1. 其可以被赋给其他变量

2. 其可以被定义在另外一个函数内(作为参数&作为返回值),类似于整形,字符串等对象。

f和f()的区别是: f是函数名,是一个变量,可以进行赋值操作里面存储量函数的内容

f():是真正的去操作这个函数,去执行函数存储的内容

特性:

1.代码重用

2.保持一致性

3.可扩展性

函数名的命名规则

1.函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号;

2.函数名是区分大小写的。

3.函数名不能是保留字

形参:形式参数,不是实际存在,是虚拟变量。

在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型应与实参一一对应)

实参实际参数,调用函数时传给函数的参数,可以是常量,变量,表达式,函数,传给形参

区别:形参是虚拟的,不占用内存空间,.形参变量只有在被调用时才分配内存单元,实参是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参

简单的函数实例

简单的函数实例: 形参,实参, 函数之间的调用,return语句, 文件的操作

import time
def now():format_time = '%y-%m-%d %X'current_time = time.strftime(format_time)return current_time
def logger(n):with open('log.txt', 'a+', encoding='utf-8') as f:f.write("%s:%s\n" % (n, now()))
def say():line = "现在是北京时间"logger(line)
say()

特殊例子:

def f(){global aa = 12
}
print(a)    # 直接打印报错,因为a虽然是全局变量,但是在内存中的只有函数名,函数的内容未执行
f()
print(a)    # 函数被调用,函数内的全局a变量被赋值了

函数的参数

必备参数  ('hhh', 23)

关键字参数 (name='hhh',age=23)  (age=23, name='hhh')

默认参数 :默认参数在形参中添加,Py3.0中默认参数一定要跟在其他参数后面,否则会报错

不定长参数:

*args: 未命名式形参,传递过去元组处理

**keywords 命名式形参,传递过去一个键值对,用dict形式

不定长参数位置:def f(school='xupt', *args, **kwargs): 默认参数在最左边,*args在中间,**keywords在右边,否则报错 

必备参数,关键字参数,默认参数

默认参数

# 默认参数一定要跟在其他参数后面
def info(name='ftl', age=18, sex='male'):print('name:%s' % name)print('age :%d' % age)print('sex :%s' % sex)print('----------------------------------------')
info("hhh", 23)
info(age=23, name='hhh')
# 使用默认参数
info()
info('hahaha')

不定长参数:

*rags, 无命名参数,传递过去的是一个元组

**keywords, 命名式参数

不定长参数位置:def f(*args, **keywords)  args在左边,keywords在右边,否则报错

*rags, 无命名参数

def add(*args):print(args)print(sum(args))add(1, 2, 3, 4, 5)

说明:# args的特殊用法:

def fun(*args):print(args)
fun([1, 3, 5], [2, 4, 6])
fun(*[1, 3, 5], [2, 4, 6])
fun(*[1, 3, 5], *[2, 4, 6])

**keywords, 命名式参数

def info2(**kwargs):for i in kwargs:print(i, kwargs[i])info2(name='ftl', age=23, sex='male')

说明: # kwargs的特殊用法:

def fun1(**kwargs):print(kwargs)
# fun1({'name':'ftl'})  # 因为传递过去的不是一个键值对TypeError: fun1() takes 0 positional arguments but 1 was given
fun1(info={'name' : 'ftl'})  # 传递过去的key是info, value是一个字典
fun1(name='ftl', age=12, sex='male')
fun1(**{'name': 'ftl', 'age': 12, 'sex': 'male'})

不定长参数的混合使用,默认参数必须在最左边,因为不定长参数可为空,感觉混合使用的时候,是按照位置传递的参数

def info3(school='xupt', *args, **kwargs): # print(args)    # (1, 2, 3)# print(kwargs)  # {'age': 23, 'name': 'ftl', 'sex': 'male'}for k in args:print(k, end='\t')print()for i in kwargs:print('%s --> %s' % (i, kwargs[i]))
info3(1, 2, 3, name='ftl', age=23, sex='male')
# SyntaxError: positional argument follows keyword argument
# info3(name='ftl', age=23, sex='male',1, 2, 3)  # 位置错误
# def info4(**kwargs, *args):                   # 位置错误,Py3不支持这种做法

转载于:https://www.cnblogs.com/ftl1012/p/9382484.html

Python学习---基础函数的学习相关推荐

  1. python语言基础实验_实验二Python语言基础函数包练习.doc

    实验二Python语言基础函数包练习 实验 Python语言基础函数包练习:1208 学号: 实验目的 1.Python语言包,如math.NumPySciPy和Matplotlib等函数包的使用实验 ...

  2. python的def函数_Python 学习之 def 函数

    共3118字, 阅读本文需要8分钟 def 函数基础 def 函数的定义 在 python 中,def 函数是用来定义一个 function() 的.基本使用 示例下面我们定义了一个 function ...

  3. python常用基础函数

    Python: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,'6.2f'/'0. ...

  4. python零基础入门教程学习要多久-廖雪峰python教程要学多久-零基础学Python需要多久...

    零基础学python大约需要多久 看不同的人,不同的学习能和基础. 像我通java,vc ,javascript,groovy,vb,c 接触过c#,delphi,asp,E语言, 用过dreamwa ...

  5. python内置函数open_Python学习教程:Python内置函数大总结(下篇)

    这里接着上次的 Python学习教程,给大家总结了Python 剩下的33个内置函数. 31 hash() 返回对象的哈希值 In [112]: hash(xiaoming)Out[112]: 613 ...

  6. python的dropna函数_Python学习教程:从Excel到Python最常用的32个Pandas函数(一)

    原标题:Python学习教程:从Excel到Python最常用的32个Pandas函数(一) 本次的Python学习教程涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据 ...

  7. 自学python 编程基础知识_python学习-基础知识-1

    1.计算机历史 计算机使用高低电压的两种状态来描述信息.计算机可以理解的只有二进制数据即010100011....,1个比特位可以表示的状态只有2种,n个比特位可以表示的状态有2的n次方种. 所以如果 ...

  8. python学习基础知识_python学习基本知识

    5:对函数的默认参数有什么要求?还有什么参数? 默认参数必须指向不变对象!否则,频繁调用默认函数,会修改默认函数指向的内存存储内容. 还有: 必选参数.默认参数.可变参数(tuple).关键字参数(d ...

  9. python中deepcopy函数_Python学习笔记函数之copy()和deepcopy()

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

最新文章

  1. 主板uefi和传统引导方式区别_反吊膜与传统污水池加盖方式有什么区别
  2. elasticsearch安装kibana插件
  3. 国内11所“袖珍”大学!最小的甚至只有一栋楼……
  4. rocketmq原理_彻底看懂RocketMQ事务实现原理
  5. 【原创】记一次HttpWebRequest中国移动查账单爬虫的攻克历程
  6. 月薪2万程序员面试,被HR直面吐槽:毕业生能值这个数?
  7. 献给1975-1985年出生的人们!!!!
  8. 删除或添加最大化、最小化按钮 - 回复 Tommy the CAT 的问题
  9. web.xml文件中mime-mapping
  10. itellij jdk多重选择Class JavaLaunchHelper is implemented in both
  11. 开机bat脚本解决steam无法自动登陆
  12. C语言文件操作(文件读写)
  13. 教你PDF怎么压缩的小一点?PDF压缩方法
  14. WiredTiger系列2:Eviction详解
  15. tabIndex 和 aria注意点
  16. python情人节之玫瑰花与表白方式,用python画一朵玫瑰花,拿去表白趴
  17. CGT Asia 2023第三届亚洲细胞与基因治疗创新峰会将于4月上海召开
  18. Arduino提高篇02—OLED屏汉字显示
  19. C++语法基础—— 判断语句习题——ACwing
  20. 巡云轻论坛系统 2.3 发布,新增话题收藏功能

热门文章

  1. 【原创】关于java中的lock
  2. java 自带jar命令打包class文件
  3. Qt/Embedded开发环境的的搭建(二)
  4. 隐藏多行文本框的滚动条
  5. 图像重建计算机冷却风扇故障,维修别克英朗XT冷却风扇故障
  6. python文件路径过滤器_自定义过滤器及标签
  7. Jmeter系列之Jmeter+Grafana+InfluxDB实时监控
  8. Graph Embedding:word2vec更进一步?
  9. EPERM: operation not permitted, Please run SwitchHosts
  10. 基于Solana区块链的去中心化交易所Orca正式启动