【问题标题】:trying to generate random passwords with "-" in between [duplicate]尝试在[重复]之间生成带有“-”的随机密码
【发布时间】:2016-01-10 23:27:06
【问题描述】:
import random
s = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
passlen = 4
p = "".join(random.sample(s,passlen))
p2 = "".join(random.sample(s,passlen))
print(p,"-",p2)

这是我的代码。但是当我运行它时会得到这样的结果:RJ9e - zN0P 我不需要中间的空格。我在这里想念什么? 谢谢!

【问题讨论】:

  • 这是print 的一部分 - 默认情况下,参数之间的sep' '。试试print(p, '-', p2, sep='') 或例如print('-'.join((p, p2))).
  • 这样会更好:print('%s-%s' % (p, p2))
  • 请注意,您可以简单地执行以下操作:p = "".join(random.sample(s,8)) 然后p = p[:4] + "-" + p[4:]

标签: python python-3.x


【解决方案1】:

使用 '+' 运算符将所有字符串连接成单个字符串

import random
s = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
passlen = 4
p = "".join(random.sample(s,passlen))
p2 = "".join(random.sample(s,passlen))
print(p+"-"+p2)

【讨论】:

    【解决方案2】:

    这是因为打印。您需要像这样将密码连接到单个变量中: password = '%s-%s' % (p, p2)

    【讨论】:

      【解决方案3】:

      您的代码的问题是print(p,"-",p2) 将在其参数之间打印空格,最好使用print("{}-{}".format(p, p2))

      【讨论】:

      • 太棒了!谢谢。
      猜你喜欢
      • 1970-01-01
      • 2022-10-18
      • 2012-07-28
      • 2021-04-17
      • 1970-01-01
      • 2010-09-08
      • 2012-08-09
      相关资源
      最近更新 更多