首页 > 编程语言 >Python之def函数

Python之def函数

时间:2024-03-29 23:56:34浏览次数:25  
标签:... myfunc return 函数 Python 煤煤 def Out

  • 注:函数的内容称为函数体,函数体是多条python语句组成的

简单的一个print函数

In [25]: def myfunc():
    ...:     for i in range(3):
    ...:        print("煤煤是小乖猫")
    ...:

# 效果
In [26]: myfunc()
煤煤是小乖猫
煤煤是小乖猫
煤煤是小乖猫

传入参数

In [27]: def myfunc(name):
    ...:     for i in range(3):
    ...:         print(f"i love {name}.")
    ...:

# 效果
In [28]: myfunc("煤煤")
i love 煤煤.
i love 煤煤.
i love 煤煤.

# 传参 并 指定次数
In [30]: myfunc("煤煤", 5)
i love 煤煤.
i love 煤煤.
i love 煤煤.
i love 煤煤.
i love 煤煤.

数学运算(return 会直接返回结果 后面不在执行)

# 第一种写法
In [31]: def div(x,y):
    ...:     z = x / y
    ...:     return z
    ...:

In [32]: div(4,2)
Out[32]: 2.0


# 第二种写法(比较方便)
In [33]: def div(x,y):
    ...:     return x / y
    ...:

In [34]: div(4,2)
Out[34]: 2.0


# 优化增加判断(除数不能为0)
In [36]: def div(x,y):
    ...:     if y == 0:
    ...:         return "除数不能为0!"
    ...:     else:
    ...:         return x / y
    ...:

In [37]: div(4,2)
Out[37]: 2.0

In [38]: div(4,0)
Out[38]: '除数不能为0!'

位置参数:定位

In [42]: def myfunc(s, vt, o):
    ...:     return "".join((o, vt, s))
    ...:

# 指定参数运行,返回的数值join是反过来的,所以结果就是反的
In [45]: myfunc("我","亲了","煤煤")
Out[45]: '煤煤亲了我'

# 关键字参数(知道name后就可以指定参数对应了)
In [46]: myfunc(o="我",vt="亲了",s="煤煤")
Out[46]: '我亲了煤煤'

位置参数必须在关键字参数之前

# 位置参数和关键字参数反了就会报错
In [47]: myfunc(o="我","摸了摸","煤煤")
  Input In [47]
    myfunc(o="我","摸了摸","煤煤")
                           ^
SyntaxError: positional argument follows keyword argument

# 关于默认参数,这样写就不会报错,因为关键字参数在最后面
In [48]: def myfunc(s, vt, o="煤煤"):
    ...:     return "".join((o, vt, s))
    ...:

In [49]: myfunc("焦焦","摸了摸")
Out[49]: '煤煤摸了摸焦焦'

In [50]: myfunc("焦焦","摸了摸","流浪猫")
Out[50]: '流浪猫摸了摸焦焦'

# 默认参数要放在最后面,不然就会报错
In [51]: def myfunc(s="焦焦", vt, o="煤煤"):
    ...:     return "".join((o, vt, s))
  Input In [51]
    def myfunc(s="焦焦", vt, o="煤煤"):
                       ^
SyntaxError: non-default argument follows default argument


In [52]: def myfunc(vt="", s="焦焦", o="煤煤"):
    ...:     return "".join((o, vt, s))
    ...:

In [53]: myfunc("摸了摸")
Out[53]: '煤煤摸了摸焦焦'

冷知识:斜杠左面不能使用关键字参数,只能使用位置参数

# 例如:abs和sum这两个函数都有一个斜杠
In [54]: help(abs)
Help on built-in function abs in module builtins:

abs(x, /)
    Return the absolute value of the argument.


In [55]: help(sum)
Help on built-in function sum in module builtins:

sum(iterable, /, start=0)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers

    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.

# 例如abs ,关键字参数在前就会报错
In [56]: abs(-1.5)
Out[56]: 1.5

In [57]: abs(x = -1.5)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [57], in <cell line: 1>()
----> 1 abs(x = -1.5)

TypeError: abs() takes no keyword arguments


