【Python操作基础】——函数

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972

   个人介绍: 研一|统计学|干货分享
         擅长Python、Matlab、R等主流编程软件
         累计十余项国家级比赛奖项,参与研究经费10w、40w级横向

文章目录

  • 1 内置函数
  • 1.1 简单示例
    • 1.2 内置函数的主要特点
    • 1.3 数学函数
    • 1.4 类型函数
    • 1.5 其他功能函数
  • 2 模块函数
    • 2.1 简单示例
    • 2.2 import 模块名
    • 2.2 import 模块名 as 别名
    • 2.3 from 模块名 import 函数名
  • 3 用户自定义函数
    • 3.1 简单示例
    • 3.2 定义方法
    • 3.3 函数中的docString
    • 3.4 调用方法
    • 3.5 返回值
    • 3.6 自定义函数的形参与实参
    • 3.7 变量的可见性
    • 3.8 值传递与地址传递
    • 3.9 自定义函数时的注意事项
  • 4 lambda函数
    • 4.1 lambda函数的定义方法
    • 4.2 lambda函数的调用方法

【Python操作基础】系列——函数操作,建议收藏!


该篇文章首先利用Python展示了使用函数的相关操作,包括内置函数、模块函数、用户自定义函数、lambda函数等。

1 内置函数

1.1 简单示例

  运行程序:

i=20
type(i)

  运行结果:

int

1.2 内置函数的主要特点

  运行程序:

i=20
type(20)

dir(__builtins__)#查看内置函数的方法

  运行结果:

['ArithmeticError',
 'AssertionError',
 'AttributeError',
 'BaseException',
 'BlockingIOError',
 'BrokenPipeError',
 'BufferError',
 'BytesWarning',
 'ChildProcessError',
 'ConnectionAbortedError',
 'ConnectionError',
 'ConnectionRefusedError',
 'ConnectionResetError',
 'DeprecationWarning',
 'EOFError',
 'Ellipsis',
 'EnvironmentError',
 'Exception',
 'False',
 'FileExistsError',
 'FileNotFoundError',
 'FloatingPointError',
 'FutureWarning',
 'GeneratorExit',
 'IOError',
 'ImportError',
 'ImportWarning',
 'IndentationError',
 'IndexError',
 'InterruptedError',
 'IsADirectoryError',
 'KeyError',
 'KeyboardInterrupt',
 'LookupError',
 'MemoryError',
 'ModuleNotFoundError',
 'NameError',
 'None',
 'NotADirectoryError',
 'NotImplemented',
 'NotImplementedError',
 'OSError',
 'OverflowError',
 'PendingDeprecationWarning',
 'PermissionError',
 'ProcessLookupError',
 'RecursionError',
 'ReferenceError',
 'ResourceWarning',
 'RuntimeError',
 'RuntimeWarning',
 'StopAsyncIteration',
 'StopIteration',
 'SyntaxError',
 'SyntaxWarning',
 'SystemError',
 'SystemExit',
 'TabError',
 'TimeoutError',
 'True',
 'TypeError',
 'UnboundLocalError',
 'UnicodeDecodeError',
 'UnicodeEncodeError',
 'UnicodeError',
 'UnicodeTranslateError',
 'UnicodeWarning',
 'UserWarning',
 'ValueError',
 'Warning',
 'WindowsError',
 'ZeroDivisionError',
 '__IPYTHON__',
 '__build_class__',
 '__debug__',
 '__doc__',
 '__import__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 'abs',
 'all',
 'any',
 'ascii',
 'bin',
 'bool',
 'breakpoint',
 'bytearray',
 'bytes',
 'callable',
 'chr',
 'classmethod',
 'compile',
 'complex',
 'copyright',
 'credits',
 'delattr',
 'dict',
 'dir',
 'display',
 'divmod',
 'enumerate',
 'eval',
 'exec',
 'filter',
 'float',
 'format',
 'frozenset',
 'get_ipython',
 'getattr',
 'globals',
 'hasattr',
 'hash',
 'help',
 'hex',
 'id',
 'input',
 'int',
 'isinstance',
 'issubclass',
 'iter',
 'len',
 'license',
 'list',
 'locals',
 'map',
 'max',
 'memoryview',
 'min',
 'next',
 'object',
 'oct',
 'open',
 'ord',
 'pow',
 'print',
 'property',
 'range',
 'repr',
 'reversed',
 'round',
 'set',
 'setattr',
 'slice',
 'sorted',
 'staticmethod',
 'str',
 'sum',
 'super',
 'tuple',
 'type',
 'vars',
 'zip']

