代码详解Python的函数基础(1)
作者:FUXI_Willard 发布时间:2023-08-16 17:47:22
标签:Python,函数,基础
1.函数调用
# 1.调用函数,需要知道函数的名称和参数
# 2.调用函数传入的参数需要和函数定义的参数数量和类型一致
# 如调用abs函数
print("-2的绝对值为:",abs(-2))
print("100的绝对值为:",abs(100))
# 3.函数名是指向一个函数对象的引用,可以把函数名赋给一个变量,相当于给这个函数起别名
abs1 = abs # 变量abs1指向abs函数
print("-1的绝对值为:",abs1(-1))
# 结果输出:
-2的绝对值为: 2
100的绝对值为: 100
-1的绝对值为: 1
2.函数定义
# 定义函数使用def
# 语法:
"""
def 函数名(参数1,参数2,...):
函数体
return 返回值
"""
def compareAB(a,b):
if a > b:
print("a值大于b值!")
elif a == b:
print("a值等于b值!")
else:
print("a值小于b值!")
# 调用函数
compareAB(5,3)
# 结果输出:
# a值大于b值!
# 空函数:可以用来作为占位符
def nop():
pass
# 参数检查:Python解释器可以帮我们检查参数个数是否正确,但无法检查参数类型是否正确
# 数据类型检查实例
def myAbs(x):
if not isinstance(x,(int,float)):
raise TypeError("Bad Operand Type.")
if x >= 0:
return x
else:
return -x
# 传入"a"将抛出错误
myAbs("A")
# 结果输出:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-8-21934e00955a> in <module>
15
16 # 传入"a"将抛出错误
---> 17 myAbs("A")
<ipython-input-8-21934e00955a> in myAbs(x)
7 def myAbs(x):
8 if not isinstance(x,(int,float)):
----> 9 raise TypeError("Bad Operand Type.")
10 if x >= 0:
11 return x
TypeError: Bad Operand Type.
# 返回多个值
import math
def move(x,y,step,angle = 0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx,ny
# 获取返回值
x,y = move(100,100,60,math.pi / 6)
print("x的值为%f,\ny的值为%f"%(x,y))
# 结果输出:
# x的值为151.961524,
# y的值为70.000000
# 实例1:由欧拉角转换成对应的四元数
# 由角度计算四元数的值
import math
# yaw:绕z轴旋转的角度;
# pitch:绕y轴旋转的角度;
# roll:绕x轴旋转的角度;
def eulerToQuaternion(yaw,pitch,roll):
w = math.cos(roll/2.0)*math.cos(pitch/2.0)*math.cos(yaw/2.0)+math.sin(roll/2.0)*math.sin(pitch/2.0)*math.sin(yaw/2.0)
x = math.sin(roll/2.0)*math.cos(pitch/2.0)*math.cos(yaw/2.0)-math.cos(roll/2.0)*math.sin(pitch/2.0)*math.sin(yaw/2.0)
y = math.cos(roll/2.0)*math.sin(pitch/2.0)*math.cos(yaw/2.0)+math.sin(roll/2.0)*math.cos(pitch/2.0)*math.sin(yaw/2.0)
z = math.cos(roll/2.0)*math.cos(pitch/2.0)*math.sin(yaw/2.0)-math.sin(roll/2.0)*math.sin(pitch/2.0)*math.cos(yaw/2.0)
return x,y,z,w
# 绕z轴90度
print("绕z轴90度的四元数为:",(eulerToQuaternion(math.pi/2,0,0)))
# 绕y轴90度
print("绕y轴90度的四元数为:",(eulerToQuaternion(0,math.pi/2,0)))
# 绕x轴90度
print("绕x轴90度的四元数为:",(eulerToQuaternion(0,0,math.pi/2)))
# 结果输出:
绕z轴90度的四元数为: (0.0, 0.0, 0.7071067811865476, 0.7071067811865476)
绕y轴90度的四元数为: (0.0, 0.7071067811865476, 0.0, 0.7071067811865476)
绕x轴90度的四元数为: (0.7071067811865476, 0.0, 0.0, 0.7071067811865476)
来源:https://fuxi-willard.blog.csdn.net/article/details/122657365
0
投稿
猜你喜欢
- 网页上的图片如果设置了alt属性,当鼠标移经时就会有tooltip出现,但是只能显示一行文本,有时需要多行文本,乃至图片来显示图片、链接或者
- 本文教大家调用电脑摄像头进行实时人脸+眼睛识别+微笑识别,供大家参考,具体内容如下一、调用电脑摄像头进行实时人脸+眼睛识别# 调用电脑摄像头
- 本文实例讲述了js实现全国省市二级联动下拉选择菜单,分享给大家供大家参考。具体如下:效果图: 具体代码:<html>&
- 项目介绍最近学习django,通过文件上传下载这个小项目,总结下常用的知识点。做这个案例我有以下需求:1.要支持一次上传多个文件2.支持上传
- 本文主要研究的是python读取jpg格式图片并显示为16进制的相关内容,具体如下。代码:>>> aaa = open(&
- 本文实例讲述了PHP模板引擎Smarty中变量的使用方法。分享给大家供大家参考,具体如下:一、概述:Smarty 是 PHP 众多模板引擎中
- 通过学习ASP明明白白你的If语句流程。If condition Then [statements1]E
- 如何限制上传文件的大小?要限制上传大小,只需如下设置一个属性即可: &
- 本文实例讲述了Python闭包和装饰器用法。分享给大家供大家参考,具体如下:Python的装饰器的英文名叫Decorator,作用是完成对一
- 神经网络只是由两个或多个线性网络层叠加,并不能学到新的东西,简单地堆叠网络层,不经过非线性激活函数激活,学到的仍然是线性关系。但是加入激活函
- 本文分享了php结合ajax实现无刷新上传图片的实例代码,分享给大家,希望大家可以和小编一起学习学习,共同进步。1.引入文件<!--图
- 排查原因,发现是80端口被其它程序占用(很常见的事情╮(╯_╰)╭)。解决方法用记事本打开目录x:\xampp\apache\conf下的h
- 一、首先从SQLServer中Error讲起,SQL中错误处理有些怪辟 错误级别同是16但结果都不同。select *
- 线程Threading用于提供线程相关的操作。线程是应用程序中工作的最小单元,它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程
- 本文实例讲述了python实现域名系统(DNS)正向查询的方法。分享给大家供大家参考,具体如下:域名系统(DNS)是一个分布式的数据库,主要
- 1.字符串大小写转换string.title() #将字符串中所有单词的首字母以大写形式显示string.upper() #将字符串中所有字
- 插件下载:blueideasearch.xpi首先第一步 说一下怎么样查看firefox插件的源码, 就我上边写的那个东西,把它下载下来.将
- 1. 引言因为在学习遗传算法路径规划的内容,其中遗传算法中涉及到了种群的初始化,而在路径规划的种群初始化中,种群初始化就是先找到一条条从起点
- 数据可视化的时候,常常需要将多个子图放在同一个画板上进行比较,python 的matplotlib包下的subplot可以帮助完成子功能。p
- 前言人脸识别在LWF(Labeled Faces in the Wild)数据集上人脸识别率现在已经99.7%以上,这个识别率确实非常高了,