【问题标题】:python password generator loop problem print errorpython密码生成器循环问题打印错误
【发布时间】:2022-11-22 15:11:32
【问题描述】:

我试图使用 python 制作密码生成器。目前,我只希望程序从 ascii 表中打印随机字符。我稍后会介绍数字和符号。我使用 for 循环打印用户输入范围内的随机字符。但是,当我使用 end='' 在同一行上打印字符时,它会工作, % 会出现。我认为这是为了表明它打印了一个无字符。我希望程序不打印 %,因为稍后我会添加其他数字和符号。

我尝试从数字范围中减去 1。结果是带有 % 但比预期少 1 的相同字符串。我还尝试创建一个 while 循环,当变量小于密码数字时打印。它还打印了 %。

这是代码:

import random
import string
letters=string.ascii_letters
passwordnumber=int(input("How many characters do you want your password to be? "))
for i in range(passwordnumber):
    print(random.choice(letters), end='')

【问题讨论】:

  • 奇怪..对我来说它没有显示 % 看到 - onlinegdb.com/9EagkKVW1
  • 您的代码非常适合我。不 %。不知道它从哪里来。没有 % 剩下的时间?你如何运行你的脚本?从 linux 外壳?

标签: python loops printing syntax


【解决方案1】:

控制台打印的%,表示字符串不以" "结尾。这只是来自虚拟终端的提醒。你没有错。你可以在你的代码末尾添加一个print()来打印一个" ",并且%不会再次显示。

【讨论】:

    【解决方案2】:

    尝试这个

    def generate_random_password():
      ## length of password from the user
      length = 8
    
      ## shuffling the characters
      random.shuffle(characters)
    
      ## picking random characters from the list
      password = []
      for i in range(length):
        password.append(random.choice(characters))
    
      ## shuffling the resultant password
      random.shuffle(password)
    
      ## converting the list to string
      ## printing the list
      return "".join(password)
    

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 2014-09-24
      相关资源
      最近更新 更多