【发布时间】:2014-07-10 22:15:54
【问题描述】:
我正在尝试发现如何使用 for 循环以及字符串和整数可以区分的地方。
我创建了一个调用维度和电视尺寸的函数:例如
def TVDisplay(dimension, TVsize):
final = "<==="
for i in range(TVsize-2):
final = final + "=="
final = final + "==>\n"
for corner in dimension:
final = final + "< "
for edge in corner:
final = final + edge + " "
final = final + ">\n"
final = final + "<==="
for i in range(TVsize-2):
final = final + "=="
final = final + "==>\n"
return final
这个函数返回
<=====>
< 0 0 >
< 0 0 >
<=====>
基于 [['0','0'],['0','0']] 的维度和 2 的 TVsize。
现在我正在尝试使用 while 循环使其看起来相似,但我在字符串和 int()s 处遇到了问题
我的函数如下所示:
def TVDisplay(dimension, TVsize):
final="<==="
i=0
while i < TVsize-2:
final = final + "=="
ctr+=1
final = final + "==>\n"
corner=0
while corner < dimension:
edge = 0
final = final + "< "
while edge < corner:
final = final + edge + " "
edge+=1
final = final + ">\n"
corner+=1
final = final + "<==="
while i < TVsize-2:
final = final + "=="
i+=1
final = final + "==>\n"
return final
这个函数返回这个:
<=====>
<>
< 0 >
<=====>
我认为这与我的代码中间部分与 strs 或 ints 冲突有关。
有人对如何解决这个问题有任何建议吗?
谢谢!!
已编辑::
corner=1
while corner < dimension:
final = final + "< "
edge = 0
while edge < corner:
final = final + edge + " "
edge+=1
final = final + ">\n"
corner+=1
在:
final = final + edge + " "
行,无法连接 'str' 和 'int' 对象出现。 我获得循环中间部分的目的是吐出显示的中间部分
< 0 0 >
< 0 0 >
最后一个循环将其关闭。
这就是我的问题
【问题讨论】:
-
这到底是干什么的?
TVsize是什么意思?dimension代表什么?我建议坚持使用for以避免容易出错的手动增量,但您应该首先使第一个版本正常工作 - 尝试例如TVDisplay([['0', '0'], ['0', '0']], 3). -
你知道你可以用
*重复字符串吗?这意味着您的第一个循环可以替换为final = "<=" + "=="*TVsize + ">\n"。您还可以使用str.join连接字符串,因此您的内部循环可以替换为final += "< " + " ".join(corner) + " >\n"。 -
corner=1 while corner \n " 角+=1
标签: python python-2.7 for-loop while-loop int