首页 - 文章教程 - 正文

1.python编程入门

0x00 python编程语言简介

Python 是一门简单易学且功能强大的编程语言,它拥有高效的高级数据结构,并且能够用简单而又高效的方式进行面向对象编程.Python 优雅的语法和动态类型,再结合它的解释性,使其在大多数平台的许多领域成为编写脚本或开发应用程序的理想语言,尤其是在ROS程序开发时python更是占据了半壁江山,掌握python开发是进行ROS程序开发的必备基础知识.

timg (1).jpeg


0x01 搭建编程环境

在不同的操作系统中python存在一些差别,但是在这里只介绍在ubuntu系统下的环境搭建,一般默认的情况下ubuntu都会默认安装python2.7版本的,但是现在大趋势在往python3.x上发展,Python核心团队也计划在2020年停止支持Python2了,所以建议大家以后在开发python程序时尽量都用python3版本.如果想查看自己安装的默认python版本可以直接在终端中输入python即可启动python解释器:

Screenshot from 2018-04-03 15:33:03.png

当需要使用python3版本时需要先安装,对于不同版本的ubuntu默认的python3.x版本不同,我现在使用的是ubuntu14.04,这个上的python是3.4版本,直接使用如下命令来安装:

sudo apt-get install python3.4

要想进入python3直接在终端中输入python3即可:

Screenshot from 2018-04-03 16:08:02.png

当安装了python2和python3两个版本时,如果想设置python3为默认的python版本时可按照如下来操作,使用update-alternatives 来为整个系统更改Python默认版本:

Screenshot from 2018-04-03 16:34:54.png

当使用sudo update-alternatives --list python来列出所有可用的python版本时提示:error: no alternatives for python,那说明Python 的替代版本尚未被 update-alternatives 命令识别.想解决这个问题,我们需要更新一下替代列表,将python2.7和python3.4放入其中,使用如下命令将python2.7和python3.4加入到python列表中:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2

--install选项使用了多个参数用于创建符号链接,最后一个参数指定了此选项的优先级,如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中.这个例子中我们为 /usr/bin/python3.4设置的优先级为2,所以update-alternatives 命令会自动将它设置为默认Python版本.

当再次使用sudo update-alternatives --list python就可以列出来各个python版本,接下来就可以来更换默认的python版本了,如下图所示:

Screenshot from 2018-04-03 16:42:34.png


0x02 认识变量

python中使用变量存储基本的信息,使用方法跟我们以前常用的其他编程语言基本上类似:

corvin@workspace:~$ python
Python 3.4.3 (default, Nov 28 2017, 16:41:13) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> message = "Hello World!"
>>> print(message)
Hello World!
>>> 
>>> message = "Hello Corvin!"
>>> print(message)
Hello Corvin!

我们创建了一个message变量,python解释器将"Hello World!"文本与变量message相关联,当调用print时将与message关联的文本打印输出到屏幕上.跟其他编程语言类似,这个message变量还可以被修改,我们下面使用了"Hello Corvin!"文本来更新了message变量,这次再调用print则打印最新的文本内容.

在python中使用变量时,需要遵守一些规则,违反这些规则可能会导致错误:

(1)变量名只能包含字母,数字和下划线,变量名可以用字母或下划线开头,但是不能用数字开头.

(2)变量名不能包含空格,使用下划线来分割单词.

(3)不要使用python关键字和函数名用作变量名,python关键字和内置函数列表如下:

Screenshot from 2018-04-03 17:23:47.png

Screenshot from 2018-04-03 17:27:32.png

(4)变量名应该又简短又具有描述性,例如使用msg作为变量存储消息就比m更好.

(5)慎用小写字母l和大写字母O,因为很容易就跟数字1和0混淆.


0x03 字符串操作

(1)首先学习如何对字符串操作,使用方法来修改字符串的大小写:

