连续自动输出沙漏图案:根据随机生成的符号数量(1000以内),自动打印沙漏图案,并输出剩余符号个数。要求:当剩余符号为零或打印图案大于5次时,退出循环。每组图案之前显示图案的符号总数,每组之间有1个空行,间隔1秒打印。
效果如图 , 太多了 截不全 , 如有帮助给个采纳谢谢 :
```python
import random
import time
def print_diamond(symbol_num):
"""
打印沙漏图案与剩余符号数量
:param symbol_num: 符号数量
"""
# 打印符号数量
print("Symbol number:", symbol_num)
# 设置沙漏每一层的符号数目,从 1 开始递增直到大于等于 symbol_num,然后再递减回去
step = 1
while (step * (step + 1) // 2) <= symbol_num:
step += 1
step -= 1
# 打印沙漏上半部分
for i in range(step, 0, -1):
print(" " * (step - i) + "*" * (2 * i - 1))
# 打印沙漏中部
print("*" * (2 * step + 1))
# 打印沙漏下半部分
for i in range(1, step + 1):
print(" " * (step - i) + "*" * (2 * i - 1))
# 打印剩余符号数量
print("Remaining symbol number:", symbol_num - (step * (step + 1) // 2))
print()
time.sleep(1)
if __name__ == '__main__':
count = 0
while True:
# 随机生成符号数量
symbol_num = random.randint(1, 1000)
# 打印沙漏图案与剩余符号数量
print_diamond(symbol_num)
count += 1
# 如果已经打印了 5 次或剩余符号数量为零则退出循环
if count >= 5 or symbol_num == 0:
break
```
不知道你这个问题是否已经解决, 如果还没有解决的话:>>>def demo(a,b,c=1): # c是默认值参数
print(a,b,c)
>>>demo(1,2)
out:1,2,1
>>>demo(b=1,a=2,c=3) # 关键参数
out:2,1,3
import random
import time
def print_diamond(symbols):
for i in range(symbols):
print(" " * i + "*" * (symbols - i))
for i in range(symbols-2, -1, -1):
print(" " * i + "*" * (symbols - i))
count = 0
while True:
symbols = random.randint(1, 1000)
if count > 5 or symbols == 0:
break
print("还剩:", symbols, "个")
print_diamond(symbols)
print()
count += 1
time.sleep(1)