Python基础:画菱形,python画菱形,上次随便折腾了个画菱形,


上次随便折腾了个画菱形,这次折腾一个空心的菱形以及数字的菱形空心的相对比较简单,就是在填充的时候在两头使用"*",中间仍然使用" ",用到了and or 句型数字型的很折腾,我自己都快迷糊了,有朋友有兴趣的话可以帮忙再整整

[Python]代码

#coding=utf-8while 1:    n = raw_input("Please Enter the Lenth of Side:")    if n == "q": break    try:        tmp = int(n)    except:        print "Wrong!"        continue    #实心     print "实心"    for i in range(1, 2 * tmp):        print abs(tmp - i) * " " + (2 * tmp - 1 - 2 * abs( i - tmp)) * "*"    #空心,在实心的基础上实现。空心与实心比较,就是"*"填充的时候有区别    print "空心"    for i in range(1, 2 * tmp):        print abs(tmp - i) * " " + "*" + ((abs(tmp - i) == (tmp - 1)) and " " or (2 * tmp - 1 - 2 * abs( i - tmp) - 2) * " " + "*")    #欢乐型一,逻辑写复杂了,自己都快晕乎了,算式几乎是凑的了,求化简    print "欢乐一"    for i in range(1, 2 * tmp):        t = tmp - abs(tmp - i)        print abs(tmp - i) * " " + "".join([str(abs(t - a) + abs(tmp - i) + 1) for a in range(1, 2 * t)])

评论关闭