睿尔曼超轻量仿人机械臂--Python基础

目录

1. Python说明

1.1 Python简介

 1.2 Python发展历程

1.3 Python特点

2.  Python环境搭建

2.1 Python下载

2.1.1 下载网址

2.2 Python安装

2.2.1  Windows下安装

2.2.2  Linux下安装

 3. Python基础语法

3.1 注释

3.1.1 单行注释

3.1.2 多行注释

3.2 行与缩进

4.  Python数据类型

4.1 字符串

4.1.1 字符串创建

4.1.2 输出字符串中指定位置的字符

 4.2 字典

4.2.1 字典的内置函数与方法

 4.2.2 创建空字典

4.2.3 访问字典里的值 

4.2.4 修改字典键/值 

4.2.5 删除字典元素

 5. Python中的函数

5.1 def 用法

6. Python网络编程 

6.1 Scoket()函数介绍

6.2 创建服务端

6.3 创建客户端 


1. Python说明

1.1 Python简介

Python由荷兰数学计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫作ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

 1.2 Python发展历程

  • Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
  • Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。
  • 像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。
  • 现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。
  • Python 2.0 于 2000 年 10 月 16 日发布,增加了实现完整的垃圾回收,并且支持 Unicode。
  • Python 3.0 于 2008 年 12 月 3 日发布,此版不完全兼容之前的 Python 源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。
  • Python 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。
  • Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。
  • 1.3 Python特点

  • 跨平台性:一个相同且可运行的Python程序可以在多种不同的操作系统上顺利运行,其中包含:windows、Linux、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
  • 扩展性强:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
  • 学习成本低:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身,另外Python也有着极其简单的说明文档,帮助你快速上手。
  • 丰富的标准库:Python标准库十分庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。

2.  Python环境搭建

2.1 Python下载

 目前Python更新了多个版本,在本文中使用Python3.7作为示例,来进行讲解。

2.1.1 下载网址

① 官方下载地址:https://www.python.org/downloads/release/python-370/;

② 在上步骤中打开的网页中找到‘Files’部分,找到适配本地环境的版本,如下图所示:

③ 选择适配的版本,点击即可下载。 

2.2 Python安装

2.2.1  Windows下安装

① 双击打开下载完成的安装包,将下方的‘Add Python 3.7 to PATH’勾选,下一步点击‘Customize installation’,进行自定义安装。

② 在安装界面,选择合适的安装位置进行安装,选择完毕之后单击‘Install’按钮。

 ③ 安装完成之后的测试,在此以windows系统为例,win+R键打开运行窗口,输入cmd打开命令行窗口,输入‘python --version’,点击回车之后下方显示‘python 3.7.0’即说明安装成功,此时即可以使用了。

2.2.2  Linux下安装

Linux下python的安装可以直接通过命令行来完成,命令输入之后等待安装完毕即可。

命令如下所示:

sudo apt-get update
sudo apt-get install python3.7

 3. Python基础语法

在本文中使用PyCharm 作为集成开发环境,后续的程序运行等都在PyCharm 中执行。

3.1 注释

在 Python3 中,注释会使代码更易于阅读和理解但是注释不会影响程序的执行,Python 中的注释有单行注释和多行注释。

3.1.1 单行注释

Python 中单行注释以 # 开头,例如:

#这是一个注释,下方程序含义为控制台输出“hello,world”的字符
print("hello,world")

3.1.2 多行注释

多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:

