会动的星星图案

我们先让字符动起来,这段代码能让字符按一定的时间输入

 1 # coding: utf-8
 2 
 3  import time
 4  
 5 txt = u"欢迎来到万象更新的中国!"
 6 
 7 for i in txt:
 8     print i,      # 加逗号表示横向打印
 9     time.sleep(0.5)   # 设置时间为0.5秒

不过,有个问题,print语句加了逗号之后,逗号会占用一个空格。显得很不好看。

---------------------------------------------------------------------------------------------------------------------

下面是去掉空格的改进版

 1 # coding: utf-8
 2 
 3 import sys
 4 import time
 5 
 6 txt = u"欢迎来到万象更新的中国!"
 7 
 8 for i in txt:
 9     sys.stdout.write(i)
10     time.sleep(0.1)      # 设置时间为0.1s
11 print                    
让字体动起来

其实会自动换行的print " ", 相当于sys.stdout.write(" " + "\n"), 所以少了换行符"\n",

sys.stdout.write(" ")就不会自动换行                                                                                          

                                                                                                                               ——2016/11/28

 ---------------------------------------------------------------------------------------------------------------------

要让下面的图像动起来,只需要在各个函数的for循环末尾加止

time.sleep(0.2)【先import time】

1. 打印旗子

 1 # coding: utf-8
 2 
 3 # 打印三角形
 4 def triangle():
 5     for i in range(1, 6):
 6         print " " * 16 + " * " * i
 7 
 8 # 打印旗杆
 9 def stick():
10     for i in range(1, 4):
11         print " " * 16 + " *"
12 
13 triangle()
14 stick()

 

2. 打印十字架

 1 # coding: utf-8
 2 
 3 # 打印顶部 
 4 def top():
 5     for i in range(1, 5):
 6         print " " * 16 + "*" * 4
 7 
 8 # 打印中间部分
 9 def middle():
10     for i in range(1, 4):
11         print " " * 8 + "*" * 20
12 
13 # 打印底部
14 def bottom():
15     for i in range(1, 5):
16         print " " * 16 + "*" * 4
17 
18 top()
19 middle()
20 bottom()

 

3. 打印小狗

 1 # coding: utf-8
 2 
 3 # 打印耳朵
 4 def ear():
 5     for i in range(1, 3):
 6         print " " * 16, # 每行空出16格
 7         print " " * 14 + " *" * i
 8 
 9 # 打印头部
10 def head():
11     for i in range(1, 4):
12         print " " * 16,
13         print "*" * i + " " * (14 - i) + " *" * 6
14 
15 # 打印身体
16 def body():
17     for i in range(1, 3):
18         print " " * 16,
19         print "* " * 8
20 
21 # 打印脚
22 def leg():
23     for i in range(1, 4):
24         print " " * 16,
25         print "*" * i + " " * 8 + " *" * 3
26 
27 ear()
28 head()
29 body()
30 leg()

 

4. 打印金字塔

 1 # coding: utf-8
 2 
 3 # pymaid: 金字塔
 4 def pymaid(num):
 5     
 6     for i in range(1, num + 1):
 7         # 第一行的行头空白等于总行数-1, 后面每行依次减1
 8         print " " * (num - i) + "*" * (1 + (i - 1) * 2)
 9     
10 pymaid(5)

输出:

由于for语句本身自带数值i(执行次数),而且还是递增的,所以我们就不用再另设变量去增加空格数和星号数。

当然,你也可以让它不要左对齐

1 # coding: utf-8
2 
3 def pymaid(num): 
4     
5     for i in range(1, num + 1):
6         print " " * 16, # print + 逗号会多占用一个空格
7         print " " * (num - i) + "*" * (1 + (i - 1) * 2)
8 
9 pymaid(5)
不要左对齐

 相对居中的方式: 

让星号之间带上空格的形式

 

--------------------------------------------------------------------------------------------------------------------------------

1 # coding: utf-8
2 
3 def pymaid(num):
4 
5     for i in range(1, num + 1):
6         print " " * 16,
7         print " " * 2 * (num -i) + " *" * (1 + 2 * (i - 1))
8 
9 pymaid(5)
带空格的金字塔

 

posted @ 2016-07-31 15:37  坏小孩D_R  阅读(309)  评论(0编辑  收藏  举报