前言
我为什么会接触Python?
小元是开发驱动底层的,比驱动还底层,没错就是底层设备内部程序。驱动层以下都是 C 的天下, 我为什么会接触到 Python?
2010 年的时候, 那时候 python 还没火, 那时候我就跟着MIT公开课认识了python。
2018 年,在我的客户那里看到客户测试我们的eMMC 存储器,用的是python, 可直接执行单个测试用例,给我的感触很大。因为在这之前我的上层软件都是 C++ 写的, 修改测试用例后,需要把整个项目编译一遍,Time is too long。
小元感觉到 python 是新趋势,觉得要学好 Python 了~
1. Python
如何让电脑理解我的python语言
在 w3cschool 课堂学了点Python 语法, 小元决定要小试牛刀了。
美好的编程从 “Hello World 开始”。
我应该先找个翻译,没错,就是将我的代码翻译给机器来执行。 看来先要装一个 python 软件。
Python 是很容易理解, 上手简单。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
新问题
理论上我可以在这个黑框中,一行一行敲入我想执行的任何指令。不过这样效率太低了。 如果我敲错一句话, 就要重复把前面的语句再输入一遍。
2. Notepad++
我可以建立一个 .py 文件啊。 编辑 .py 我选择 NotePad++
可以高亮文字,突出函数和变量,可读性好多了。
Notepad++ 不仅有语法高亮度显示,也有语法折叠功能, 还是免费的。
装了 Notepad++,不光编程时候可用,平常编写文档/搜索文字也超方便。
新问题:
代码显示解决了, 可代码编译还是要在这个黑框里一步一步敲。Python 这个界面就像 DOS 界面一样,丑爆了。
3. PyCharm
有没有又好用、又好上手的集成 IDE ?
有的,PyCharm 登场了。
PyCharm是一种Python IDE(集成开发环境),可以帮助小元在开发时提高效率,比如调试、语法高亮、智能提示。
说到这个智能提示就很有意思, 当代码有语法错误,它会建议你怎么修复。当有package 没有包含时, PyCharm 也会提示,可以一键 install package。真是一个好帮手。
新需求
玩了一段时间,小元已经不满足于写个 hello world, 写个排序算法了。能不能用python做点好玩的? 比如写个游戏。
我明明可以凭实力从无到有,构建一个游戏大厦的。但我偏不,所谓站在巨人的肩膀上,才能看得更远。这个“巨人”就是 Pygame
4. Pygame
如果用 Python 做点好玩的
Pygame包含图像、声音。游戏研发无需被低级语言(如机器语言和汇编语言)束缚。所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身。小元只需关注游戏规则即可。
Pygame 让游戏开发像比写个冒泡排序还简单,瞧瞧这多有趣。如果你会美工,自己可以做漂亮的图就更美轮美奂了。
新问题
欢乐是欢乐,但我也有一个快乐的烦恼。
5. Source Insight
随着功能越来越多,代码工程也越来越复杂, 代码文件、资源、函数、变量数目成千上百地增加。这时候搜索变量引用,函数调用层级就很头疼。坦白讲 PyCharm 在这方面很不灵活。
代码如何高效地阅读/查找代码?
还好我找到一个好帮手, Source Insight.
Source Insight是项目开发的程序编辑器和代码浏览器。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。
# 子弹碰钢板if tank_player.bullet.stronger:if pygame.sprite.spritecollide(tank_player.bullet, map_stage.ironGroup,True,None):
tank_player.bullet.being =Falseelse:if pygame.sprite.spritecollide(tank_player.bullet, map_stage.ironGroup,False,None):
tank_player.bullet.being =False
想知道哪里引用了子弹的 stronger (超强子弹可穿钢板)属性, 就可以一键全搜出来。
6. UltraCompare
代码备份与差异对比
如果改代码怕改错了怎么办? 有时候我们可能加个调试代码,有时候修个缺陷,有时候改个新特性, 又或者重构下代码?
但是糟糕, 第二天忘记改了啥了。。。
咋办呀? 今天把代码备份下, 或者在修改之前, 把当前正常运行正常的代码备份下。 文件夹A 复制一个副本 文件夹B. 就可以用 UltraCompare 比较了。
一天两天备份文件夹还行,如果几个月每天备份, 又或者每天修改多个功能? 这么多文件夹就凌乱了。 而且回退代码要一行一行复制粘贴回去,多麻烦了?
有咩有好的代码版本管理工具?
7. TortoiseSVN
因为公司用的代码管理工具是TortoiseSVN(简称 SVN), 第一个想到的是在家里电脑装一个Subversion 客户端 TortoiseSVN。
TortoiseSVN 的确是很强大,使用也很方便。下载Checkout、更新 Update、提交 Commit,日常学会这三个命令就可以了。
但一般要搭建代码服务器,TortoiseSVN 安装包也不是很好得到。
小元这就放弃了? 不存在的。
8. GitCode
小元经常在 CSDN, CSDN 有一个 GitCode 入口, 直达GitCode, 共用账密。 这不就是我要的代码管理工具吗?
真是踏破铁鞋无觅处,得来全不费功夫。
用上GitCode, 小元什么时候改了什么代码, 为什么修改, 都可一目了然
这个还允许我和我的伙伴们一起编写同一份项目代码, 优秀吧。
GitCode 怎么用? 小元教你
GIT教程(图文版)— 注册、安装、代码管理(项目创建、密钥、下载、提交,协作), 一一分解
9. 云 IDE
如何让我的小伙伴和我同步环境?
小元和伙伴们都在开发这个项目,即便是个人兴趣项目,我们还是遇到了一个困难。
新问题:
小元这边的程序运行好好的,上传GitCode 后。
小元的伙伴运行不起来,排查发现是IDE 不一致。
小元的伙伴运行出错, 排查是缺少package。
这种问题说起来小,但排查可是很费时间和脑细胞。小元不想再被这个问题纠缠了, 找到了一个外援——云IDE
GIT项目地址 https://gitcode.net/vagrant0407/tank_pygame
前面加 ide 改成
https://
i
d
e
\color {#FF6D00}{ide}
idegitcode.net/vagrant0407/tank_pygame
就打开我的 CSDN 云IDE 了。
云IDE 就是小元不需要在本地安装 IDE, 服务器上有集成 VSCode IDE(继承了很多语言的IDE), 省掉小元找安装包、安装、配置。
小元可以在线编译。哪天小元换了台电脑, 也不需重新装编译环境了。
云 IDE 有很多智能的快捷操作, 比如自动对齐,体验很好。云 IDE 的使用习惯和本地 IDE 使用习惯近乎相同。
云 IDE 还是一个新生事物,小元也在体验和探索中~
10. CSDN Blog
写在最后的话 —— 项目复盘
就像是我今天捡到一片枫叶,又像是我明天拾到一颗枝桠。这些积攒的枫叶、枝桠就只能是一堆柴火。 如果我跳出漂亮、奇特的枝叶,摆列、粘合,它们便能成为一件艺术品(树)。
编程学习或工作的点点滴滴,也就像枝叶,如果不时常总结复盘,让知识点更有逻辑,更有条理,我们便会遗忘。学习的收益便大打折扣。
我会用记事本记录点滴, 记得多了, 针对某个专题就可以写博客记录分享, 像是 CSDN、头条都是很好的博客网站。
版权归原作者 元存储 所有, 如有侵权,请联系我们删除。