Python学习4

  • 函数关键字
    关键字是python内置的,具有特殊意义的标识符,自定义标识符命名时不可与之重复。可通过以下代码查看python内置的关键字内容
import keyword
print(keyword.kwlist)

[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

共有33个关键字。
在这里插入图片描述

  • Python 函数
  • 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
    定义一个函数
    你可以定义一个由自己想要功能的函数,以下是简单的规则:
    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
    任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    函数内容以冒号起始,并且缩进。
    return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

以下为一个简单的Python函数,它将一个字符串作为传入参数,再打印到标准显示设备上。

def printme( str ):
   "打印传入的字符串到标准显示设备上"
   print str
   return

python作为一个动态语言其函数的参数也很“动态”。
参数可能有的情况:必选参数、默认参数、可变参数、关键字参数、命名关键字参数

function(a,b=1,*c,**d,*,e)

1.位置参数(正常传参)
就是固定的参数,函数中定义多少个参数,调用函数的时候后就传递多好个参数。
例如:


# 位置参数

def power(x,n):
    num=0
    while n>1:
        num=num+x*x
        n=n-1
    return num
print(power(2,5))#16

2.默认参数(给定一个默认值)
首先注意:
(1)默认参数要放在最后面,不然会有误会,编译器不知道从哪个数开始算他不是默认参数
(2)默认参数必须指向不变对象
当函数中有部分参数的值在大部分时间是固定的时候,可以预先给它一个值。不用每一次都输入。当然有特殊情况的时候依然可以给它附一个新的值。
例如:power函数大部分时间计算平方根,则此时把n默认赋值为2。

def power(x,n=2):
    num=0
    while n>1:
        num=num+x*x
        n=n-1
    return num
print(power(2))  #4

3.可变参数(*加参数名,表示此参数可变)
第1种方式:
可变的参数指的是列表(list),数组(tuple).因为其中的数据是可以改变的,将列表和数组作为参数传入函数中,所以函数的参数也是可变的。
例如:power函数

*第一种方法:使用 ** 放在参数名前,作为可变参数的标志

def calc(*number):
    sum = 0
    for n in number:
        print ('n=',n)
        print(sum)
        sum = sum + n * n
    return sum
number=[2,5]
print('calc',calc(number[0],number[1]))  #29
#这里如果要使用列表的话,一定要如此写,不然会有:IndexError: tuple index out of range的报错

第2种方式:将*放在被传递的参数前

def calc(number0,number1):
    sum = 0
    while number1>1:
        sum = sum + number0* number0
        number1-= 1
    return sum
print(calc(*[2,5])) #16

4.关键字参数(**加参数名,可以传入不同的参数)
函数可以传入不指定个数的参数。
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

当想要多传参数的时候,需要带上参数名。

def information(name,**kwargs):
    print('name,dosomething:',name,kwargs)
information('simple1_6',something='write python blog')
#name,dosomething: simple1_6 {'something': 'write python blog'}

5.命名关键字参数(参数+*+参数,后面的参数都是可变参数)

def information(name,something,*,zhuangtai):
    print("name:",name,'do',something,'zhuangtai:',zhuangtai)
information('simple1_6','write python blog',zhuangtai='come')
#name: simple1_6 do write python blog zhuangtai: come

args and **kwargs
args和kwargs只是为了方便并没有强制使用它们.
当你不确定你的函数里将要传递多少参数时你可以用args.例如,它可以传递任意数量的参数:
相似的,**kwargs允许你使用没有事先定义的参数名:
你也可以混着用.命名参数首先获得参数值然后所有的其他参数都传递给
args和
kwargs.命名参数在列表的最前端.
args和**kwargs可以同时在函数的定义中,但是args必须在**kwargs前面.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值