①单引号(''')

'''
这是1个多行注释
time:2023.08.08
Author:Rop
version:V1.0
'''
print("hello,world")

②双引号(""")

"""
这是一个多行注释
time:2023.08.08
Author:Rop
version:V1.0
"""
print("hello,world")

注意:多行注释可以嵌套使用,但是单行注释不能嵌套使用。

3.2 行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:

if True:
    print ("True")
else:
    print ("False")

以下代码最后一行语句缩进数的空格数不一致,会导致运行错误,:

if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误

PyCharm中报错如下图所示:

4.  Python数据类型

4.1 字符串

4.1.1 字符串创建

字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:

var1 = 'Hello World!'
var2 = "Runoob"
print(var2+var1)

4.1.2 输出字符串中指定位置的字符

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:

字符串名称[头下标:尾下标]

实例说明:

字符串正数的索引:0~N;字符串倒数的索引:-1~-N;

 程序示例:

var1 = "Realman"
print("第四位:"+var1[3])
print("倒数第一位:"+var1[-1])
print("前三位:"+var1[0:3])
print("不输出后2位:"+var1[0:-2])

上述程序运行结果如下图所示:

 4.2 字典

字典是一种可变容器模型,且可存储除‘list’外任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号‘,’分割,整个字典包括在花括号 {} 中 ,格式如下所示:

Realman = {key : value1, key2 : value2, key3 : value3}

在字典中,键是唯一的,但值不必是唯一的。值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

4.2.1 字典的内置函数与方法

内置函数

① len(字典名称)

含义:计算字典元素个数,即键的总数。

②str(字典名称)

含义:输出字典,可以打印的字符串表示。

③typr(字典名称)

含义:返回输入的变量类型,如果变量是字典就返回字典类型。

部分内置方法

①字典名.clear()

含义:删除字典内所有元素

字典名.copy()

含义:返回一个字典的浅复制。

③字典名.fromkeys()

含义:创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

④字典名.get(key, default=None)

含义:返回指定键的值,如果键不在字典中返回 default 设置的默认值

⑤字典名.keys()

含义:返回当前字典中所有键。

⑥字典名.values()

含义:返回当前字典中所有值。

 4.2.2 创建空字典

使用大括号 { } 创建空字典实例

# 使用大括号 {} 来创建空字典
emptyDict = {}
# 打印字典
print(emptyDict)
# 查看字典的数量
print("Length:", len(emptyDict))
# 查看类型
print(type(emptyDict))

以上实例输出结果:

 使用内建函数 dict() 创建字典实例

emptyDict=dict()
# 打印字典
print(emptyDict)
# 查看字典的数量
print("Length:",len(emptyDict))
# 查看类型
print(type(emptyDict))

以上实例输出结果:

4.2.3 访问字典里的值 

把相应的键放入到方括号中,如下实例:

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

以上实例输出结果:

 如果用字典里没有的键访问数据,会输出错误如下:

示例

#创建1个字典
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
#输出1个字典中没有的键
print ("tinydict['Alice']: ", tinydict['Alice'])

以上例输出结果:

4.2.4 修改字典键/值 

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

#创建名为tinydict的字典
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
# 更新 Age
tinydict['Age'] = 8
# 添加信息
tinydict['Realman'] = "RM65"
#输出Age 键
print ("tinydict['Age']: ", tinydict['Age'])
#输出Realman 键
print ("tinydict['Realman']: ", tinydict['Realman'])

以上实例输出结果

 

4.2.5 删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

删除一个字典用del命令,如下实例:

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
# 删除键 'Name'
del tinydict['Name']
# 清空字典
tinydict.clear()
# 删除字典
del tinydict
print("tinydict['Age']: ", tinydict['Age'])
print("tinydict['School']: ", tinydict['School'])

但这会引发一个异常,因为用执行‘del’操作后字典不再存在:

 5. Python中的函数

​​​​​​​5.1 def 用法

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

①创建函数

创建1个函数需要遵循一定的规则,规则如下:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号 : 起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

②语法示例

Python中创建函格式如下:

def 函数名(参数名称):

函数体

③基础函数示例

def realman():

    print("hello,Realman")

realman()

 示例输出:

④函数调用示例

定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

如下实例调用了 printme() 函数:

# 定义名称为printme的函数
def printme(str):
    # 打印任何传入的字符串
    print(str)
    return
# 调用函数并且传入一个字符串
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")

 示例输出结果为:

6. Python网络编程 

Python 提供了两个级别访问的网络服务:

  • 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。
  • 高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

本文中仅对Socket进行讲述。注意:在使用Socket创建连接时,使用完毕之后必须调用close()方法关闭连接。

6.1 Scoket()函数介绍

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

Python3 中,我们用 socket() 函数来创建套接字,语法格式如下:

socket.socket([family[, type[, proto]]])

参数说明:

family: 套接字家族可以是 AF_UNIX 或者 AF_INET

type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM

proto: 一般不填默认为0

Socket对象方法

服务器端方法

①s.bind()

说明:绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。

②s.listen()

说明:开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。

③s.accept()

说明:被动接受TCP客户端连接,(阻塞式)等待连接的到来。

客户端方法

①s.connect()

说明:主动初始化TCP服务器连接,。一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。

②s.connect_ex()

说明:connect()函数的扩展版本,出错时返回出错码,而不是抛出异常

公共方法

s.recv()

说明:接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量。flag提供有关消息的其他信息,通常可以忽略。

s.send()

说明:发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于string的字节大小。

s.close()

说明:关闭套接字

6.2 创建服务端

服务端开启后,会向外广播发送的内容,程序中设置了无限循环,所以程序会持续运行,服务端程序如下所示:

# 导入 socket、sys 模块
import socket
import sys
# 创建 socket 对象
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
port = 9999

# 绑定端口号
serversocket.bind((host, port))
# 设置最大连接数,超过后排队
serversocket.listen(5)
while True:
    # 建立客户端连接
    clientsocket, addr = serversocket.accept()
    print("连接地址: %s" % str(addr))
    msg = '欢迎访问睿尔曼' + "\r\n"
    clientsocket.send(msg.encode('utf-8'))
    clientsocket.close()

客户端未连接服务端情况下,程序运行结果为:

客户端连接服务端之后,程序运行结果为:

6.3 创建客户端 

Socket客户端创建完成,并且连接服务端之后,会接收到服务端向外广播的信息,且服务端可以获得客户端的IP及其他信息。创建客户端程序如下所示:

# 导入 socket、sys 模块
import socket
import sys
# 创建 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 获取本地主机名
host = socket.gethostname()
# 设置端口号
port = 9999
# 连接服务,指定主机和端口
s.connect((host, port))
# 接收小于 1024 字节的数据
msg = s.recv(1024)
s.close()
print (msg.decode('utf-8'))

 客户端接收到服务端对外广播的信息,运行结果如下图所示

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值