1.3 数学函数

  运行程序:

abs(-1)

min([1,2,3])

max([1,2,3])

pow(2,10)

round(2.991,2) 

  运行结果:

1
1
3
1024
2.99

1.4 类型函数

  运行程序:

int(1.134)

bool(1)

float(1)

str(123)

list("chao")

set("chao")

tuple("chao")

  运行结果:

1
True
1.0
'123'
['c', 'h', 'a', 'o']
{'a', 'c', 'h', 'o'}
('c', 'h', 'a', 'o')

1.5 其他功能函数

  运行程序:

i=0
type(i)

isinstance(i, int) #判断函数类型

dir() #查看搜索路径

myList=[1,2,3,4,5]
len(myList)

range(1,10,2)

list(range(1,10,2))

callable(dir)#判断函数是否可调用

bin(8) #十进制转换为二进制

hex(8) #十进制转换为十六进制

  运行结果:

int
True
['In',
 'InteractiveShell',
 'NamespaceMagics',
 'Out',
 '_',
 '_1',
 '_10',
 '_11',
 '_12',
 '_13',
 '_14',
 '_15',
 '_16',
 '_18',
 '_19',
 '_2',
 '_20',
 '_21',
 '_23',
 '_24',
 '_25',
 '_26',
 '_27',
 '_29',
 '_3',
 '_30',
 '_31',
 '_36',
 '_37',
 '_39',
 '_4',
 '_40',
 '_41',
 '_42',
 '_43',
 '_44',
 '_45',
 '_48',
 '_49',
 '_5',
 '_50',
 '_52',
 '_53',
 '_54',
 '_55',
 '_56',
 '_57',
 '_6',
 '_7',
 '_8',
 '_9',
 '_Jupyter',
 '__',
 '___',
 '__builtin__',
 '__builtins__',
 '__doc__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 '_dh',
 '_getshapeof',
 '_getsizeof',
 '_i',
 '_i1',
 '_i10',
 '_i11',
 '_i12',
 '_i13',
 '_i14',
 '_i15',
 '_i16',
 '_i17',
 '_i18',
 '_i19',
 '_i2',
 '_i20',
 '_i21',
 '_i22',
 '_i23',
 '_i24',
 '_i25',
 '_i26',
 '_i27',
 '_i28',
 '_i29',
 '_i3',
 '_i30',
 '_i31',
 '_i32',
 '_i33',
 '_i34',
 '_i35',
 '_i36',
 '_i37',
 '_i38',
 '_i39',
 '_i4',
 '_i40',
 '_i41',
 '_i42',
 '_i43',
 '_i44',
 '_i45',
 '_i46',
 '_i47',
 '_i48',
 '_i49',
 '_i5',
 '_i50',
 '_i51',
 '_i52',
 '_i53',
 '_i54',
 '_i55',
 '_i56',
 '_i57',
 '_i6',
 '_i7',
 '_i8',
 '_i9',
 '_ih',
 '_ii',
 '_iii',
 '_nms',
 '_oh',
 'a1',
 'a2',
 'a3',
 'a4',
 'a5',
 'a6',
 'a7',
 'a8',
 'a9',
 'exit',
 'func',
 'get_ipython',
 'getsizeof',
 'i',
 'json',
 'lst_1',
 'lst_2',
 'mt',
 'myDict1',
 'myDict2',
 'myFunc',
 'myGen',
 'myIterator',
 'myList',
 'myList1',
 'myList2',
 'myList3',
 'mySet1',
 'mySet10',
 'mySet11',
 'mySet2',
 'mySet3',
 'mySet4',
 'mySet5',
 'mySet6',
 'mySet7',
 'mySet8',
 'mySet9',
 'myString',
 'myTuple',
 'myTuple1',
 'myTuple2',
 'myTuple3',
 'myTuple4',
 'np',
 'p1',
 'quit',
 'r1',
 're',
 's',
 's1',
 'sep_str',
 'seq',
 'str1',
 'str2',
 'str3',
 'str4',
 'sum',
 'value',
 'var_dic_list',
 'x',
 'x1',
 'x2',
 'x3',
 'x4',
 'x5',
 'y',
 'z']
