python - 如何细化模式并删除输出中的括号?
问题描述
我正在尝试编写一个打印对角线图案的函数。对此的论据是:
- 每行的列数(星)
- 行数
- 每条线上两个连续星之间的间隙长度。
这是我尝试过的:
def pattern(s, r, g):
for i in range(r):
print(" " * g, ("*", " " * g) * s, end="\n")
但是输出看起来像这样:对于模式(2,3,4),其中 2 是每行中的星数,3 是行数,4 是星之间的间隙数
('*', ' ', '*', ' ')
('*', ' ', '*', ' ')
('*', ' ', '*', ' ')
没有括号我怎么能执行这个?
解决方案
您正在打印元组。您需要使用*
运算符解包元组:
def pattern(s, r, g):
for i in range (r):
print(' ' * g, *('*', ' ' * g) * s, end='\n')
pattern(2, 3, 4)
输出:
* *
* *
* *
推荐阅读
- c# - File API 在循环中使用时似乎总是写入损坏的文件,除了最后一个文件
- javascript - 点击按钮后赛普拉斯等待 API
- html - 使用 iFrame 时的 CSS 冲突
- revit-api - PyRevit / RevitPythonShell 自定义工具 - 如何禁用 Alt 键单击“查看代码”功能?
- javascript - 在 Angular 网络应用程序中嵌入 Google Analytics 实时报告
- android - 为什么应用程序关闭时本地热点正在关闭
- php - 如何删除内联样式中的空格?
- reactjs - 使用 Formik 处理来自 api 的错误
- node.js - Laravel-echo-server: Socket IO 没有连接到我的 Cpanel - HTTPS, CENTOS6, LINUX RED HAT
- c++ - 如何在 C++ 函数中正确使用指针?