作业2:硬币游戏

        文/施晓玲

        这次的作业是通过硬币游戏进行代码分析与改进,学习使用Python和git。

       Step1:下载安装git和Python.

       首先进行Git的安装与配置,这里贴出两个博主的讲解:http://www.cnblogs.com/Bonker/p/3441781.html和http://blog.csdn.net/renfufei/article/details/41647875,前者是老师推荐的,以较新的Git版本的安装进行讲解,并介绍如何将git与bitbucket关联,产生一个公钥。后者对我有用的是第19点:设置本地机器默认commit的昵称与Email,我自己进行commit和push时都是在此设置后才完成的。图1是我在码云上的公钥,图2是我设置的本地机器默认commit的昵称和email的过程。

图1 码云上SSH公钥

图2 设置本地机器默认commit的昵称和email

       Step2:fork老师的仓库

       登陆自己的码云,打开老师给的链接,直接点击页面右上角的“fork”就完成了操作。

       Step3:根据代码下载安装包

       打开硬币游戏的代码,发现代码中import了两个包,使用pip进行安装。关于如何安装pip以及怎样使用pip安装软件包,在这里我也给出一个链接:http://blog.csdn.net/qy20115549/article/details/52179800。我自己安装的结果如图3所示。

图3 pip安装软件包

       Step4:将码云仓库Game.git clone到本地, 运行Python 程序

       我通过git进行克隆,在想保存项目的文件夹下打开git bash,输入git clone +码云仓库项目所在地址,即可完成克隆。打开Python,通过File-Open-Run,打开文件并运行。克隆过程如图4所示,游戏运行结果如图5所示。

图4 克隆Game.git

图5 Python运行截图

       Step5:修改代码

       依据老师给出的讲解链接(http://blog.csdn.net/damotiansheng/article/details/43867175),学习Python代码规范,修改代码。我提交到码云的代码是可以运行的,只改了间距,如要暗示两行连接时使用4个空格作悬挂缩进,不适用Tab,二元运算符两边都空出一个空格,逗号与圆括号、方括号前后的空格使用等。

       关于码云编码风格的规范,我进行了修改,但始终报错,不能解决,因此没有进行提交。且因码云对缩进有严格的控制,故在此截图解说,也请老师指明哪边出错。

图6、图7 代码修改

      在导入模块和包时,用 import x 来导入包和模块。但只有在 x 是一个包(package),而 y 是一个模块(module)的时候才用 from x import y 。因此删去后两个import语句。在最后添加if _name_=='_main_'作为程序入口,通过Box_per_remain、title、xlable、ylabel和figure来绘图,因此将增加函数monitor和figure,将Box_sum、People_Flag等变量在monitor函数中通过Args进行描述,在if _name_=='_main_'中赋值,但问题也出在这儿,在Args后提示invalid syntax语法错误,一直改正不了,因此后续代码的修改,特别是if _name_=='_main_'中是否正确不得而知。

       PS:运行过程中出现若expected an indented block提示,则为缩进问题出错;出现invalid syntax提示,为语法出错。

       Step6:将修改后的代码commit 并 push 到远端的仓库

       在修改过的.py文件所在的文件夹中打开git bash,输入git config -l检查是否连接上,通过老师给的链接(http://www.cnblogs.com/juking/p/7221034.html)学习提交,最后提交过程如下图所示。

图8 通过git commit 并 push 到远端的仓库

         在通过git commit时还出现找不到url地址等问题,最后通过删除远端仓库又再次连接,反复尝试才完成。在此贴出我学习的帖子:http://www.runoob.com/git/git-remote-repo.html。

 

远端仓库地址:https://gitee.com/teenytinyling/Game

 

原文地址:https://www.cnblogs.com/teenytinyling/p/7571428.html