5
range(1, 10, 2)
[1, 3, 5, 7, 9]
True
'0b1000'
'0x8'

2 模块函数

2.1 简单示例

  运行程序:

import math as mt
mt.sin(1.5)

  运行结果:

0.9974949866040544

2.2 import 模块名

  运行程序:

import math
math.sin(1.5)

#cos(1.5) #报错,cos未引用模块

math.cos(1.5)

  运行结果:

0.9974949866040544
0.0707372016677029

2.2 import 模块名 as 别名

  运行程序:

import math as mt  #更改未别名
mt.sin(1.5)

  运行结果:

0.9974949866040544

2.3 from 模块名 import 函数名

  运行程序:

from math import cos#从模块中引用函数
cos(1.5) 

from math import sin
sin(1.5)

  运行结果:

0.0707372016677029
0.9974949866040544

3 用户自定义函数

3.1 简单示例

  运行程序:

def myFunc():
    j=0
    print('hello world')
myFunc()

  运行结果:

hello world

3.2 定义方法

  运行程序:

def func():
    j=0
    print('hello world')
    
    def func2(i):
        print('pass'+str(i)+str(j))
        
    return func2
func()

func()(2)

  运行结果:

hello world
<function __main__.func.<locals>.func2(i)>
hello world
pass20

3.3 函数中的docString

  运行程序:

def get_name(msg):
    name = input(msg) or 'Anonymous User'
    return name
help(get_name) 

#get_name?#报错:根据用户提示msg,获取用户名,如果输入为空,则默认未Friend

  运行结果:

File "<ipython-input-74-0273dd82ff56>", line 6
    get_name?#根据用户提示msg,获取用户名,如果输入为空,则默认未Friend
            ^
SyntaxError: invalid syntax

3.4 调用方法

  运行程序:

get_name('plz enter your name : ')

print(callable(get_name))#判断是否可调用

  运行结果:

plz enter your name : print(callable(get_name))
'print(callable(get_name))'
True

3.5 返回值

  运行程序:

def myfunc(i,j=2):
    j=i+1
    return j
print(myfunc(3))

def myfunc(i,j=2):
    j=i+1
print(myfunc(3))

def myfunc(i,j=2):
    j=i+1
    return i,j    
a,b =myfunc(3)
a,b

  运行结果:

4
None
(3, 4)

3.6 自定义函数的形参与实参

  运行程序:

def my_func(x1,*x2,x3,x5=5,x4=4):
    print(x1)
    print(x2)
    print(x3)
    print(x4)
    print(x5)
my_func(1,2,4,x3=3,x5=5)

my_func(1,2,x4=4,x3=3,x5=5)

my_func(1,2,4,x3=3,x5=5)

  运行结果:

1
(2, 4)
3
4
5
1
(2,)
3
4
5
1
(2, 4)
3
4
5

3.7 变量的可见性

  运行程序:

x=0
def myFunc(i):
    x=i
    print(x)

myFunc(1)
print(x)

x=0
def myFunc(i):
    global x
    x=i 
    print(x)
myFunc(1)
print(x)

x=0
def myFunc(i):
    x=i
    def myF():
        nonlocal x
        x=2
        print(x)
    print(x)
myFunc(1)
print(x)

  运行结果:

1
0
1
1
1
0

3.8 值传递与地址传递

  运行程序:

i=100
def myfunc(j,k=2): #值传递,形参实参分别占用不同内存空间,在被调用函数中修改形参,不会改变实参值
    j+=2 
myfunc(i)
print(i)

i=[100]
def myfunc(j,k=2):
    j[0]+=2       #地址传递。形参和实参共享同一内存空间,形参发生变化,实参也随之发生变化
myfunc(i)
print(i) 

  运行结果:

100
[102]

