我一直在做一些关于python的基本练习,到目前为止,它的运行非常顺畅,尽管我遇到了一个问题,其中第二个while循环无法运行。到目前为止,我已经重新缩进,定义了整秒,并尝试将参数放置在循环上,其中done = True,而done == True :, done = False (后来的代码是我以前遇到的问题,但为了使它正常工作,我删除了它。)
如果您觉得有必要,可以对我的代码提出一些建议,因为我一直在教自己如何使用python编写代码,所以我只是想介绍一下它。我也包括了第一个while循环,因为我发现代码太低可能是在不知不觉中导致问题的原因。
import random
Olist = []
while True:
counter = 0
counter2 = 0
print("\nWelcome to exercise 05")
InH1 = str(input("\nDo you wish to continue? (y/n):"))
if InH1 == 'y':
list1 = random.sample(range(30), 11)
list2 = random.sample(range(30), 9)
print("\n<><>Two random lists have been generated.<><>")
print(list1)
print(list2)
max_index = len(list2)-1
print("\n<><>Max index has been generated.<><>")
InD = str(input("\nStart the func? (y/n):"))
if InD == 'n':
break
if InD == 'y':
while True:
if counter2 == 11:
print(Olist)
InL = str(input("\nEnter any key to return to the start of the program,\
or,\n enter 'q' to break the program."))
if InL == 'q':
break
if list1[counter2] == list2[counter]:
Olist.append(list2[counter])
counter + 1
elif counter == 10:
counter = 0
else:
counter + 1
if InH1 == 'n':
break
答案 0 :(得分:0)
您写道:
while True:
counter = 0
counter2 = 0
counter = 0
是while循环的
您想要以下吗?
while True:
counter = 0
counter2 = 0
答案 1 :(得分:0)
if list1[counter2] == list2[counter]:
Olist.append(list2[counter])
counter + 1
elif counter == 10:
counter = 0
else:
counter + 1
我认为您的counter + 1
声明正在给您带来严重的麻烦。真的在那儿仔细看...你不是说counter = counter + 1
吗?
答案 2 :(得分:0)
Ciao
一些细节:
counter2
之后,counter2 = 0
上没有任何操作,因此您永远不会进入if counter2 == 11
分支[无法访问],并且-除非其他地方需要,否则您可以完全删除该部分< / li>
counter = counter + 1
或缩写为counter += 1
counter
不会越过max_index
,否则您将尝试从{{1}中获取生成"IndexError: list index out of range"
的数组中不存在的元素可以通过以下if list1[counter2] == list2[counter]
分支重置counter
前面的}行elif
的原因:同一行将允许您安全地删除{也是上一点的{1}}分支此代码应适合您的目标:
while counter < max_index:
希望有帮助,
安东尼诺