Skip to main content
 首页 » 编程设计

python之检索随机数字时出现类型错误

2025年05月04日9soundcode

我正在尝试生成一个随机的三位数扩展名:

>>>  ''.join(str(x) for x in random.sample(range(1,10),3)) 

它在提示中起作用。但是,当我运行该程序时,它会引发一个 TypeError: str object is not callable。这是我的行:

    filename = hashlib.md5(imagefile.getvalue()).hexdigest() +  
              ''.join(str(x) for x in random.sample(range(1,10),3)) + '_thumb' + '.jpg'   

我在这里做错了什么,我该如何解决?

谢谢你的帮助。我之前在代码中调用了 str,这导致了错误:

str="" 
for c in i.chunks():  
    str += c 
... 

请您参考如下方法:

您已将通常指字符串类型的全局名称 str 替换为其他名称(很可能是包含不太重要的字符串的变量)。 Python 通常不会将这些东西视为关键字(在 Python 3.x 中,True 和 False 已成为关键字,之前它们只是全局变量)。

也就是说,random.sample 选择了非重复值,这似乎不是“生成随机三位数扩展”问题的要求。避免零也没有。我只会从 0-999 中选择一个随机数并适本地设置它的格式(“%03d”,或新格式中的等效项)。