3.9 自定义函数时的注意事项

  运行程序:

def myfunc(j,k=2):#自定义函数参数分别为位置参数,关键字参数
    j+=k
    j
d=myfunc(2,3)
d

def myfunc(k=2,j):
    j+=k
    j
d=myfunc(2,3)
d#报错,关键字必须在位置参数后

def myfunc(j,k=2):
    j+=k
    j
d=myfunc(3)
print(d)#函数没有return,自动返回None

d is None

myfunc=abs
print(type(myfunc))#python认为,一切皆为对象
print(myfunc(-100))

  运行结果:

None

4 lambda函数

4.1 lambda函数的定义方法

  运行程序:

x=2
y= lambda x:x+3
y(2)

x=2
def myfunc(x):
  return x+3
myfunc(2)

  运行结果:

5
5

4.2 lambda函数的调用方法

  运行程序:

#lambda通常以另一个函数的参数形式使用
MyList = [1,2,3,4,5,6,7,8,9,10]
filter(lambda x: x % 3 == 0, MyList)

list(filter(lambda x: x % 3 == 0, MyList))

list(map(lambda x: x * 2, MyList))

from functools import reduce
reduce(lambda x, y: x + y, MyList)

  运行结果:

<filter at 0x2cd44b2d940>
[3, 6, 9]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
55

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/498246.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker:在ubuntu中运行docker容器

前言 1 本笔记本电脑运行的ubuntu20.04系统 2 docker运行在ubuntu20.04系统 3 docker镜像使用的是ubuntu18.04&#xff0c;这样拉的 docker pull ubuntu:18.04 4 docker容器中运行的是ubuntu18.04的系统&#xff0c;嗯就是严谨 5 这纯粹是学习笔记&#xff0c;实际上没啥价值。…

JAVA 源码分析Integer的128陷阱

128陷阱介绍及演示 首先什么是128陷阱&#xff1f; Integer包装类两个值大小在-128到127之间时可以判断两个数相等&#xff0c;因为两个会公用同一个对象&#xff0c;返回true&#xff0c; 但是超过这个范围两个数就会不等&#xff0c;因为会变成两个对象&#xff0c;返回fal…

Linux第85步_EXTI外部中断

1、在stm32mp157d-atk.dts文件中添加“led0”和“key0”节点 打开虚拟机上“VSCode”&#xff0c;点击“文件”&#xff0c;点击“打开文件夹”&#xff0c;点击“zgq”&#xff0c;点击“linux”&#xff0c;点击“atk-mp1”&#xff0c;点击“linux”&#xff0c;点击“my_l…

RecyclerView 调用 notifyItemInserted 自动滚动到底部的问题

项目中发现一个奇怪的现象 RecyclerView 加载完数据以后&#xff0c;调用 notifyItemInserted 方法&#xff0c;RecyclerView 会滑动到底部。 简化后的效果图&#xff1a; 因为这个 RecyclerView 的适配器有一个 FootViewHolder&#xff0c;所以怀疑是 FootViewHolder 的问题…

金属氧化物压敏电阻的冲击破坏机理高能压敏电阻分析

以氧化锌为主的金属氧化物阀片在一定的电压和电流作用下的破坏可分为热破坏和冲击破坏两类。 热破坏是指氧化锌电阻在交流电压持续作用时发生的破坏,即由于阀片在交流作用下的发热超过了其散热能力而导致的热平衡失控的现象。交流引起的热破坏可以分为几种不同情况:一种是由于…

unity学习(76)--窗口化和后台运行

1.通过如下方式将编译的游戏设置为窗口模式。 成功&#xff1a; 2.现在只有鼠标点击的窗体游戏运动&#xff0c;其他窗体游戏都会卡住。 2.1build setting中 2.2unity内部Project Settings 也被同步修改了

生成式 AI 学习资源大汇总

这里汇聚了该领域的海量学习资源&#xff0c;从研究更新到面试技巧&#xff0c;从课程材料到免费课程&#xff0c;还有实用代码&#xff0c;一应俱全&#xff0c;是你工作流程中的得力助手&#xff01; 前沿研究&#xff1a;每月精心筛选的最佳生成式 AI 论文列表&#xff0c;让…

