🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。
前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:Python实践 ,一个专注于分享实际案例的专栏~
想看往期历史文章,可以浏览此博文: 历史文章目录
,后续所有文章发布都会同步更新此博文~
前言
很久没有发一篇正经博文了,为了证明我还存在且脑子没有生锈,所以准备发布这样的一篇博文。(其他想发的还没编辑好,暂时没有足够动力编辑)
来吧,展示
虽说Python要写的优美,但有些人就不按套路出牌!比如博主,就喜欢整一行代码干完活:
row = int(input('请输入行数:'))
assert row > 1, '形状的行数必须大于等于2!'
print('正方形实心:')
print(*('* ' * row for col in range(row)), sep='\n')
print('正方形空心:')
print(*('* ' + ('* ' if col in [0, row - 1] else ' ') * (row - 2) + '*' for col in range(row)), sep='\n')
print('正三角形实心:')
print(*(' ' * (row - col - 1) + '* ' * (col + 1) for col in range(row)), sep='\n')
print('正三角形空心:')
print(*(' ' * (row - col - 1) + '* ' + ('* ' if col in [0, row - 1] else ' ') * (col - 1) + ('*' if col else '') for col in range(row)), sep='\n')
print('倒三角形实心:')
print(*(' ' * col + '* ' * (row - col) for col in range(row)), sep='\n')
print('倒三角形空心:')
print(*(' ' * col + '* ' + ('* ' if col in [0, row - 1] else ' ') * (row - col - 2) + ('*' if col < row - 1 else '') for col in range(row)), sep='\n')
assert row > 2, '菱形的行数必须大于等于3!'
print('菱形实心:')
print(*(' ' * ((row + 1) // 2 - col - 1) + '* ' * (col + 1) for col in range((row + 1) // 2)), *(' ' * (col + 1 if row % 2 else col) + '* ' * (row // 2 - col) for col in range(row // 2)), sep='\n')
print('菱形空心:')
print(*(' ' * ((row + 1) // 2 - col - 1) + '* ' + ('* ' if not col else ' ') * (col - 1) + ('*' if col else '') for col in range((row + 1) // 2)), *(' ' * (col + 1 if row % 2 else col) + '* ' + ('* ' if col == row // 2 - 1 else ' ') * (row // 2 - col - 2) + ('*' if col < row // 2 - 1 else '') for col in range(row // 2)), sep='\n')
# row_half = ((row + 1) // 2) if row % 2 else row // 2 # 从总行数变成半三角行数
# print('菱形实心:')
# print(*(' ' * (row_half - col - 1) + '* ' * (col + 1) for col in range(row_half)), *(' ' * ((col + 1) if row % 2 else col) + '* ' * ((row_half - col - 1) if row % 2 else (row_half - col)) for col in range(row_half - 1 if row % 2 else row_half)), sep='\n')
# print('菱形空心:')
# print(*(' ' * (row_half - col - 1) + '* ' + ('* ' if not col else ' ') * (col - 1) + ('*' if col else '') for col in range(row_half)), *(' ' * ((col + 1) if row % 2 else col) + '* ' + ('* ' if col + 1 == row_half else ' ') * ((row_half - col - 3) if row % 2 else (row_half - col - 2)) + ('*' if col < row_half - (2 if row % 2 else 1) else '') for col in range(row_half - 1 if row % 2 else row_half)), sep='\n')
其中最后注释掉的部分是我一开始直接手撸的,写的是格外的艰难,后来上面的方法就是复制粘贴上面正