【发布时间】:2014-10-17 19:22:40
【问题描述】:
如果我运行这段代码:
def numbers_in_lists(string):
next_number = 0
count = 0
final_list = []
while count < len(string):
number = int(string[count])
if number > next_number:
final_list.append(number)
new = []
next_number = number
else:
new.append(number)
if new not in final_list:
final_list.append(new)
count += 1
print final_list
#testcases
string = '543987'
result = [5,[4,3],9,[8,7]]
print repr(string), numbers_in_lists(string) == result
我得到了这个答案:
'543987' [5, [4, 3], 9, [8, 7]]
False
但是如果我像这样将number 变量放在while 循环之外:
def numbers_in_lists(string):
next_number = 0
count = 0
final_list = []
number = int(string[count])
while count < len(string):
if number > next_number:
final_list.append(number)
new = []
next_number = number
else:
new.append(number)
if new not in final_list:
final_list.append(new)
count += 1
print final_list
我得到了这个答案:
'543987' [5, [5, 5, 5, 5, 5]]
False
我是一个初学者,我到处寻找关于为什么number 变量在循环外表现不同的解释?另外,为什么其他变量在循环之外可以正常,而number变量不行?
任何帮助将不胜感激。谢谢你。 :)
【问题讨论】:
标签: python function if-statement while-loop