如何在Python中将变量设置为for循环的值
这是我的代码。我想让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
**********
**********
**********
**********
**********