corvin@workspace:~$ python
Python 3.4.3 (default, Nov 28 2017, 16:41:13) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> name = "corvin zhang"
>>> print(name.title())
Corvin Zhang
>>> 
>>> print(name.upper())
CORVIN ZHANG
>>> 
>>> name = "CORVIN zhang"
>>> print(name.lower())
corvin zhang
>>> print(name)
CORVIN zhang

(2)合并拼接字符串

如果设置了python2.7为默认的python版本的话,使用python3来启动python3.x的解释器,字符串常用的拼接操作如下所示:

corvin@workspace:~$ python3
Python 3.4.3 (default, Nov 28 2017, 16:41:13) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> first_name = "corvin"
>>> last_name = "zhang"
>>> full_name = first_name + " " + last_name
>>> print(full_name)
corvin zhang
>>> 
>>> print("hello, " + full_name.title())
hello, Corvin Zhang
>>> 
>>> msg = "hello, " + full_name.title() + ", how are you?"
>>> print(msg)
hello, Corvin Zhang, how are you?
>>>

(3)删除字符串中的空白

我们经常需要比较两个字符串是否相同,例如在登陆帐号时,用户名中包含多余空格的话就需要将其剔除,然后再进行比较,在python中对字符串空白操作非常的简单.

>>> name = " corvin "
>>> name.rstrip()
' corvin'
>>> 
>>> name.lstrip()
'corvin '
>>> 
>>> name.strip()
'corvin'
>>> name
' corvin '
>>>

其中rstrip()就是right strip将字符串的右边空白给删除,lstrip()就是left strip将字符串左边空白给删除,strip()就是将字符串中的所有空白都删除.

(4)正确使用双引号

如果在字符串中包含了单引号的话就需要使用双引号来将字符串包含起来,此时再使用单引号的话就会报错了,因为会跟字符串中的单引号冲突了:

>>> msg = 'Ok, It's ok!'
  File "<stdin>", line 1
    msg = 'Ok, It's ok!'
                  ^
SyntaxError: invalid syntax
>>> msg = "Ok, It's ok!"
>>> msg
"Ok, It's ok!"

0x04 数字操作

(1)基本的运算

>>> 3+4
7
>>> 5-9
-4
>>> 7*3
21
>>> 6/4
1.5
>>> 3**2
9
>>> 4**3
64
>>> 2+4*3
14
>>> (2+9)*3
33
>>>

(2)使用函数str()将数字转换为字符串形式

>>> cnt = 3
>>> tip = "I have " + cnt + " apples!"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> 
>>> tip = "I have " + str(cnt) + " apples!"
>>> print(tip)
I have 3 apples!
>>>

TypeError类型错误,说明python无法识别你使用的信息,对cnt这个变量不知道是解释成数值3还是字符串3,因此我们就需要使用str()来显示的指出想要python将cnt翻译成字符串操作.


0x05 注意事项

[1].当修改默认的python版本从2.7到3.x的时候,如果发现系统启动或者运行软件的时候不正常了,那就说明一些软件的正常运行是依据python2.7的,需要将默认版本改成python2.7即可.

[2].以上所有的演示操作都是在python3.x的版本中进行的,为了让大家更快的熟悉python3.x的编程习惯.

[3].在python中使用井号(#)来作为注释标识,即在#号后面的代码都会被python解释器忽略.


0x06 参考资料

[1].Eric Matthes 著 袁国忠 译. Python编程从入门到实践[M]. 北京:中国工信出版社 人民邮电出版社. 2017. 15-30

[2].Python入门指南网址[OL]. http://www.runoob.com/manual/pythontutorial3/docs/html/


0x07 问题反馈

大家在按照教程操作过程中有任何问题,可以关注ROS小课堂的官方微信公众号,在公众号中给我发消息反馈问题即可,我基本上每天都会处理公众号中的留言!当然如果你要是顺便给ROS小课堂打个赏,我也会感激不尽的,打赏30块还会邀请进ROS小课堂的微信群与更多志同道合的小伙伴一起学习和交流!

1516851765432601.jpg

发表评论