首页 > 编程语言 >python3 函数 定义函数与切片

python3 函数 定义函数与切片

时间:2022-08-26 17:15:30浏览次数:172  
标签:return 函数 切片 关键字 参数 def python3 定义

   如果我们要计算一个圆的面积,就是3.14*r*r,如果每次就算,则每次都要写一遍,就很麻烦,所以有了函数,我们就可以通过调用函数的方法,直接使用就行了。

 这里我们可以访问   内置函数 — Python 3.10.6 文档    查看python的内置函数有哪些,也可以通过help(abs)查看abs函数的帮助信息。
>>> abs(10)
10
>>>abs(-20)
20
abs() 函数用于返回绝对值的

  在python中,定义一个函数使用def语句,依次写出函数名、括号、括号中的参数与冒号:,然后在缩进块中编写函数体,函数的返回值使用return语句返回。
def my_abs(x):
  if x >= 0:
    return ture
  else:
    return flase
  如果已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在改文件的当前目录下面启动python解释器,用 from abstest import my_abs来导入my_abs() 函数,注意abstest是文件名(不含.py扩展名):
  空函数
  如果要定义一个不做的空函数,可以用pass。

def nop():
  pass
pass什么都不做,但它有什么用呢?实际上它用来作为占位符,比如现在还没有想好要怎么写函数的代码,就可以先放一个pass,让代码能够运行起来。
  比如:               if age > = 18;
           pass
      这里如果缺少了pass,代码运行的时候就会有语法错误。

参数检查

 

 

 

返回多个值

 

 

 

小结:
  定义函数时,需要确定函数名和参数个数;如果有必要,可以先对函数的数据类型做检查;函数体内部可以用return随时返回函数结果,函数执行完毕也没有return语句时,自动return None。函数可以同时返回多个值,但其实就是以一个tuple。

函数的参数

  包括默认参数、可变参数和关键字参数。
位置参数:
可以把 power(x)修改为 power(x, n),用来计算 x^n

 

 

 

 默认参数:
新的power(x,n)函数定义没有问题,但是旧的代码因为缺少了一个参数无法被正常调用了。
这个时候,默认参数就派上用场了,由于我们经常计算x^2,所以,完全可以把第二个参数n的默认值设为2:
def power(x,n=2):
  s = 1
  while n>0:
    n=n-1
    s=s*x
  return s
而对于n > 2 的其他情况,就必须明确地传入n,比如power(5,3)

 

 

 调用enroll()函数只需要传入两个参数。

  如果要继续传入年龄、城市等信息怎么办?这样的话我们可以把年龄和城市设置为默认参数:

 

 

 定义默认参数要牢记一点:默认参数必须指向不变对象!

 

可变参数

但是,如果我们把number更改为*number的可变参数,在调用的时候就可以简化
  

    

 如果已经有一个list或者tuple,要调用一个可变参数的情况。

             上面这个写法是可行的,但是太繁琐了,如果在list或者tuple的前面加上一个*号,把list或tuple的元素变成可变参数传进入。

*nums表示把nums这个list的所有元素作为可变参数传进去。

 

 

     关键字参数有什么用?它可以扩展函数的功能。比如,在 person 函数里, 我们保证能接收到 name 和 age 这两个参数,但是,如果调用者愿意提供 更多的参数,我们也能收到。试想你正在做一个用户注册的功能,除了 用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这 个函数就能满足注册的需求。

 

 

  

命名关键字参数
  对于关键字参数,函数的调用者可以传入任意不受限制额关键字参数。
如果要限制关键字参数的名称,就可以用命名关键字参数,例如,只接受city和job作为关键字参数。这种方式定义的函数如下:
  def person(name, age, *, city, job):
      print(name,age,city,job)
和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。调用方式。

