一、函数是什么:

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

二、函数的作用:

  1、简化代码

  2、提高代码的复用性

  3、代码可扩展

三、定义函数:

 def SayHello():   #函数名
print('Hello')#函数体
SayHello() #调用函数,函数不调用是不会被执行的

 四、函数的参数

位置参数:必填参数

 def calc(a,b): #形参,形式参数
res = a * b
print('%s * %s = %s'%(a,b,res))
calc(8.9,2.7) #实参,实际参数

默认值参数:非必填参数

 # 操作文件函数(读和写)
def op_file(file_name,conent=None): #conent为写的内容
f = open(file_name,'a+',encoding='utf-8')
f.seek(0)
if conent: #conent不为空代表写入文件
f.write(conent)
f.flush()
else: #conent为空时读文件
all_users = f.read() #函数里面定义的局部变量只能在函数里面用
return all_users #调用完函数之后,返回什么结果
f.close()
# 把函数返回的结果存入变量
res = op_file('a.txt')
print(res)

 非固定参数(参数组):

  1、非必填参数

  2、不限定参数个数

  3、把所有参数放到一个元组里面

 def syz(*args): #参数组
print(args)
username = args[0]
pwd = args[1]
age = args[2]
syz()
syz('niuniu','')
syz('niuniu','niuniu','test')
def syz2(a,*args):
print(a)
username = args[0]
pwd = args[1]
age = args[2]
syz2()
syz2('niuniu','')
syz2('niuniu','niuniu','test')

 关键字参数:

  1、非必填参数

  2、不限定参数个数

  3、把所有参数放到一个字典里面

 def syz(**kwargs):
print(kwargs)
syz()
syz(name='niuniu',age=23)
syz(name='niuniu',age=23,add='回龙观',home='河南')
def syz2(time,**kwargs):
print(kwargs)
syz2('')
syz2(name = 'niuniu',age = 23,time = '')
syz2('',name = 'niuniu',age = 23,add = '回龙观',home = '河南')

 五、全局变量

1、不安全,所有人都能改

2、全局变量会一直占用内存

 name = '牛牛'  #全局变量
def sayName():
global name #如果需要修改全局变量,需要先声明
name = '刘伟'#局部变量
print('name1:',name)
sayName()
print('name2:',name)

 六、递归函数:函数自己调用自己

  1、少用递归

  2、递归最多调用999次,效率不高

 def test():
num = int(input('please enter a number:'))
if num % 2 == 0:#判断输入的数字是不是偶数
return True #如果是偶数的话,程序就退出了,返回True
print('不是偶数请重新输入!')
return test() #如果不是偶数的话继续调用自己,输入值
print(test()) #调用函数

七、函数返回多个值

 # 定义一个函数返回多个值
def say():
num1 = 1
num2 = 2
num3 = 3
return num1,num2,num3
# 函数返回多个值会把它放到一个元组里面
print(say())
# 函数如果返回多个值,可以用多个变量来接收
res1,res2,res3 = say()
print(res1)
print(res2)
print(res3)

Python学习之==>函数的更多相关文章

  1. python学习8—函数之高阶函数与内置函数

    python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...

  2. python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程

    python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...

  3. 从0开始的Python学习007函数&函数柯里化

    简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...

  4. python学习Day10 函数的介绍(定义、组成、使用)

    今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...

  5. Python学习之函数参数

    上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的.在调用函数时,有的函数需要参数来启动函数,有的则无需参数.这一节我们来介绍Python中有哪些参数类型. 位置参数 在调用函数时 ...

  6. Python学习笔记 - 函数参数

    >>> def power(x): ... return x * x ... >>> power(5) 25 >>> def power(x, n ...

  7. Python学习笔记—函数

    函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73 ...

  8. Python学习之函数篇

    python查看对象,函数帮助文档:.__doc__,例:str.split.__doc__ 查看详细对象,函数文档:help(),例:help(str.split) 函数参数可设置默认值 如果不能提 ...

  9. Python学习--05函数

    Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.我们已经知道Python提供了许多内建函数,比如print().但我们 ...

  10. python学习:函数的学习

    我们写东东的时候,往往有一些东西要频繁去复用,那么每个功能是10行代码,复用2次就是20行,这样看来我们的程序如果频繁利用某些代码的话,那么会是我们开发的东西越来越臃肿.那么好的方法有没有呢,那就是函 ...

随机推荐

  1. java面试02——基础

    1. JDK . JRE 和JVM有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境. JRE:Java Runtim ...

  2. Codeforces 898 贪心关闭最少闹钟 优先队列最少操作构造N/2squares 讨论情况哈希数字串分割a+b=c

    A /* Huyyt */ #include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define mkp(a,b) ...

  3. java高并发核心要点|系列文章

    java高并发核心要点|系列1|开篇 java高并发核心要点|系列2|锁的底层实现原理 java高并发核心要点|系列3|锁的底层实现原理|ABA问题 java高并发核心要点|系列4|CPU内存指令重排 ...

  4. gdb命令小结

    GDB命令小结 gdb <filename> : 调试指定程序文件 r : run 的简写,运行被调试程序, 如果此前没有下过断点,则执行完整个程序:如果有断点, 则程序暂停在第一个可用断 ...

  5. java常用类与包装类--常用类字符串String类、StringBuffer类、Stringbuilder类

    1.String类 1.1String类的概念和储存结构: (1)字符串是一个比较特殊的对象,可以使用new,也可以不使用new来创建字符串对象 String s1 = new String(&quo ...

  6. MySQL不常用、易忽略的小知识

    笔者从事开发也有一段时间了,关于数据库方面的一些小知识在这里总结一下 1.count(*),count(1)与count(column)区别 count(*)对行的数目进行计算,包含NULL coun ...

  7. 安装twisted遇到的坑

     在使用twisted框架的时候,我们需要知道他是干什么的? twisted支持很多种协议,包括传输层的TCP, UDP, TLS和引用层的HTTP和FTP等. twisted框架其主要发行版本是以p ...

  8. 【清华集训2014】mex

    题目 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. 分析 显然,当\(a_i>n\)时,对答案没有影响,所以全部视为n+1. 有两种方法 ...

  9. 【leetcode】1189. Maximum Number of Balloons

    题目如下: Given a string text, you want to use the characters of text to form as many instances of the w ...

  10. 一些 sql 调优的总结

    一.sql 优化方案 1)列类型尽量定义成数值类型,且长度尽可能短,如主键和外键,类型字段等等   2)建立单列索引   3)根据需要建立多列联合索引.当单个列过滤之后还有很多数据,那么索引的效率将会 ...