# 自己定义的函数也可以这样用斜杠定义参数
In [60]: def abc(a , / , b , c):
    ...:     print(a, b, c)
    ...:

In [61]: abc(1,2,3)
1 2 3

In [62]: abc(a=1,2,3)
  Input In [62]
    abc(a=1,2,3)
               ^
SyntaxError: positional argument follows keyword argument


In [63]: abc(3,b=2,c=1)
3 2 1

标签:...,myfunc,return,函数,Python,煤煤,def,Out
From: https://www.cnblogs.com/2ich4n/p/18104876

相关文章

  • 函数方程思想
    高中数学热门技巧——方程思想定点在曲线问题例题1题目已知椭圆方程\(\dfrac{x^2}{4}+y^2=1\),设直线\(l\),不经过点\(P(0,1)\)且与椭圆相交于\(A,B\)两点,若直线\(PA\)与直线\(PB\)的斜率和为\(-1\),证明:直线\(l\)过定点。题解由直线\(l\)不过点\(P(0,1)\)......
  • 【Python】如何入门 Python:系统化方法与实践路径
    目录前言一、基础知识打牢基础二、选择合适的学习工具三、实践项目加深理解四、深入学习高级主题五、探索数据科学与机器学习六、加入社区与协作七、持续学习与跟进最新动态总结前言    在当今这个数据驱动的时代,Python作为一门强大、易学且应用广泛的编......
  • 准备Python环境学习OpenCV的使用
    安装venv模块,执行如下命令:sudoapt-getinstallpython3-venv创建venv环境,命名为images,执行如下命令:python3-mvenvimages进入新建的环境images,执行如下命令:cdimagessource./bin/activate安装Python的opencv模块,执行如下命令:pipinstallopencv-python创建测试用......
  • python给折线图添加标记
    我需要记录飞机作业的开始时间和结束时间#!usr/bin/envpython#-*-coding:utf-8_*-"""@author:JK@file:jisuan.py@time:2024/03/${DAY}@desc:"""importpandasaspdimportmatplotlib.pyplotaspltimportmatplotlib.tickerastickerinput_f......
  • 【好书推荐3】Python网络爬虫入门到实战
    【好书推荐3】Python网络爬虫入门到实战写在最前面内容简介作者简介目录前言/序言......
  • 代数:方程与函数
    方程与函数概述零点存在性定理如果函数\(f(x)\)在\([a,b]\)上连续,且\(f(a)\cdotf(b)<0\),则\(\existx_0\in[a,b]\),使\(f(x_0)=0\)。一元一次方程和一次函数形如\(ax+b=0(a\ne0)\)的方程称为一元一次方程。形如\(y=kx+b(k\ne0)\)的函数称......
  • 数论:数论函数
    数论函数积性函数积性函数:对于任何互质的整数有\(f(a\cdotb)=f(a)\cdotf(b)\)的数论函数。完全积性函数:对于任何整数有\(f(a\cdotb)=f(a)\cdotf(b)\)的数论函数。常见积性函数:欧拉函数\(\varphi\),莫比乌斯函数\(\mu\),因数个数函数\(\tau\),因数和函数\(\si......
  • python中函数与递归的练习
    求一个十进制的数值的二进制的0、1的个数实现一个用户管理系统(要求使用容器保存数据)[{name:xxx,pass:xxx,……},{},{}]users=[]#用户类,包含基本信息classUser:def__init__(self,name,password,email=None):self.name=nameself.p......
  • 使用函数指针实现转移表
    用函数指针实现简单的计算器功能。使用函数指针模拟实现计算器的功能大大减少了代码量,只需要创建一个函数指针数组,zi’azia其中存放着四钟加减乘除的算法。代码如下#include<stdio.h>intadd(inta,intb){ returna+b;}intsub(inta,intb){ returna-b;......
  • 【人工智能入门必看的最全Python编程实战(6)】
    ---------------------------------------------------------------------1.AIGC未来发展前景未完持续…1.1人工智能相关科研重要性拥有一篇人工智能科研论文及专利软著竞赛是保研考研留学深造以及找工作的关键门票!!!拥有一篇人工智能科研论文及专利软著竞赛是保研考研......