如何在Python中将变量设置为for循环的值

0 投票
2 回答
5560 浏览
提问于 2025-04-19 22:46

这是我的代码。我想让bownew等于多行的*号。我不想只是用for x in range(height):print bownew的方式来打印。我希望bownew能够等于for x in range(height)的结果。这个该怎么做呢?

height = int(input("Enter an odd number greater than 4: "));
column = height * 2;

screen = [];
bownew = ""

def bow(height):
    for x in range(height):
        screen.append(["*"]*column);

bow(height);

for i in screen:
    bownew = " ".join(i)
print(bownew)

2 个回答

0

1。可能有一个更简单的解决方案,不需要使用for循环

height = int('Enter an odd number greater than 4: ')
column = height * 2

row = '*' * column
bownew = [row] * height
bownew = '\n'.join(bownew)

print(bownew)

我已经测试过了,这个方法是有效的。

Enter an odd number greater than 4: 5
**********
**********
**********
**********
**********

2。关于这个问题(如何在Python中将变量设置为for循环的值?),我怀疑你不能让一个变量等于任何循环,除非你使用def

使用def的方式是

height = int('Enter an odd number greater than 4: ')
column = height * 2

def bownew(height, column):
    for i in range(height):
        print('*' * column)

bownew(height, column)

这应该能给你相同的结果。

祝你编码愉快,希望这对你有帮助。

2

不要使用 for 循环,join 需要一个列表作为参数。如果你想让它有多行,就用换行符把它们连接起来。

bownew = "\n".join(screen)

你还需要把 screen 变成一个字符串的列表,而不是列表的列表:

def bow(height):
    for x in range(height):
        screen.append("*" * column);

整个脚本:

height = int(input("Enter an odd number greater than 4: "));
column = height * 2;

screen = [];
bownew = ""

def bow(height):
    for x in range(height):
        screen.append("*" * column);

bow(height);

bownew = "\n".join(screen)

print(bownew)

测试运行:

$ python test.py
Enter an odd number greater than 4: 5
**********
**********
**********
**********
**********

撰写回答