提问人:DummyWComputer 提问时间:9/28/2023 最后编辑:DummyWComputer 更新时间:9/29/2023 访问量:68
我的直角模式不完整,为什么我缺少几行或几列?
My right angle pattern is incomplete, why am I missing a few bottom rows or columns?
问:
我正在尝试输出如下模式:
🐟
🐟🐟
🐟🐟🐟
🐟🐟
🐟
我有这个代码:
def get_right_arrow_pattern(max_cols)
emoji = "🐟"
result = ""
max_rows = max_cols
for row in range(1, max_rows+1):
for column in range(1, max_cols+1):
result = "" + result
result += str(emoji)
print(result)
return emoji
但我得到这个结果:
🐟
🐟🐟
🐟🐟🐟
🐟🐟🐟🐟
🐟
None
这段代码很棘手,因为我的家庭作业不允许在函数或 for 循环中使用 print(),而我只能用它来显示我的结果。我只在这段代码中使用了它,因为它是唯一有效的东西,并且想到并且是半成功的。
答:
-1赞
Futurist Forever
9/28/2023
#1
您可以通过向现有代码添加一些行来获得所需的输出:
def get_right_arrow_pattern(max_cols):
emoji = "🐟"
result = ""
max_rows = max_cols
for row in range(1, max_rows+1):
result += str(emoji)
print(result)
for row in range(1, max_rows):
result = result[:-1] # This will remove the last character from the string
print(result)
return emoji
您也可以在不使用函数内部语句的情况下获得相同的结果。print()
def get_right_arrow_pattern(max_cols):
emoji = "🐟"
result = ""
max_rows = max_cols
for row in range(1, max_rows+1):
result += emoji*row
result += "\n"
for row in reversed(range(1, max_rows)):
result += emoji*row
result += "\n"
return result
注意:
对于此模式。
逻辑。No_of_rows != No_of_columns
No_of_rows == (No_of_columns * 2) - 1
我希望这会有所帮助。
评论
1赞
Codist
9/28/2023
从我引用的问题中,“诀窍是我不能在函数中使用 print()”
0赞
Futurist Forever
9/28/2023
@DarkKnight 感谢您的更正。我对我的答案做了一些调整。检查并在必要时提出改进建议。
1赞
DummyWComputer
9/29/2023
@FuturistForever,谢谢!这对我有很大帮助,并解决了我的问题:D
0赞
Codist
9/28/2023
#2
您可以在函数中构造一个列表,返回该列表并在主程序中打印。
例如:
def get_right_arrow_pattern(max_cols, emoji = '🐟'):
return [emoji * i for i in range(1, max_cols+1)] + [emoji * i for i in range(max_cols-1, 0, -1)]
print(*get_right_arrow_pattern(3), sep='\n')
输出:
🐟
🐟🐟
🐟🐟🐟
🐟🐟
🐟
评论