我正在编写2组4位数字,以检查是否有相同的数字 程序将随机输入4位数字(例如3415),用户必须通过输入4位数字(例如5213)来猜测该数字,因此,如果有3个匹配但在不同位置将打印◘或'white',而1个则匹配并具有将打印•或“黑色”的相同位置。
所以我收到TypeError:'int'对象不可下标。 (第48行)
import random
#---------------------- RANDOM INT ------------------------------#
number="%04d" % random.randint(0,9999)
#print(number)
b = str(number)
numlist=[]
for digit in b:
numlist.append (int(digit))
#-----------------------------------------------------------------------#
#----------------------- INPUT --------------------------------------#
enter = int(input('Enter 4 digits number : '))
c = str(enter)
enlist=[]
for digit in c:
enlist.append (int(digit))
#enlist = int(enlist)
print(enlist)
#------------------------------------------------------------------------#
#--------------------- DEFINING -------------------------------------#
black=0
white=0
false=0
i = range(0,3)
j = range(0,3)
#-------------------------------------------------------------------------#
print(numlist)
#i = int(i)
#j = int(j)
for numlist in range(0,4):
for enlist in range(0,4):
if i==j:
if enlist[i]==numlist[j]: #THIS LINE
black =+ 1
else:
false =+ 1
else:
if enlist[i]==numlist[j]:
white =+1
else:
false =+ 1
print(black*"•" , white*"◘")
答案 0 :(得分:0)
在for循环中,您用整数覆盖enlist和numlist,然后尝试以列表形式访问它,请在for循环中更改变量名称。
使用一个for循环
for i in range(len(enlist)):
if(enlist[i] == numlist[i]:
# your code
答案 1 :(得分:0)
当您将numlist和enlist用作可迭代对象时,它们将转换为range(0,4)中的int,因此会出现错误。 而是尝试以下方法:
for i in range(len(enlist)):
for j in range(len(numlist)):
if i==j:
if enlist[i]==numlist[j]: #THIS LINE
black =+ 1
'''