我一直在制作一张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)
提前感谢您的帮助!
答案 0 :(得分:2)
random.randint
功能没有任何问题。问题是,当您执行以下操作之一时,您尝试将int
和str
添加到一起:student0Abs_EX + '\t\t'
。
一种解决方法是将所有内容更改为str(student0Abs_EX) + '\t\t'
str
函数将int转换为相应的字符串。
答案 1 :(得分:0)
因为您不能仅仅连接int
和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'], ...