首页 > 解决方案 > 对象类型“int”在二维数组打印中没有 len()

问题描述

我是新来的,但我认为有人可能会帮助我完成我已经工作了一段时间的事情。

我正在创建一个乐透游戏,其中玩家和中奖号码是使用随机数创建的。虽然我一直在这样做,但我得到了中奖号码,但玩家的 2D 阵列无法正常工作并且无法正确打印,我可以在调试问题上获得一些帮助吗

I want to create a table like below

Player ID    Player Numbers 
  1          8, 26, 24, 25, 30, 16, 25, 30
  2          15, 11, 9, 0, 8, 17, 19, 18
  3          13, 6, 18, 14, 29, 21, 13, 10

当我编译我当前的代码时,它给了我以下错误

all the players
Traceback (most recent call last):
  File "E:/User Profile/Documents/runner.py", line 66, in <module>
    lottoPlayers()
  File "E:/User Profile/Documents/runner.py", line 46, in lottoPlayers
    printPlayers(players)
  File "E:/User Profile/Documents/runner.py", line 40, in printPlayers
    for j in range(len(array[i])):
TypeError: object of type 'int' has no len()

我的代码如下

import random


def random_generator():
    randomNumber = random.randint(0, 30)
    return randomNumber
def generate_players():
    players = []
    for i in range(10):
        for i in range(8):
            randomNumber = random_generator()
            players.append(randomNumber)
    return players

def printPlayers(array):
    for i in range(len(array)):
        for j in range(len(array[i])): # the error looked to me like it was coming from here but i dont get it why as im doing something similar above and no errors popped-up
            print(array[i][j], end=' ')
        print()
        
def lottoPlayers():
    players = generate_players()
    print("all the players")
    printPlayers(players)

lottoPlayers()

请不要说这只是播放器创建的代码,如果需要调试程序其余部分的代码,请告诉我。

标签: pythonmultidimensional-array

解决方案


问题在于以下几行:

    for i in range(10):
        for i in range(8):
            randomNumber = random_generator()
            players.append(randomNumber)

有两个for i,我想应该是for i (...) for j

最重要的players是,这里定义为一维数组,但您似乎打算定义一个二维数组。


推荐阅读