【发布时间】:2021-03-19 14:46:40
【问题描述】:
我需要编写一个函数来打印字符串“加油!” n 次,缩进在新行中增加 5 个空格。 这是我试图编写的代码......问题是我试图创建 5 个空格,但我不能使用任何运算符,因为它在引号内。还有什么办法可以解决吗?
def printAddOils(n):
for i in range(1, n+1):
print("Add Oil! \n " "*5*i")
【问题讨论】:
我需要编写一个函数来打印字符串“加油!” n 次,缩进在新行中增加 5 个空格。 这是我试图编写的代码......问题是我试图创建 5 个空格,但我不能使用任何运算符,因为它在引号内。还有什么办法可以解决吗?
def printAddOils(n):
for i in range(1, n+1):
print("Add Oil! \n " "*5*i")
【问题讨论】:
你可以试试:
def printAddOils(n):
for i in range(1, n+1):
print("".join([" "]*5*i)+"Add Oil!")
解释语法 [" "]*x 创建一个重复数组 x 次的数组。 然后你得到一个由 5*i 个空格组成的数组。然后语法 "c".join(arr) 将通过使用字符 c(或不使用字符)连接数组的元素来创建一个字符串。
【讨论】:
如果您需要更大的灵活性或做一个简单的连接来自己创建字符串,请使用内置的 textwrap 库
import textwrap
def printAddOils(n):
for i in range(1, n+1):
print(textwrap.indent("Add Oil!", " "*i))
printAddOils(10)
def printAddOils2(n):
for i in range(1, n+1):
print("".join(" "*i) + "Add Oil!")
printAddOils2(10)
# Add Oil!
# Add Oil!
# Add Oil!
# Add Oil!
# Add Oil!
# Add Oil!
# Add Oil!
# Add Oil!
# Add Oil!
# Add Oil!
【讨论】:
def printAddOils(n):
sp=''
for i in range(1, n+1):
print(sp+"Add Oil! \n")
sp+=' '
printAddOils(5)
Add Oil!
Add Oil!
Add Oil!
Add Oil!
Add Oil!
【讨论】:
在 python 3.6 以后,您可以使用fstrings
def printAddOils(n):
for i in range(1, n+1):
print(f"{5*i*' '}" + "Add Oil! \n ")
【讨论】:
def printAddOils(n):
for i in range(1, n+1):
print("1" * 5 * i, "Add Oil! \n ", sep='') # replace 1
printAddOils(3)
输出:
11111Add Oil!
1111111111Add Oil!
111111111111111Add Oil!
【讨论】: