python教程:函数快速入门

函数的定义和使用

def test(x):       # x代表形参
	'''
	2*x+1
	:param x:整形数字
	:return:返回计算结果
	'''
	y = 2*x+1
	return y
p = test(3)     # test()表示运行名为test函数,3代表实参,给x进行赋值
print(p)

函数的定义:

  • def: 表示函数的关键字
  • 函数名: 函数的名称, 根据函数名调用函数
  • 函数体: 函数中进行一系列的逻辑计算
  • 参数: 为函数执行完毕后, 可以给调用者返回数据

一. 为什么要用函数?

  • 减少代码量
  • 保持一致性
  • 易维

二. 函数的参数

函数有三种不同的参数:

普通参数

######### 定义函数 #########
# name 叫做函数func的形式参数,简称:形参
def func(name):
    print name
  
# ######### 执行函数 ######### 
#  'wupeiqi' 叫做函数func的实际参数,简称:实参
func('wupeiqi')

默认参数

def func(name, age = 18):
      
	print "%s:%s" %(name,age)
  
# 指定参数
func('wupeiqi', 19)
# 使用默认参数
func('alex')

注:默认参数需要放在参数列表最后

动态参数 *args

def func(*args):
  
	print args
  
  
# 执行方式一
func(11,33,4,4454,5)
  
# 执行方式二
li = [11,2,2,3,3,4,54]
func(*li)

动态参数 **kwargs

def func(**kwargs):
  
	print args
  
  
# 执行方式一
func(name='wupeiqi',age=18)
  
# 执行方式二
li = {'name':'wupeiqi', age:18, 'gender':'male'}
func(**li)

三. 函数的变量

函数的变量可分为 全局变量和局部变量

全局变量(大写)

定义:没有缩进的变量

局部变量(小写)

定义:子程序下定义的变量

name = 'lhf'                 # 这里就指全局变量


def change_name():
    name = '帅了一比'      # 这里就指局部变量
    print('change_name', name)


change_name()
print(name)    

#结果
change_name 帅了一比
lhf

global和nolocal

global声明是全局变量,nolocal指定上一级变量

未声明全局变量

x = 99
def func():
    x = 88
func()
print(x)     #输出99

声明全局变量

x = 99
def func()
    global x
    x = 88
func()
print(x)    #输出88

未指定上一级变量

def func():
    count = 1
    def foo():
        count = 12
    foo()
    print(count)
func()    #输出1

指定上一级变量

def func():
    count = 1
    def foo():
        nonlocal count
        count = 12
    foo()
    print(count)
func()     #输出12

四. 递归函数

ps: 用的好的都是大牛~

就是函数自己调用自己

特性:

  • 必须有一个明确的结束条件,

  • 每次进入深一层递归时,问题规模都应有所减少

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
 def calc(n):
     print(n)
     if int(n / 2) == 0:
         return n # 当上面的条件成立后一个真值,返回到函数
     res = calc(int(n / 2))    
     print(n,res) 
     return res # 返回res的值,要将真值一层一层传递回去
 
 calc(10)   

五. lamabda匿名函数

lambda用法,冒号之前的是入参,冒号之后的是表达式,返回的值,最简单的函数

print [(lambda x:x*x)(x)for x in range(11)]
#结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print (lambda x:x*x)(3)
#结果:9
g=lambda x:x*x
print g(4)
#结果:16

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python教程:函数快速入门 - Python技术站

(0)
上一篇 2023年4月2日 下午5:38
下一篇 2023年4月2日

相关文章

  • 一篇文章轻松学会python装饰器

    1. 函数 在python中,函数通过def关键字、函数名和可选的参数列表定义。通过return关键字返回值。我们举例来说明如何定义和调用一个简单的函数: >>> def foo(): … return 1 >>> foo() 1 方法体(当然多行也是一样的)是必须的,通过缩进来表示,在方法名的后面加上双括号()就能够…

    Python开发 2023年4月2日
    00
  • Python中模块的四种方式

    一、什么是模块? 模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块。如果这个py文件的文件名为module.py,模块名则是module。 二、模块的四种形式 在Python中,总共有以下四种形式的模块: 自定义模块:如果你自己写一个py文件,在文件…

    Python开发 2023年3月31日
    00
  • 5个python中编程的大坑

    对于Python新手来说,写代码很少考虑代码的效率和简洁性,因此容易造成代码冗长、执行慢,这些都是需要改进的地方。本文是想通过几个案列给新手一点启发,怎样写python代码更优雅。 大坑一:不喜欢使用高级数据结构 1.sets(集合) 很多新手忽视sets(集合)和tuple(元组)的强大之处 例如,取两个列表交集: def common_elements(…

    Python开发 2023年3月31日
    00
  • Python实现搭建-简单服务器教程

    Python动态服务器网页(需要使用WSGI接口),基本实现步骤如下:1.等待客户端的链接,服务器会收到一个http协议的请求数据报2.利用正则表达式对这个请求数据报进行解析(请求方式、提取出文件的环境)3.提取出文件的环境之后,利用截断取片的方法将文件名转化为模块名称4.使用m = __import__(),就可以得到返回值为m的模块5.创建一个env字典…

    python 2023年4月18日
    00
  • Python生成随机数的一个标准库-random

    1.介绍 Random库Python中用于生成随机数的一个标准库。计算机没有办法产生真正的随机数,但它可以产生伪随机数。 伪随机数是计算机按照一定的运算规则产生的一些数据,只不过这些数据表现为随机数的形式。计算机中采用梅森旋转算法生成为随机序列,序列中的每一个元素就是伪随机数,由于计算机不能产生真正的随机数,所以伪随机数也就被称为随机数。 Random库包含…

    python 2023年4月27日
    00
  • Python学习:len() 函数详解:获取字符串长度或字节数、join()方法:合并字符串

    Python中,要想知道一个字符串有多少个字符(获得字符串长度),或者一个字符串占用多少个字节,可以使用len()函数。 语法格式: len(string) string 用于指定要进行长度统计的字符串 示例: a = ‘www.baidu.com’ print(len(a)) 输出 13 在 Python 中,不同的字符所占的字节数不同,数字、英文字母、小…

    Python开发 2023年4月2日
    00
  • Python中struct 模块的使用教程

    1.struct 简单介绍 struct 是 Python 的内置模块, 在使用 socket 通信的时候, 大多数据的传输都是以二进制流的形式的存在, 而 struct 模块就提供了一种机制, 该机制可以将某些特定的结构体类型打包成二进制流的字符串然后再网络传输,而接收端也应该可以通过某种机制进行解包还原出原始的结构体数据 2.struct 的使用 str…

    python 2023年4月18日
    00
  • Python学习:迭代器与生成器

    1.生成器 如果创建一个有很多元素的列表,但是只需要访问前几个元素,后面的元素占着的空间就白白浪费了 在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。 在Python中,这种一边循环一边计算的机制,称为生成器:generator。 要创建一个generator,有很多种方法 第一种方法很简单,只要把一个列表生成式的[]…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部