Python 我正在尝试创建一个循环,这样当y小于x时,它将循环通过打印语句,同时交替通过它们
我正在尝试做一个程序,将创建一个随机密码。除此之外,它还应该在Python 我正在尝试创建一个循环,这样当y小于x时,它将循环通过打印语句,同时交替通过它们,python,pythonanywhere,Python,Pythonanywhere,我正在尝试做一个程序,将创建一个随机密码。除此之外,它还应该在 print(chr(letter), end="") print(chr(number), end="") 因为它使密码看起来像“A2h8l”,它在数字和字母之间交替 import random number = random.randint(48,57) letter = random.randint(65,122) print(input("How many charact
print(chr(letter), end="")
print(chr(number), end="")
因为它使密码看起来像“A2h8l”,它在数字和字母之间交替
import random
number = random.randint(48,57)
letter = random.randint(65,122)
print(input("How many characters do you want in your password?"))
x = input
y = int(letter + number)
while int(x > y):
print(chr(letter), end="")
print(chr(number), end="")
但是由于某种原因,
while int(x > y):
出现了一个错误,我不知道该怎么办。不知道我在做什么或做错了什么,我们非常感谢您的帮助。也许您可以这样做
随机输入
number=random.randint(48,57)
字母=random.randint(65122)
x=输入(“密码中需要多少个字符?”)
x=int(x)
y=字母+数字
当x>y时:
打印(chr(字母),end=“”)
打印(chr(编号),end=“”)
您遇到该特定错误的原因是您将x设置为输入函数本身。像这样的东西会更接近你想要的:
x=int(输入(“密码中需要多少字符?”)
int(1>2)
语法不正确
您不能将这样的比较传递给int()
函数。正确的方法是
if int(1) > int(2):
尽管如此,如果要首先传递一个整数,仍然不需要int()
即使在解决此问题时,您的代码仍然存在问题 循环将无限期运行或根本不运行,具体取决于
x
和y
的值,并且还将持续打印相同的两个字符
更好的处理方法是:
类似这样的情况:(您的代码之所以出错,是因为
x=input
,所以x是一个无法与int-type进行比较的函数)
随机导入
x=int(输入(“密码中需要多少字符?”).strip()
计数=0
当x>计数时:
数字=随机数。随机数(ord(“0”)、ord(“9”))
上限=random.randint(ord(“A”)、ord(“Z”))
lower=random.randint(ord(“a”)、ord(“z”))
y=随机。选择([数字,上限,下限])
打印(chr(y),end=“”)
计数+=1
打印()
或者更像蟒蛇
随机导入
导入字符串
字符=string.digits+string.ascii_字母
x=int(输入(“密码中需要多少字符?”).strip()
打印(“”.join(范围(x)内的uu的随机.choice(字符)))
您认为您将x
设置为等于什么?你有没有试过,比如说,print(x)
来检查发生了什么?(另外,请不要包含文本图像。您已经在此处包含了代码,这很好,只需对错误执行相同操作即可。)感谢您的反馈,如果我有其他问题,我将确保修复该问题,但我认为我已将错误包含在图像中;除非我误解了你,否则我很抱歉@Crazychucky我想说的是,当内容可能只是文本时,文本的图像根本不适合。如果您将错误粘贴到问题中,将其格式化为代码,并删除图像,效果会更好。更多信息:我相信我将“x”设置为用户输入,例如,它将是一个类似于5的整数。我尝试的是,用户将输入“5”作为他们想要在密码中输入的字符数,然后“y”(字母和数字相加)将继续交替和相加,同时循环,直到“y”创建的字符数等于用户提供的“x”中的整数为止。对不起,如果我对我要做的解释令人困惑@Crazychuckyth感谢您对图片的澄清,我会确保下次有问题时记住这一点。:)@CrazyChuckyThis要么什么也不打印,要么无限期地打印相同的两个字符。我刚刚尝试过,它所做的只是在再次请求用户输入时打印“您希望密码中包含多少字符”@eriblexpWell该行将替换这些当前行,以防止出现错误打印(输入(“您的密码中需要多少字符?”))x=input
。目前,x实际上被设置为输入功能,而不是设置为控制台中输入的文本。您仍然会有一个单独的问题,y值几乎总是大于x,但我不确定您到底想做什么。@PacketLoss获取它,然后更改复制并粘贴您的代码以尝试它,但由于某种原因,它不起作用?不确定这是否会对代码产生重大影响,但我使用的是Python3.8@PacketLossWhat不起作用?将最后一行中的password
更改为print(password)
如果您是以文件身份运行的,谢谢您的帮助,它看起来已经修复了它@包装损耗
import random
length = int(input('Password Length'))
password = ''
for i in range(length):
password = password + chr(random.randint(65,122)) + chr(random.randint(48,57))
password
#'Q5I4D8p8i9l1p7j0I6l9'