【发布时间】:2021-12-01 21:32:37
【问题描述】:
我编写了一个程序,当我在控制台中按 2 时,它会输出最长的相等数字序列,但由于某种原因,它会打印相互关联的数字(即,如果我输入 1 2 2 2 4 5,它会输出 222 of 2 2 2) 并且由于某种原因它也打印 None
我所做的断言测试也由于某种原因失败了
输入:按1,输入1 2 2 2 2 4 5 6 1 4
预期输出:按 2,然后应该显示 2 2 2 2 2
实际输出:22222 无
def lista_egale(lst1):
l = 1
prev_one = None
number = 0
lmax = -1
for current in lst1:
if prev_one == current:
l += 1
elif l > lmax:
lmax = l
number = prev_one
l = 1
prev_one = current
print(number * lmax)
def test_egale():
assert lista_egale([1, 2, 2, 2, 4, 5, 6]) == 2 2 2
assert lista_egale([4, 1, 2, 4, 1, 2, 3, 2]) == 1
assert lista_egale([1, 1, 1, 1, 1, 2, 2, 2, 2]) == 1 1 1 1 1
def show_menu():
print("lists")
print("1. Enter the list")
print("2. Check if the list has a max sequence of equal numbers and print it")
print("4. exit")
def ui_read_list():
input_list = input("Numbers go here ")
return input_list.split()
def run():
global lst1
lst1 = []
show_menu()
while True:
cmd = input(">>>")
if cmd == "4":
return
if cmd == "1":
lst1 = ui_read_list()
elif cmd == "2":
print(lista_egale(lst1))
else:
print("invalid command")
def main():
run()
test_egale()
#test_munte()
main()
【问题讨论】:
-
You
print(lista_egale(lst1))和lista_egale是一个不显式返回任何内容的函数,因此它将返回None,然后将其打印出来。调用就行了,不打印返回值。