python - 嵌套循环打印星(*)[python]
问题描述
下面的代码等于预期的输出。我只是想问为什么打印单个星号时需要先 print(),但打印多个星号时不需要。
n = '*'
for i in range(1,7):
for j in range(1,6):
if i == 1 and j < 6:
print(n, end = '')
elif i == 2 and j == 1:
print()
print(n)
elif i == 3 and j < 5:
print(n, end = '')
elif i == 4 and j == 1:
print()
print(n)
elif i == 5 and j == 1:
print(n)
elif i == 6 and j == 1:
print(n)
解决方案
当您打印单个星号时,您只需执行print(n)
, where n="*"
。
请注意,使用该函数时print
,它会自动在末尾插入一个换行符 ( \n
),这样每当您再次打印某些内容时,它就会出现在换行符上。
但是,这可以通过做覆盖print(n, end='')
。这不会将换行符放在末尾,而是将结束字符放在末尾。
所以,现在,下一个打印不会转到下一行,而是继续在同一行。
因此,当您想在新行上打印星号时,您需要执行print()
,它只打印一个换行符,然后下一次打印将打印在新行上。
推荐阅读
- regex - 如何创建 Oracle 减号分隔的日期时间格式正则表达式?
- mongodb - MongoDB Regex 忽略名称中的破折号
- casting - How to cast date Strings to DateTime format with extended parsing in ClickHouse?
- java - 有没有办法将方法注释传递给子类?
- android - PopupWindow 在 API 19 上没有膨胀
- c# - BitConverter.GetBytes() 是否总是每次都分配一个新的字节[]?
- mysql - mysql和php中fetech如何数据一对多关系
- android - 无法使用 Wifi Direct(客户端服务器套接字)发送多个文件
- mysql - 针对 100+ wp 数据库和低 RAM 使用优化 my.cnf
- php - 在 Symfony 5 中处理异常时未定义的 getException 方法