🎉欢迎来到Python专栏~Python基础知识总结
- ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹
- ✨博客主页:小夏与酒的博客
- 🎈该系列文章专栏:Python学习专栏
- 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
- 📜 欢迎大家关注! ❤️
🎉 目录-Python基础知识总结
- 一、说明
- 二、基础语法
- 2.1 缩进规则
- 2.2 函数
- 2.3 数据类型
- 2.4 顺序语句结构
- 2.5 条件和分支
- 2.6 循环
一、说明
Python技能树:Python入门技能树。
版本:Python 3.10。
IDE:PyCharm。
二、基础语法
2.1 缩进规则
🔸缩进对程序的影响
1、缩进不符合规则,解析器会报缩进错误,程序无法运行。
2、缩进的位置不同,程序执行的效果也可能产生差异。
🔸缩进量与缩进字符
Python可以使用空格或制表符(Tab符)标记缩进。缩进量(字符个数)不限。
A、空格和tab符通常都以空白形式显示,混用不容易区分,影响代码阅读,增加维护及调试的困难。 因此 Python PEP8 编码规范,指导使用4个空格作为缩进。
B、实际开发,代码规模较大,缩进深度的影响,会选择2个空格做为缩进,更易于阅读。
2.2 函数
🔸基本内置函数
Python语言中自带的函数叫做内建函数,这些内建函数对大部分常用操作进行有效封装,可以直接调用,为开发提供了极大便利。由于内建函数是Python语言内置的函数,因此不需要导入任何函数库即可直接调用。
内建函数:内建函数也叫内置函数,即系统已经定义好的函数,开发者可以直接调用。
参考链接:python常见的内置函数。
在Python语言中,除内建函数外的其他类型函数通常被称为第三方函数。
🔸第三方函数一般是由其它开发者或组织针对某些特定需求编写的函数库,并共享给大家使用。Python语言的强大功能,也正是得益于其丰富的第三方函数库。不管是内建函数,还是第三方函数,在Python语言中都可以非常方便的使用。
🔸要成功调用一个内建函数或第三方函数,首先需要知道的是该函数的准确名称和参数列表信息。如求绝对值的内建函数abs()有一个数值类型参数。
例如通过大族机器人官方给出的SDK来控制机械臂进行运动:
from CPS import CPSClient# 定义运动类型
nMoveType = 0
# 定义工具坐标变量
sTcpName = "TCP"
# 定义用户坐标变量
sUcsName = "Base"
# 定义运动速度
dVelocity = 120
# 定义运动加速度
dAcc = 50
# 定义过渡半径
dRadius = 50
# 定义是否使用关节角度
nIsUseJoint = 1
# 定义是否使用检测 DI 停止
nIsSeek = 0
# 定义检测的 DI 索引
nIOBit = 0
# 定义检测的 DI 状态
nIOState = 0
# 定义路点 ID
nstdCmdID = "0"if __name__ == '__main__':#声明对象cps = CPSClient()#创建连接cps.HRIF_Connect(0, '192.168.0.10', 10003)#读取当前状态机result = []cps.HRIF_ReadCurFSM(0,0,result)#如果当前为去使能状态则上使能if result[0] == '24':cps.HRIF_GrpEnable(0,0)#等待上使能完成while 1:#上使能需要时间,持续判断状态机,直到达到机器人就绪状态为止cps.HRIF_ReadCurFSM(0,0,result)print(result)if result[0] == '33':break#循环执行[0,0,90,0,90,0]与[90,0,90,0,90,0]两点间的运动while 1:# 坐标点对应关节顺序为从下到上#复位程序cps.HRIF_WayPoint(0, 0, nMoveType, [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], sTcpName, sUcsName, dVelocity,dAcc, dRadius, nIsUseJoint, nIsSeek, nIOBit, nIOState, nstdCmdID)# 等待运动完成cps.waitMovementDone(0, 0, [0, 0])cps.HRIF_WayPoint(0, 0, nMoveType, [0, 0, 0, 0, 0, 0], [40, 35, 40, 65, 50, 0], sTcpName, sUcsName, dVelocity, dAcc, dRadius, nIsUseJoint, nIsSeek, nIOBit, nIOState, nstdCmdID)#等待运动完成cps.waitMovementDone(0, 0, [0, 0])cps.HRIF_WayPoint(0, 0, nMoveType, [0, 0, 0, 0, 0, 0], [90, 0, 90, 0, 90, 0], sTcpName, sUcsName, dVelocity,dAcc, dRadius, nIsUseJoint, nIsSeek, nIOBit, nIOState, nstdCmdID)#等待运动完成cps.waitMovementDone(0, 0, [0, 0])cps.HRIF_WayPoint(0, 0, nMoveType, [0, 0, 0, 0, 0, 0], [-90, 0, 90, 0, 90, 0], sTcpName, sUcsName, dVelocity,dAcc, dRadius, nIsUseJoint, nIsSeek, nIOBit, nIOState, nstdCmdID)#等待运动完成cps.waitMovementDone(0, 0, [0, 0])
效果展示见如下视频:
Python_SDK 控制大族机器人机械臂
🔸定义函数需要符合的规则
简单函数的定义:
def print_Hi(str):print("Hi,",str)print_Hi("Python")
输出结果:
Hi, Python
📜通常情况下,在Python语言中定义一个具有特定功能的函数需要符合以下规则:
- 函数代码块以def关键字开头,后接函数标识符名称和形参列表;
- 任何传入的参数和自变量必须放在圆括号内;
- 函数的第一行语句可以选择性地使用文档字符串(即函数说明);
- 函数内容以冒号起始,并且严格统一缩进;
- 函数都有返回值,默认返回None。
关于形参和实参:
在编程语言中,函数定义时用的是形参,调用时用的是实参。
🔸形参(parameter),全称为"形式参数",不是实际存在的变量,又称虚拟变量。形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。
🔸实参(argument),全称为"实际参数",是在调用时传递给函数的参数。实参可以是常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。
🔸形参和实参的功能是数据传送。
在调用函数时,实参将赋值给形参。必须注意实参的个数、类型应与形参要一一对应,并且实参必须要有确定的值。形参的作用域一般仅限函数体内部,而实参的作用域根据实际设置而定。
🔸函数的返回值
-
函数的返回值是函数执行完成后,系统根据函数的具体定义返回给外部调用者的值。
-
在实际开发中,有时不仅仅要执行某个函数的功能,而且还需要把该函数的执行结果作为其他函数或功能的计算单元。所以,函数返回值是非常有用的。
-
在Python语言中,当函数运行到return语句时即执行完毕,同时将结果返回。因此,可以在函数内部通过条件判断和循环设置实现较复杂的逻辑,并返回预期的结果。如果没有return语句,函数体内所有语句执行完毕后默认返回None。
例如:
def Adder(a,b):return a + bdef Suber(a,b):c = abs(a - b)result = Suber(1,2)print(Adder(1,4))
print(result)
输出结果:
5
None
关于函数的参数、高阶函数和匿名函数会在后续的文章中讲解。
2.3 数据类型
和其他编程语言相比,Python语言中的变量不需要显示数据类型的声明,Python的变量类型是根据变量的赋值内容而自动生成的。
Python 六大数据类型:
🔸数字: 包含int(整型)、long(长整型,但python3中已经没有了,python3中只有int)、complex(复数)、float(浮点型)、bool(布尔型)。
🔸字符串(String): 比如:“hello world”,“python”。
🔸列表(List): 比如:[1,2,3,4],[’a‘,‘b’,‘c’,‘d’]。
🔸字典(Dictionary):例如:{“name”:“poge”,“age”:30}。
🔸元组(Tuple): 例如:(1,‘hello’,3)。
🔸集合(Set):例如:{’a‘,’b‘,’c‘,’d‘}。
2.4 顺序语句结构
顺序结构是最简单也是最常见的一种结构,采用顺序结构的程序通常按照由前到后的顺序执行各个语句,直到程序结束,结构如下所示:
2.5 条件和分支
🔸单分支选择结构:
if 判断条件:代码段
- 若if语句中的判断条件成立,执行if语句后的代码段;
- 若判断条件不成立,则跳过if语句后的代码段。
- 单分支结构中的代码段只有“执行”与“跳过”两种情况
🔸双分支选择结构:
if 判断条件:代码段1
else:代码段2
- 若if语句中的判断条件成立,执行代码段1
- 若判断条件不成立,则执行代码段2
🔸多分支选择结构:
if 判断条件1:代码段1
elif 判断条件2:代码段2
......
elif 判断条件n:代码段n
else:代码段n+1
🔸选择结构的嵌套:
if 判断条件1:代码段1if 判断条件2:代码段2
else:代码段3if 判断条件3:代码段4else:代码段5
2.6 循环
🔸while循环:
while 循环条件:代码段
- 若循环条件为True,则循环执行while循环中的代码段;
- 若循环条件为False,终止while循环。
- 若while循环的条件总是True,这种情况叫做死循环 。
🔸for循环:
for 循环变量 in 目标代码段
- 目标可以是字符串、文件、range()函数或组合数据类型等;
- 循环变量用于保存本次循环中访问到的遍历结构中的元素;
- for循环的循环次数取决于遍历的目标元素个数。
#遍历字符串中的每个字符
string = input("请输入一个字符串:")
for c in string:print(c)
#计算1+2+3+...+9+10的和
sum = 0
for x in range(11):sum = sum + x
print(sum)
#输出结果:55
🔸循环控制语句:
在循环语句中,有时候需要达到中断循环,或者跳过本次循环,执行下次循环的情况,因此就需要有循环控制语句。
python中使用break、continue语句控制循环的执行过程。
✨break语句:
break用于跳出整个循环。
while 循环条件:代码段1if 判断条件:break代码段2
for 循环变量 in 目标:代码段1if 判断条件:break代码段2
✨continue语句:
continue用于跳出本次循环,继续执行下次循环。
while 循环条件:代码段1if 判断条件:continue代码段2
for 循环变量 in 目标:代码段1if 判断条件:continue代码段2
✨pass语句:
pass的意思是过,pass掉就是淘汰掉的意思。
在python中,pass的意思是空语句,pass语句不做任何事情,只是为了保持程序结构的完整性。
关于循环语句的讲解,详细参考:Python基础-循环语句(while循环与for循环)。
🧸结尾
- ❤️ 感谢您的支持和鼓励! 😊🙏
- 📜您可能感兴趣的内容:
- 【FPGA零基础学习之旅#9】状态机基础知识
- 【FPGA零基础学习之旅#8】阻塞赋值与非阻塞赋值讲解
- 【Arduino TinyGo】【最新】使用Go语言编写Arduino-环境搭建和点亮LED灯
- 【全网首发开源教程】【Labview机器人仿真与控制】Labview与Solidworks多路支配关系-四足爬行机器人仿真与控制