我正在尝试创建一个python程序来自动排序我正在处理的作业。到目前为止,我已经设法创建了一本字典。 例如:
monday = ('1' : 'clean the counters')
并为每个人分配一个号码:
joe = random.randint(1,3)
但是当我尝试时:
print ("Today Joe has to do the", monday[joe]")
它吐出了错误。
有更好的方法可以做到这一点,还是我错过了一些明显的东西?
答案 0 :(得分:3)
您有一个额外的引号会导致错误。您还需要将分配给joe的整数转换为char
/ string
,因为这是它存储在字典键中的方式。
更好的方法是将字典设为列表。在1
/ 2
表单中使用3
,char
,string
只是添加了不必要的查找级别。
例如:
Monday = ["clean the counters", "wash the floor", "take out the trash"]
joe = random.randint(0, 2) # or joe = random.randint(0, Monday.length)
print("Today Joe has to do the", Monday[joe])`
答案 1 :(得分:1)
您的代码中存在一些错误。首先,您应该使用{}
来定义字典,而不是()
,例如:
monday = {1 : 'clean the counters'}
另外,您会注意到我从1
开始引用,因为如果您的所有键都是字符串,则无法使用randint
生成的整数键搜索字典。
最后,当你打印时,你可能想要:
print ("Today Joe has to " + monday[joe])
因为你拥有它的方式不会产生正常的句子。
答案 2 :(得分:0)
尝试对您的代码进行以下修改,它应该有效:
monday = {'1' : 'clean the counters', '2' : 'upload the files', '3' : 'pick up the garbage'}
joe = str(random.randint(1, 3))
print("Today joe has to do : " + monday[joe])