使用命名关键字参数时,要特别注意,*不是参数,而是特殊分隔符。如果缺少*,Python解释器将无法识别位置参数和命名关键字参数:
  如果缺少了*,python解释器就无法识别位置参数和命名关键字参数:
  def person(name,age,city,job):
    #缺少*,city 和 job 被视为位置参数
    pass参数组合

  在python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数、这5种参数都可以自由组合使用,除了可变参数和命名关键字参数的混合。但是注意,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。
  比如定义一个函数,包含上述若干种参数:
def f1(a, b, c=0, *args, **kw):
  print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):
        print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

 

在函数调用的时候,Python解释器自动按照参数位置和参数名把对应的参数传进去。

 

 

 最神奇的是通过一个 tuple 和 dict,你也可以调用上述函数:

 

 

 要注意定义可变参数和关键字参数的语法:

 

 

 

递归函数
  如果一个函数在内部调用自身本身,这个函数就是递归函数。
例如,计算阶乘n!,可以使用函数fact(n)表示,可以看出。
fact(n)=n!=face(n-1)*n    只有n=1时候需要特殊处理。
于是,fact(n)用递归的方式写出来就是:
def fact(n):
  if n==1
    return 1
  return n*fact(n-1)
上面就是一个递归函数。


高级特性
掌握了Python的数据类型、语句和函数,基本上就可以编写出很多有用的程序了,比如狗仔一个1,3,5,7,9,,,99的列表,可以通过循环实现。
L=[]
N=1
while N <== 99
  L.append(N)
  N=N+2

 

切片
  取一个list或tuple的部分元素。
取前三个元素:L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
在字符串里面也提供了很多截取的函数,例如substring就是针对于字符串的切片

 

 

 

 

 

 

 

 

 

 

 

 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:return,函数,切片,关键字,参数,def,python3,定义
From: https://www.cnblogs.com/frank1/p/16618676.html

相关文章

  • 如何把thinkphp5的项目迁移到阿里云函数计算来应对流量洪峰?
    原文链接:https://developer.aliyun.com/article/9827461.为什么要迁移到阿里云函数?我的项目是一个节日礼品领取项目,过节的时候会有短时间的流量洪峰。平时访问量很低。......
  • Lazars常用函数
    var i: Integer; Row: String; Parts: TStringArray; S1, S2, S3, S4: String;begin Row :=  '51,40,45,44,44,40,'; Parts......
  • 使用函数计算自定义运行时快速部署一个 SpringBoot 项目 | 文末有礼
    作者:谱一段风华笔墨什么是函数计算阿里云函数计算FC是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准......
  • Go语言 字符串切片转字符串
    []btye可以直接转换成string,但是如果有使用到split函数的需求,然后再str:=string([]string{}),go不支持这样的强转.参考博客:Golang字符切片转字符串不过go的......
  • 【C标准库】详解strerror函数
    创作不易,感谢支持strerror头文件:string.h描述:strerror()函数接受一个参数:errnum,它是一个表示错误代码的整数值。此函数将错误代码转换为说明错误的合适字符串指针并返......
  • 向量距离与相似度函数
    假设当前有两个nn维向量xx和yy (除非特别说明,本文默认依此写法表示向量),可以通过两个向量之间的距离或者相似度来判定这两个向量的相近程度,显然两个向量之间距离越小,相似......
  • python中常见的几个函数
    functionuselen()用来求元组利润表或者字符串等的长度str()将数据转化成字符串类型......
  • vue3 基础-生命周期函数
    在vue中,生命周期函数可理解为"在某个时刻,会自动执行的函数".先直观感受一下图示.一共就八个:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-......
  • js-IIFE-即使调用的函数表达式
    将函数矮化成表达式,一次性函数varfoo=function(){ console.log(2)}();+function(){ console.log(2)}();-function(){ console.log(2)}();!function(){......
  • JavaScript快速入门-06-函数
    6函数6.1函数定义  函数可以封装语句,然后在任何地方、任何时间执行。JavaScript中的函数使用function关键字声明,主要由函数名、函数参数和函数体组成。其基本语法......