Python I';I’我试图制作一个密码生成器,但我得到了一个错误;错误:';类型';对象不能解释为整数;

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变量行之后,它不会打印任何内容。问题在于您试图通过以下方式将某些内容

错误:“类型”对象不能解释为整数文件 “C:\Users\Noah\Desktop\PyNotDone\someting.py”,第5行,随机字符 返回“”。为范围(y)中的x加入(随机.choice(string.ascii_字母))文件“C:\Users\Noah\Desktop\PyNotDone\someting.py”,第行 18,在 打印(随机字符(用户字母)+(随机数字())


为什么这样不行?在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))