python - 对象类型“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()
请不要说这只是播放器创建的代码,如果需要调试程序其余部分的代码,请告诉我。
解决方案
问题在于以下几行:
for i in range(10):
for i in range(8):
randomNumber = random_generator()
players.append(randomNumber)
有两个for i
,我想应该是for i (...) for j
。
最重要的players
是,这里定义为一维数组,但您似乎打算定义一个二维数组。
推荐阅读
- tensorflow - 在具有多个 Keras 模型的 TF2 自定义训练循环中应用梯度的正确方法
- c# - 正则表达式匹配中的问题是 C# 贪婪技术
- sharepoint - Office UI Fabric React 中的表实现?
- python - Django - 重定向回页面显示http响应(Json数据)而不是呈现
- python - 应用具有两个数据框字段的函数
- angular - 将 FormGroup 作为 FormData Angular 8
- unit-testing - 期望(jest.fn()).toHaveBeenCalledWith(...期望)
- java - Java 编程 — 标记 "." 上的语法错误,此标记后应为 @
- testng - 如何通过 TestNG 在 Project 中运行所有测试类?
- sql - 合并后从两个表中过滤一个值