首页 > 解决方案 > 我正在尝试创建一个循环,以便当 y 小于 x 时,它将循环通过 print 语句,同时通过它们交替

问题描述

我的代码和错误

我正在尝试制作一个创建随机密码的程序。除此之外,它应该在

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):

出现错误,我不知道该怎么办。不知道我在做什么或做错了什么,感谢任何帮助。

标签: pythonpythonanywhere

解决方案


int(1 > 2)语法不正确。

您不能将这样的比较传递给int()函数。正确的方法是

if int(1) > int(2):

虽然,你仍然不需要int()if 你传递一个整数开头。


即使解决了这个问题,您的代码仍然会出现问题。

您的循环将无限期运行或根本不运行,具体取决于 and 的值xy并且还将不断打印相同的两个字符。


处理此问题的更好方法是:

  1. 定义密码长度
  2. 循环range(length)
  3. 生成随机整数并将它们附加到字符串

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'

推荐阅读