python函数

定义函数的一般格式:

det function():

  statements

  return a

return用于退出函数,向调用方返回一个表达式

 

函数可以不设置参数,也可以设置参数:

def function1():
    print('大湘菜')


def function2(a):
    print(a)


function1()
function2('小湘菜')

结果为:

大湘菜
小湘菜

 

python传递不可变对象,会生成一个新对象:

def change(a):
    print(id(a))
    a = 2
    print(id(a))


a = 1
print(id(a))
change(a)

结果为:

1460124477744
1460124477744
1460124478032

 

python传递可变对象,指向的是同一个对象:

def change(a):
    print(id(a))
    a.append(4)
    print(id(a))


a = [1, 2, 3]
print(id(a))
change(a)

结果为:

1874883986496
1874883986496
1874883986496

 

参数类型

1、必须参数:

def myprint(a):
    print(a)


myprint('大湘菜')

结果为:

大湘菜

 

2、关键字参数,允许调用的参数顺序和声明时不一致:

def myprint(name, age):
    print('我的名字是' + name + ',年龄是' + age + '岁。')


myprint(age='18', name='大湘菜')

结果为:

名字是大湘菜,年龄是18岁。

 

3、默认参数,如果没有参数传递,使用默认参数:

def myprint(name, age='18'):
    print('我的名字是' + name + ',年龄是' + age + '岁。')


myprint('大湘菜')
myprint('小湘菜', '81')

结果为:

我的名字是大湘菜,年龄是18岁。
我的名字是小湘菜,年龄是81岁。

 

4、不定长参数,加了*,指的是函数比初声明时使用了更多的参数,会以元组的形式存入:

def myprint(name, *otherinfo):
    print('我的名字是' + name)
    print(otherinfo)


myprint('大湘菜')
myprint('大湘菜', 1, 2, 3)

结果为:

我的名字是大湘菜
()
我的名字是大湘菜
(1, 2, 3)

 

加了**的参数会以字典的形式导入

 

声明函数时,*可以单独出现,但是*后的参数必须用关键字传入:

def myprint(name, *, age):
    print('我的名字是' + name)
    print('我的年龄是' + age)


myprint('大湘菜', age='18')

结果为:

我的名字是大湘菜
我的年龄是18

 

匿名函数

一般形式:

lamda arg1, arg2…: expression

lamda的主体是一个表达式,而不是一个代码块。lamda拥有自己的命名空间,不能访问全局命名空间的参数

info = lambda name, age: '姓名为' + name + ',年龄为' + age
print(info('大湘菜', '18'))

结果为:

姓名为大湘菜,年龄为18

 

可以把匿名函数封装到函数内:

def info():
    return lambda name, age: '姓名为' + name + ',年龄为' + age


returnFunction = info()  # 返回lamda匿名函数
print(returnFunction('大湘菜', '18'))

结果为:

姓名为大湘菜,年龄为18

 

强制位置参数

函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式

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

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • python基本数据类型

    python的变量不需要声明,但在使用前必须要赋值   多个变量赋值: a = b = c = 1 x, y, z = 1, True, ‘大湘菜’   python有六个标准的数据类型: Number、String、Tuple、List、Set、Dictionary,其中前三者为不可变数据,后三者为可变数据   Number: a, b, c, d = 1…

    Python开发 2023年4月2日
    00
  • python输入和输出

    输出 1、表达式语句 2、print() 3、write() 美化输出格式 repr()产生一个解释器易读的表达形式: a = ‘the sea has bank\nmy love is boundless’ print(a) print(repr(a)) # 可以转义特殊字符 结果为: the sea has bank my love is boundle…

    Python开发 2023年4月2日
    00
  • python迭代器和生成器

    iter()用于创建迭代器,next()用于输出迭代器的下一个元素: names = [‘微湘菜’, ‘小湘菜’, ‘大湘菜’, ‘巨湘菜’] iterName = iter(names) for i in range(4): print(next(iterName)) 结果为: 微湘菜 小湘菜 大湘菜 巨湘菜   创建一个迭代器需要在类中实现两个方法 __…

    Python开发 2023年4月2日
    00
  • python爬虫

    Web请求过程 1、服务器渲染:在服务器那边直接把数据和html整合在一起,统一返回给浏览器 在页面源代码中能看到数据 2、客户端渲染:第一次请求只有一个html骨架,第二次请求拿到数据,进行数据展示(一般为XHR) 在页面源代码中看不到数据 <可用检查网页或者F12来查看>   HTTP协议 Hyper Text Transfer Protoc…

    Python开发 2023年4月2日
    00
  • pythonFile方法

    open()方法用于打开一个文件,并返回文件对象,注意最后一定要关闭文件对象,即调用close()方法 一般形式为: open(file, mode= , buffering= , encoding= , errors= , newline= , closefd= , opener= )   参数说明: file: 必需,文件路径(相对或者绝对路径) mod…

    Python开发 2023年4月2日
    00
  • python面向对象

    传统的结构化设计方法的基本点是面向过程,系统被分解成若干个过程。而面向对象的方法是采用构造模型的观点,在系统的开发过程中,各个步骤的共同的目标是建造一个问题域的模型。在面向对象的设计中,初始元素是对象,然后将具有共同特征的对象归纳成类,组织类之间的等级关系,构造类库。在应用时,在类库中选择相应的类 面向对象编程的主要思想是把构成问题的各个事务分解成各个对象,…

    Python开发 2023年4月2日
    00
  • python模块

    python模块是一个py文件,一个模块只会被导入一次   python在编译或安装的时候会确定搜索路径,使用import语句的时候,python解释器就从搜索路径(即一系列目录名)中查找模块 import sys print(sys.argv) # 命令行参数 print(sys.path) # 路径 结果为: [‘D:/Pycharm/pythonPro…

    Python开发 2023年4月2日
    00
  • python运算符

    算术运算符: + – * / % ** //   比较运算符: == != > < >= <=   赋值运算符: = += -= *= /= %= **= //= :=(海象运算符)   其中海象运算符用于在表达式内部为变量赋值: name = ‘大湘菜’ if n := len(name) < 4: print(‘a nice…

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