方法一:
a = int(input("请输入菱形每条边星星的个数:"))
b = a
c = a
for i in range(1, a + 1): # 先打印正三角,由空格和*根据规律组成
print(" " * (b - 1), "*" * (2 * i - 1))
b -= 1
if i == a: # 临界点,当打印到此,开始打印倒三角
for y in range(1, a):
print(" " * y, "*" * (2*c-3))
c -= 1
方法二:
n = int(input("输入要打印的菱形的每个边的元素个数:"))
list_a = [i for i in range(n)] # 生成前n行的行数列表,例如[0,1,2,3,4]
list_b = list_a[0:len(list_a) - 1:] # 生成剩余行数列表并反转,例如[0,1,2,3]
list_c = list_b[::-1] # 对剩余行数列表并反转便于打印操作
list_d = list_a + list_c # 将两个列表合并
print(list_d)
b = [' ' * (n - i) + '*' * (2 * i + 1) for i in list_d] # 根据规律,打印空格" "和"*"
for line in b:
print(line)
打印结果:
2.打印空心菱形
代码:
a = int(input("请输入菱形每条边星星的个数:"))
b = a
c = a
print(" " * (a - 1), "*")
for i in range(2, a+1): # 先打印正三角,由空格和*根据规律组成
print(" " * (b - 1) + "*" + " " * (2 * i - 3) + "*")
b -= 1
if i == a: # 临界点,当打印到此,开始打印倒三角
for y in range(2, a):
print(" " * y+"*"+" "*(2*c-5)+ "*" )
c -= 1
print(" "*a+"*")
打印结果:
以上这篇Python实现打印实心和空心菱形就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
本文标题: Python实现打印实心和空心菱形
本文地址: http://www.cppcns.com/jiaoben/python/288295.html
******* ***** *** * 补充知识:Python打印高度为2 * n + 1,宽度为 2 * n + 1的菱形,输出一个由'*'组成的菱形,空白的地方用'.'表示。 很感谢百度和各类的问答平台,CSDN在其中占得多数的,帮我解决了一道又一道的...
我就废话不多说了,还是直接看代码吧!
width = 11 #注意宽度必须位奇数
for i in range(-width//2,width//2+1):
prespace=i if i>0 else -i
print(' '*prespace+'*'*(width-prespace*2))
运行结果:
补充知识:Python打印高度为2 * n + 1,宽度为 2 * n + 1的菱形,输出一个由'*'组成的菱形,空白的地方用'.'表示。
很感谢百度和各类的问答平台,CSDN在其中占得多数的,帮我解决了一道又一道的难题,所以我来报恩来了。分享我做过的题,得到的知识点,希望可以帮助到在代码世界里苦苦挣扎又不能放弃的同类人。
今天分享我昨天做过的一道题,折磨我两天,但是大佬只用了两分钟。说实在的,还是读书太少。
1.给出一个n,请小明帮忙打印高度为2 * n + 1,宽度为 2 * n + 1的菱形。每次输入一个整型n(1