[关闭]
@Guozhongzhi 2016-09-25T16:14:11.000000Z 字数 1461 阅读 909

第三次作业


让名字在屏幕上运动以及画出一个旋转图形


一、摘要

本次作业用Python编程,在屏幕上显示动态的字符,包括两个题目:

Level_1 在屏幕上让自己的英文名字水平移动起来;
Level_2 在80*80点阵上用字符拼出想画的东西,并让它旋转起来。

通过练习,对Python的语法进行学习和掌握,以期能熟练地进行科学计算,这是计算物理课程的基本要求,本次作业亦是处于此目的。

二、背景介绍

第三次作业

在课程主页上复习这两次课程的内容,初步掌握python和matplotlib的语法规则,为接下来的课程做好准备
作业L1 在屏幕上让你的英文名字水平移动起来

提示:可以使用如下语句把屏幕清理干净

import os
i = os.system('cls')
字符移动可以用在每行前面增加空格的方法实现

print(" ###")
print(" # ")
print(" # ")
print(" # ")
print(" ###")
作业L2 在80*80点阵上用字符拼出你想画的东西,并让它旋转起来,希望脑洞大开!(比如字符、火柴人、火箭等等)

提示:字符串变成列表

a = "test"
l = list(a)
列表变成字符串

a = "".join(l)
当然有更多的方法解决这个问题,除了画的东西,方法上也希望各位能脑洞大开!

三、正文

用Python进行程序编写,代码如下:

Level_1:

  1. import os
  2. import time
  3. i=os.system('cls')
  4. l0 = " # # # # # # # # # # # # # # # # #"
  5. l1 = "# # # # #"
  6. l2 = "# ### # # # # # # # # # # # # # # # # # # #"
  7. l3 = "# # # # # # # # # # # # # # # # # # #"
  8. l4 = " # # # # # # # # # # # # # # # # # # # # # # # # # # # # #"
  9. l5 = " #"
  10. l6 = " # #"
  11. L = [l0, l1, l2, l3, l4, l5, l6, ]
  12. b = 0
  13. while b < 10:
  14. b = b + 1
  15. for i in L:
  16. print ' ' * b + i
  17. time.sleep(0.5)
  18. i=os.system('cls')

Level_2:

  1. #The code of Exercise_03_L2 
  2. import os,time
  3. n = 0
  4. while n in range(100):
  5. print(' * ')
  6. print(' * ')
  7. print(' * ')
  8. print(' * ')
  9. print('* * * * * * * * * ')
  10. print(' * ')
  11. print(' * ')
  12. print(' * ')
  13. print(' * ')
  14. time.sleep(0.05)
  15. i=os.system('cls')
  16. i
  17. print(' * * ')
  18. print(' * * ')
  19. print(' * * ')
  20. print(' * * ')
  21. print(' * ')
  22. print(' * * ')
  23. print(' * * ')
  24. print(' * * ')
  25. print(' * * ')
  26. time.sleep(0.05)
  27. i=os.system('cls')
  28. i
  29. n = n + 1

四、结论

运行代码,得到如下结果:
Level_1:
c dy g qxt8 ym 3 w6 pb
Level_2:
bdp j8wg1_r_ 7 weg 2 n
从运行结果来看,基本实现了题目要求,第一题中的名字运动的实现,基于一个循环语句进行print函数的重复打印,利用os模块中的time.sleep()函数实现时间的保留,让print函数输出的内容在屏幕上暂留一段时间,让观察者可以分辨出来,从而达到视觉上字符的不停运动。第二题中亦是此理,实现了一个“+”的旋转。总的来说,两题的代码都较为简单易懂,更为复杂的代码及其功能需要在以后的学习中进一步加强学习。

五、致谢

笔者编程水平实在有限,在编写代码的过程中参考了王子华同学、罗佳佳同学以及张哲先同学的代码,得到很多启发,十分感激,笔者在此一并致谢。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注