0

我一直在用 Python 制作一个座位表,显示每个座位的缺勤情况。为了列出缺席示例,我决定使用 randint 生成一个介于 0-15 之间的随机值,但是当我在矩阵中尝试它时它不起作用。然而,在矩阵之外使用的同一行并且刚刚打印工作正常。我该如何解决这个问题?

这是我的代码:

import random

student0Abs_EX = random.randint(0,15)
student1Abs_EX = random.randint(0,15)
student2Abs_EX = random.randint(0,15)
student3Abs_EX = random.randint(0,15)
student4Abs_EX = random.randint(0,15)
student5Abs_EX = random.randint(0,15)
student6Abs_EX = random.randint(0,15)
student7Abs_EX = random.randint(0,15)
student8Abs_EX = random.randint(0,15)
student9Abs_EX = random.randint(0,15)

print("\n\nExample Absences: \n")
matrix = [[student0Abs_EX + '\t\t', student1Abs_EX + '\t\t', student2Abs_EX + '\t\t'], [student3Abs_EX + '\t\t', student4Abs_EX + '\t\t', student5Abs_EX + '\t\t'], [student6Abs_EX + '\t\t', 'Empty' + '\t\t', student7Abs_EX + '\t\t'], ['Empty' + '\t\t', student8Abs_EX+ '\t\t', student9Abs_EX + '\t\t']]
for row in matrix:
    print ' '.join(row)

提前感谢您的帮助!

4

2 回答 2

2

功能没有问题random.randint。问题是,每当您执行以下操作之一时,您都会尝试将 anint和 a添加str在一起: student0Abs_EX + '\t\t'.

一种解决方法是将所有这些更改为str(student0Abs_EX) + '\t\t'

str函数将 int 转换为相应的字符串。

于 2013-10-21T03:26:11.630 回答
0

因为你不能仅仅连接 anint和 a str

Type "help", "copyright", "credits" or "license" for more information.
>>> 1 +'2'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

看来您只需要随机矩阵的文本表示。尝试其他方式来创建而不是[student0Abs_EX + '\t\t', student1Abs_EX + '\t\t', student2Abs_EX + '\t\t'], ...

于 2013-10-21T03:26:40.827 回答