代码详解Python的函数基础(1)

 更新时间:2022年01月25日 11:41:27   作者:FUXI_Willard  
这篇文章主要为大家详细介绍了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)
 

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 在Python中使用Protocol Buffers的详细介绍

    在Python中使用Protocol Buffers的详细介绍

    本文详细介绍了协议缓冲区(Protocol Buffers)在Python中的应用,包括其定义、序列化和解析过程,协议缓冲区是一种灵活且高效的自动化解决方案,本文包括了如何将地址簿应用程序的个人详细信息写入文件的示例代码,并提供了相应的下载和安装指导,感兴趣的朋友一起看看吧
    2024-10-10
  • Python3自动生成MySQL数据字典的markdown文本的实现

    Python3自动生成MySQL数据字典的markdown文本的实现

    这篇文章主要介绍了Python3自动生成MySQL数据字典的markdown文本的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Python中GeoJson和bokeh-1的使用讲解

    Python中GeoJson和bokeh-1的使用讲解

    今天小编就为大家分享一篇关于Python中GeoJson和bokeh-1的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 一文带你搞懂Python中的文件操作

    一文带你搞懂Python中的文件操作

    这篇文章主要为大家详细介绍了Python中常见的文件操作的相关资料,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以了解一下
    2022-11-11
  • Python函数值传递引用传递及形式参数和实际参数的区别

    Python函数值传递引用传递及形式参数和实际参数的区别

    这篇文章主要介绍了Python函数值传递引用传递及形式参数和实际参数的区别,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-05-05
  • 使用python解析MDX词典数据并保存为Excel文件

    使用python解析MDX词典数据并保存为Excel文件

    MDX(Mobile Dictionary eXchange)是一种常见的词典文件格式,通常用于在移动设备和电脑之间共享辞典数据,本文深入探讨了从MDX词典数据提取、处理到最终保存为Excel文件的全过程,需要的朋友可以参考下
    2023-12-12
  • Python标准库中的logging用法示例详解

    Python标准库中的logging用法示例详解

    logging是Python标准库中记录常用的记录日志库,通过logging模块存储各种格式的日志,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等,这篇文章主要介绍了Python标准库中的logging,需要的朋友可以参考下
    2022-09-09
  • Python的Scrapy框架中的CrawlSpider介绍和使用

    Python的Scrapy框架中的CrawlSpider介绍和使用

    这篇文章主要介绍了Python的Scrapy框架中的CrawlSpider介绍和使用,CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生除了其自己独有的更加强大的特性和功能,其中最显著的功能就是"LinkExtractors链接提取器",需要的朋友可以参考下
    2023-12-12
  • Python中的列表生成式与生成器学习教程

    Python中的列表生成式与生成器学习教程

    这篇文章主要介绍了Python中的列表生成式与生成器学习教程,Python中的Generator生成器比列表生成式功能更为强大,需要的朋友可以参考下
    2016-03-03
  • PyTorch中Tensor的数据类型和运算的使用

    PyTorch中Tensor的数据类型和运算的使用

    这篇文章主要介绍了PyTorch中Tensor的数据类型和运算的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09

最新评论