You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python开发密码生成器报TypeError字符串拼接错误如何解决

报错原因

random.randint(0, 9999999)返回的是整数类型,Python不支持直接拼接字符串与整数,因此触发了TypeError。
除此之外你的代码还有几处潜在问题:

  • 变量名leght为拼写错误,正确应为length
  • open(temp.txt, "w")写法错误,会被识别为访问变量temp的txt属性,而非拼接.txt后缀作为文件名,修复第一个报错后运行仍会触发新的错误
  • 文件写入完成后没有关闭逻辑,会造成文件句柄泄漏
  • 不建议使用all作为变量名,会覆盖Python同名内置函数
修复方案
  • 用str()将random.randint的返回值转换为字符串后再和前缀拼接
  • 文件名拼接时显式将.txt作为字符串和temp变量拼接
  • 使用with上下文管理器自动管理文件生命周期,无需手动调用关闭方法
  • 调整变量名避免覆盖内置函数

修复后的完整代码:

import random
upper = "QWERTYUIOPASDFGHJKLZXCVBNM"
lower = "qwertyuiopasdfghjklzxcvbnm"
number = "0123456789"
symbol = "!@#$%^&*"
all_chars = number + lower + upper + symbol
length = 9
password = "".join(random.sample(all_chars, length))
# 转换整数为字符串后拼接,同时带上文件后缀
temp = "pass_temp" + str(random.randint(0, 9999999)) + ".txt"
# 使用with语句自动管理文件关闭
with open(temp, "w") as pas:
    pas.write(password)

内容的提问来源于stack exchange,提问作者vp cume

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:27:01