Python I';I’我试图制作一个密码生成器,但我得到了一个错误;错误:';类型';对象不能解释为整数;
错误:“类型”对象不能解释为整数文件 “C:\Users\Noah\Desktop\PyNotDone\someting.py”,第5行,随机字符 返回“”。为范围(y)中的x加入(随机.choice(string.ascii_字母))文件“C:\Users\Noah\Desktop\PyNotDone\someting.py”,第行 18,在 打印(随机字符(用户字母)+(随机数字())Python I';I’我试图制作一个密码生成器,但我得到了一个错误;错误:';类型';对象不能解释为整数;,python,Python,错误:“类型”对象不能解释为整数文件 “C:\Users\Noah\Desktop\PyNotDone\someting.py”,第5行,随机字符 返回“”。为范围(y)中的x加入(随机.choice(string.ascii_字母))文件“C:\Users\Noah\Desktop\PyNotDone\someting.py”,第行 18,在 打印(随机字符(用户字母)+(随机数字()) 为什么这样不行?在usernumber变量行之后,它不会打印任何内容。问题在于您试图通过以下方式将某些内容
为什么这样不行?在usernumber变量行之后,它不会打印任何内容。问题在于您试图通过以下方式将某些内容转换为类型的所有行:
import os, pyautogui, time, string, random, math
def random_numbers():
random.randint(1, 100000000)
def random_char(y):
return ''.join(random.choice(string.ascii_letters) for x in range(y))
def getinput(self, value):
self.get = value
inp =input("Hello, Welcome to the password manager, Let's get you started.\nAt the moment, Only letters will work, but will still be sufficient for a secure password. Type OK to continue.\n")
if (str.lower(inp)) == "ok":
userletters=input("How much letters would you like your password to be?\nEnter amount of letters: ")
usernumbers=input("How much numbers would you like your password to be?\nEnter amount of numbers: ")
usernumbers = int
random_numbers = str
userletters = str
print(random_char(userletters)+(random_numbers()))
它不会将something
从str
转换为int
,它只是将something
的值替换为文本类型int
,而不是类型为int
的变量
要实际将某些内容从str
转换为int
,请参阅:
例如:
something = int
或:
我认为这里真正的教训是,由于编程是如此精确,尝试随机的事情,比如
something=int
,而不是搜索如何做你想要的事情,将是有问题的。无论你认为usernumbers=int
在做什么,它都不是这样做的。它使usernumbers
成为整数类型的别名。与random\u numbers=str
相同:这不会创建空字符串或任何字符串-它使random\u numbers
成为str
类的别名,并且您的random\u numbers
不会返回任何内容。它不应该返回用户要求的位数吗?您甚至没有将其作为参数传递。您将字符串类型userlets
传递给random\u char
,然后将其传递给range
,后者需要整数。因此出现了一个错误,为什么一个名为getinput
的函数要执行赋值?!此代码是在类中,还是使用self
作为变量名?
usernumbers = input("How much numbers would you like your password to be?\nEnter amount of numbers: ")
usernumbers = int(usernumbers)
usernumbers = input("How much numbers would you like your password to be?\nEnter amount of numbers: ")
usernumbers = int(usernumbers)
def random_numbers(digits):
return ''.join(str(random.randint(10) for i in range(digits))
...
usernumbers = int(usernumbers)
userletters = int(userletters)
print(random_char(userletters) + random_numbers(usernumbers))