python 打印菱形、三角形、矩形

原创 管理员 2018/3/16 11:41:55

#coding:utf-8rows = int(raw_input(输入列数: ))i = j = k = 1 #声明变量,i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制*的个数#等腰直角三角形1print "等腰直角三角形1"for i in range(0, rows): for k in range(0, rows - i): …
#coding:utf-8
rows?=?int(raw_input('输入列数:?'))
i?=?j?=?k?=?1?#声明变量,i用于控制外层循环(图形行数),j用于控制空格的个数,k用于控制*的个数
#等腰直角三角形1
print?"等腰直角三角形1"
for?i?in?range(0,?rows):
????for?k?in?range(0,?rows?-?i):
????????print?"?*?",?#注意这里的",",一定不能省略,可以起到不换行的作用
????????k?+=?1
????i?+=?1
????print?"\n"
?
#打印实心等边三角形
print?"打印空心等边三角形,这里去掉if-else条件判断就是实心的"
for?i?in?range(0,?rows?+?1):#变量i控制行数
????for?j?in?range(0,?rows?-?i):#(1,rows-i)
????????print?"?",
????????j?+=?1
????for?k?in?range(0,?2?*?i?-?1):#(1,2*i)
????????if?k?==?0?or?k?==?2?*?i?-?2?or?i?==?rows:
????????????if?i?==?rows:
????????????????if?k?%?2?==?0:#因为第一个数是从0开始的,所以要是偶数打印*,奇数打印空格
????????????????????print?"*",
????????????????else:
????????????????????print?"?",?#注意这里的",",一定不能省略,可以起到不换行的作用
????????????else:
???????????????print?"*",
????????else:
????????????print?"?",
????????k?+=?1
????print?"\n"
????i?+=?1
?
#打印菱形
print?"打印空心等菱形,这里去掉if-else条件判断就是实心的"
for?i?in?range(rows):#变量i控制行数
????for?j?in?range(rows?-?i):#(1,rows-i)
????????print?"?",
????????j?+=?1
????for?k?in?range(2?*?i?-?1):#(1,2*i)
????????if?k?==?0?or?k?==?2?*?i?-?2:
????????????print?"*",
????????else:
????????????print?"?",
????????k?+=?1
????print?"\n"
????i?+=?1
????#菱形的下半部分
for?i?in?range(rows):
????for?j?in?range(i):#(1,rows-i)
????????print?"?",
????????j?+=?1
????for?k?in?range(2?*?(rows?-?i)?-?1):#(1,2*i)
????????if?k?==?0?or?k?==?2?*?(rows?-?i)?-?2:
????????????print?"*",
????????else:
????????????print?"?",
????????k?+=?1
????print?"\n"
????i?+=?1
#实心正方形
print?"实心正方形"
for?i?in?range(0,?rows):
????for?k?in?range(0,?rows):
????????print?"?*?",?#注意这里的",",一定不能省略,可以起到不换行的作用
????????k?+=?1
????i?+=?1
????print?"\n"
?
#空心正方形
print?"空心正方形"
for?i?in?range(0,?rows):
????for?k?in?range(0,?rows):
????????if?i?!=?0?and?i?!=?rows?-?1:
????????????if?k?==?0?or?k?==?rows?-?1:
????????????????#由于视觉效果看起来更像正方形,所以这里*两侧加了空格,增大距离
????????????????print?"?*?",?#注意这里的",",一定不能省略,可以起到不换行的作用
????????????else:
?????????????????print?"???",?#该处有三个空格
????????else:
????????????print?"?*?",?#这里*两侧加了空格
????????k?+=?1
????i?+=?1
????print?"\n"

执行输出结果:

输入列数:?4
等腰直角三角形1
?*???*???*???*??

?*???*???*??

?*???*??

?*??

打印空心等边三角形,这里去掉if-else条件判断就是实心的
????????

??????*?

????*???*?

??*???????*?

*???*???*???*?

打印空心等菱形,这里去掉if-else条件判断就是实心的
????????

??????*?

????*???*?

??*???????*?

*???????????*?

??*???????*?

????*???*?

??????*?

实心正方形
?*???*???*???*??

?*???*???*???*??

?*???*???*???*??

?*???*???*???*??

空心正方形
?*???*???*???*??

?*???????????*??

?*???????????*??

?*???*???*???*








上一篇:没有了

下一篇:Python中绑定与未绑定的类方法用法分析

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    IT文章导航
    扫一扫关注最新编程为什么上不了bet356_bet356 下载安装_bet356黑钱