# def my_abs(x):
# if not isinstance(x,(int,float)):#参数类型做检查,只允许整数和浮点数类型的参数。数据类型检查可以用内置函数isinstance()
# raise TypeError('错误的数据类型')
# if x >= 0:
# return x
# else:
# return -x
# print(my_abs(-300))
# print(my_abs('abc')) # import math
# def move(x,y,step,angle=0):
# nx = x + step * math.cos(angle)
# ny = y + step * math.sin(angle)
# return nx,ny#返回值是一个tuple
# print(move(100,70,60,math.pi/6)) # def nop():
# pass#pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来
# print(nop()) #位置参数
# def add(x):
# return x + 1
# print(add(1)) #默认参数
#一是必选参数在前,默认参数在后,否则Python的解释器会报错。
#当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
# def power(x,n=2,y=6):
# s = 1
# print(y)
# while n > 0:
# n = n - 1
# s = s * x
# return s
# print(power(5,2))
# print(power(10))
# print(power(5,y=200))#默认参数可以指定参数名称来传参,y参数用传进去的值,其他默认参数继续使用默认值。 # #定义默认参数要牢记一点:默认参数必须指向不变对象l=[],用l=None这个不变对象来代替l=[]。
# def arr(l=None):
# if l is None:
# l = []
# l.append('abc')
# return l
# print(arr()) #可变参数
# def calc(*numbers):#定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号,函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变
# sum = 0
# for num in numbers:
# sum = sum + num * num
# return sum
# print(calc(1,2,3,4,5,6))
# print(calc())#调用该函数时,可以传入任意个参数,包括0个参数 # nums = [1,2,3,4,5,6,7,8,9]
# print(calc(*nums))#*nums表示把nums这个list的所有元素作为可变参数传进去 #关键字参数
# def person(name,age,**kw):#关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
# print('name',name,'age',age,'other',kw)
# person('傻狗1',100,city='傻狗2') # extra = {'city':'傻狗4','job':'傻狗5'}
# person('傻狗3',200,**extra)#相当于person('傻狗3', 200, city=extra['city'], job=extra['job'])
#**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。 #命名关键字参数
# def person(name,age,*,city,job):#命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数
# print(name,age,city,job)
# person('傻狗1',100,city='傻狗3',job='傻狗4')
# def person(name,age,*args,city='傻狗2',job):#如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
# print(name,age,args,city,job)
# arr = [1,2,3]
# person('傻狗1',100,*arr,city='傻狗2',job='傻狗3')
# person('傻狗1',100,*arr,job='傻狗3')#命名关键字参数city具有默认值,调用时,可不传入city参数 #参数组合
#可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
# def person(name,age=100,*args,city,**kw):
# print(name,age,args,city,kw)
# arr = [1,2,3]
# extra = {'job1':'傻狗3','job2':'傻狗4'}
# person('傻狗1',200,*arr,city='傻狗2',**extra) # arr1 = ['傻狗1',200,1,2,3]
# extra1 = {'city':'傻狗2','job1':'傻狗3','job2':'傻狗4'}
# person(*arr1,**extra1)#对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的 def product(*args):
sum = 1
for num in args:
sum = num * sum
return sum
arr = 1,2,3,4,5,6
print(product(*arr)) #默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误。
#*args是可变参数,args接收的是一个tuple。
#**kw是关键字参数,kw接收的是一个dict。
#可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3))。
#关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。

Python基础(普通函数及参数)的更多相关文章

  1. python基础——匿名函数

    python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.  在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...

  2. python基础——返回函数

    python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回.  我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...

  3. python基础——sorted()函数

    python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...

  4. python基础——filter函数

    python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  5. Python基础__函数

    本节将进入函数的介绍,函数是Python基础中最精彩的部分之一,接下来将对函数做详细介绍.函数 函数就是对代码进行一个封装.把实现某一功能的代码进行封装到一起.下次需要使用时不需要进行编写代码直接调用 ...

  6. python基础——匿名函数及递归函数

    python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...

  7. 八. Python基础(8)--函数

    八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x):     ' ...

  8. python基础之函数详解

    Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...

  9. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  10. python3 速查参考- python基础 6 -> 函数编程之参数、变量、作用域、递归、匿名函数 lambda

    函数基础 1. 速查笔记 #-- 函数相关的语句和表达式 myfunc('spam') # 函数调用 def myfunc(): # 函数定义 return None # 函数返回值 global a ...

随机推荐

  1. 博客调网易云歌单JS

    <!--音乐--> <link rel="stylesheet" href="https://blog-static.cnblogs.com/files ...

  2. mysql int(3)与int(10)的数值范围相同吗?

    提问: mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同.如果不同,分别是多大? 回答: 不同,int(3)最多显示3位无符号整体,in ...

  3. js高阶

    1. 面向对象编程介绍 1.1 两大编程思想 --- 面向过程 --- 面向对象 1.2 面向过程编程 POP 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候在一 ...

  4. Serverless 在大规模数据处理的实践

    作者 | 西流 阿里云技术专家 前言 当您第一次接触 Serverless 的时候,有一个不那么明显的新使用方式:与传统的基于服务器的方法相比,Serverless 服务平台可以使您的应用快速水平扩展 ...

  5. Ysoserial Commons Collections3分析

    Ysoserial Commons Collections3分析 写在前面 CommonsCollections Gadget Chains CommonsCollection Version JDK ...

  6. 2020.10.10--pta阶梯赛练习2补题

    7-3.N个数求和 本题的要求很简单,就是求N个数字的和.麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式. 输入格式: 输入第一行给出一个正整数N(≤100).随后 ...

  7. DataX的安装及使用

    DataX的安装及使用 目录 DataX的安装及使用 DataX的安装 DataX的使用 stream2stream 编写配置文件stream2stream.json 执行同步任务 执行结果 mysq ...

  8. Dapr-服务调用

    前言 上一篇对Dapr进行了了解,并搭建了Dapr环境.接下来就对Dapr的各个构建块类型的了解.应用实际案例. 一.服务调用: 在许多具有多个需要相互通信的服务的环境中,都会面临着很多问题. 如: ...

  9. 【c++ Prime 学习笔记】第9章 顺序容器

    一个容器是特定类型对象的集合 顺序容器中元素的顺序与其加入容器的位置对应 关联容器中元素的顺序由其关联的关键字决定,关联容器分为有序关联容器和无序关联容器 所有容器类共享公有接口,不同容器按不同方式扩 ...

  10. 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志

    问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...