添加输入语句后出现TypeError: 'str' object is not callable错误的原因?
问题分析与解决办法
错误原因
你将Python内置的input()函数名用作了自定义变量名。执行input = input("What would you like to do?\n")后,原本的input函数被覆盖成了用户输入的字符串对象。后续再调用input(...)时,实际是尝试调用一个字符串,而字符串不可被调用,因此抛出TypeError: 'str' object is not callable错误。
解决办法
将自定义变量名改为与内置函数不冲突的名称,比如action、user_choice等,避免覆盖内置函数。
修改后的代码示例
import random password = 0 print("Password Generator") # 替换变量名为action,避免覆盖内置input函数 action = input("What would you like to do?\n") app = str(input("For what application would you like to generate a password\n")) n = int(input("How many characters would you like in your password?\n")) chars = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9','!','@','#','$'] password = random.choice(chars) i = 0 for i in range(n-1): password = password + random.choice(chars) print(f"Your password is: {password}") with open('passwordlist.txt', 'a') as f: f.write(f"{app} : {password}\n")
内容的提问来源于stack exchange,提问作者ShrekLover
相关产品推荐
相关产品推荐