SpringMVC学习记录

SpringMVC简介与配置 SpringMVC是一种基于Java实现MCV模型的轻量级Web框架&#xff0c;我们该如何使用呢&#xff1f; 首先在Maven中添加坐标 <dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><ver…

iOS UIFont-实现三方字体的下载和使用

UIFont 系列传送门 第一弹加载本地字体:iOS UIFont-新增第三方字体 第二弹加载线上字体:iOS UIFont-实现三方字体的下载和使用 前言 在上一章我们完成啦如何加载使用本地的字体。如果我们有很多的字体可供用户选择,我们当然可以全部使用本地字体加载方式,可是这样就增加了…

算法---动态规划练习-7(按摩师)【类似打家劫舍】

按摩师 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 首先&#xff0c;给定一个整数数组 nums&#xff0c;其中 nums[i] 表示第 i 天的预约时间长度。 定义两个辅助数组 f 和 g&#xff0c;长度都为 n&#xff08;n 是数组…

STM32时钟简介

1、复位&#xff1a;使时钟恢复原始状态 就是将寄存器状态恢复到复位值 STM32E10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。 复位分类&#xff1a; 1.1系统复位 除了时钟控制器的RCC_CSR寄存器中的复位标志位和备份区域中的寄存器以外,系统 复位将复位…

SQL-CRUD-2数据库实验

目录 第一关任务描述 相关知识 插入完整内容的行 插入选定内容的行 编程要求 测试说明 第一关代码 第二关任务描述 相关知识 删除表中的指定行 删除表中的所有行 编程要求 测试说明 第二关代码 第三关任务描述 相关知识 更新表中的指定行 编程要求 测试说明…

【学习】信创产品软件测试企业建设参考清单

“信创&#xff0c;即信息技术应用创新产业&#xff0c;涉及IT基础设施、基础软件、应用软件、信息安全等方面&#xff0c;产品覆盖面广、专业性强。作为目前的一项国家战略&#xff0c;也是当今形势下国家经济发展的新动能&#xff0c;信创产业发展已经成为促进经济数字化转型…

SlerfTools:简化操作,激发Solana生态创新潜能

在区块链世界的快速演变中,Solana生态系统以其独特的高性能吸引了全球的目光。然而,随着生态系统的蓬勃发展,用户和开发者面临的挑战也日渐增多。正是在这样的背景下,一个名为SlerfTools的新星项目应运而生,它承诺将为Solana带来一场革命性的变革。 项目的诞生 SlerfTools并非…

【QT+QGIS跨平台编译】043:【libprotobuf-lite+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、libprotobuf-lite介绍二、文件下载三、文件分析四、pro文件五、编译实践一、libprotobuf-lite介绍 libprotobuf-lite 是 Protocol Buffers 的 C++ 轻量级运行时库,专门设计用于在资源受限的环境下使用。与标准的 libprotobuf(Protocol Buffers…

深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 ✨

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;设计模式深度解析&#xff1a;深入浅出的揭秘游标尺模式与迭代…

力扣 718. 最长重复子数组

题目来源&#xff1a;https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/ C题解&#xff08;思路来源代码随想录&#xff09;&#xff1a;动态规划 确定dp数组&#xff08;dp table&#xff09;以及下标的含义。dp[i][j] &#xff1a;以下标i - …

速通数据结构第三站 单链表

系列文章目录 速通数据结构与算法系列 1 速通数据结构与算法第一站 复杂度 http://t.csdnimg.cn/sxEGF 2 速通数据结构与算法第二站 顺序表 http://t.csdnimg.cn/WVyDb 感谢佬们支持&#xff01; 目录 系列文章目录 前言一、单链表 1 结构体 …

踏上机器学习之路:探索数据科学的奥秘与魅力

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

hxp CTF 2021 - A New Novel LFI(新颖的解法)

一、环境 unbentu&#xff0c;docker https://2021.ctf.link/assets/files/includers%20revenge-25377e1ebb23d014.tar.xz 二、解析 PHP Filter 当中有一种 convert.iconv 的 Filter &#xff0c;可以用来将数据从字符集 A 转换为字符集 B &#xff0c;其中这两个字符集可以…