函数返回指针而不是Python中的值

2024-10-05 17:40:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个函数来生成密码列表,但它返回一个指针而不是一个值:

#!/usr/bin/python3
import sys
import string
from random import *

characters = string.ascii_letters + string.digits

def generator():
    password =  "".join(choice(characters) for x_num in range(randint(18, 19)))
    return password


def pass_list(num_of_passwd):
    paswd_list = []
    for index in range(num_of_passwd):
        paswd_list.append(generator())
    passwords = pass_list
    print (passwords)

为什么会这样?你知道吗


Tags: ofinimportforstringdefrangepass
1条回答
网友
1楼 · 发布于 2024-10-05 17:40:40

这应该适合您:

#!/usr/bin/python3
import sys, string, random

def generator(chars):
    password = "".join(random.choice(chars) for _ in range(random.randint(18, 19)))
    return password

def pass_list(chars, num_of_passwd):
    pass_list = [generator(chars) for _ in range(num_of_passwd)]
    return pass_list

characters = string.ascii_letters + string.digits
passwords = pass_list(characters, len(characters))
print(passwords)

输出:

['R63qhL4pzkwyb4DxyJ', 'iStYwujZ9hbGhKhCvr', 'CawJ3qAdqSL0Bf8phZ', '48PPQj8btdxaqshDkk', '318rubpkcR5mOrPMYOT', 'iOkINL0TkjL4sq9Mc3', 'Fw64Tj5KyNVNbJRYLD', 'voALiyI3vn70F3H7Ua6', 'ofAGywZqrEMcJkRwjWL', 'wMlYVakjZzz6Sm04jcv', 'PbPT2Hr9nR0eLhX0aKj', 'Fqa3oGBFj4HmdJR8C3', 'Wva99eZyXZZHaKrwrlT', 'kC7kRHuDYx9njsttQG', 'r5IQZF61lLRowiXQ6e9', 'Lh50xONU63ftvNUoAY', 'ByaxlBt8qVB9RbdQZz', 'b6VNghr4mhT4wfNGec', 'UB3qnHHdEF9OEvk5BHc', 'yA3j7sH4oClb5EybDN', 'E9ejvelWBUFVWCfAKL', 'ladx1niGhZv8bGoghY', 'E2EerTp7sMN6VBAV7Q', 'IxELC2nB5f4zCinvjK', 'DqF38rzrcihfFJwCJN', 'YeakZZHZKRAIM3Bt1pE', 'oJrLBQhyepaF1LiBfZJ', 'gNsgLR9Berqowg6CII', 'hLldZQ9MqxYySQ9Kti', 'mzGE71SiVHqdIbxDMwh', 'qkfAXnEWUkkxPTvaL3', 'FUx1xoKGFpDSM1SB8A', '0vH3AePPLAmbJonqTP3', 'thf80WN1JK4WdtrEySk', '9GlqeSobGMND6LzqYU', 'CqPPeqyAjM1YVjiN3UF', 'gdAHZdIxYSgdBCRli3', 'i2ltodn3npecEjV6bXu', 'ejSBXWalzp6QvQFzuE', 'usnv3Wwb4drwX6KUIkg', 'f24RszgtS8KyNE3A8u', 'lVYyoQoR9QVmUC4F7M', '5avz5UvQqMjC2oCPCCs', '1yVSXljlVqx83pCuPdo', 'sUkmkR2Otb89YFPtRQ', 'sVOnTTVBhr3ss6JjFi', 'o3ZIR1aRd579G6YPrBI', 'PP1WxXisQqYfB0OSYz', 'o6qcvRrAOqJDvf5HxB', 'UlrdaaIR3QVU8haF3qn', 'MrfKJcbNq4GjuPUPkNF', 'vU3aWCQFSpAVzZBp5E', 'ZzpLG4bqLrjENf8Uv6t', 'cy15Fqtw9rCKoOtCuN', 'Y7Iwjr9BjoDcMuz9l9', 'hsdc6B45lgtgsbD5fux', 'uZPp7buh4faAJSymD4V', 'u15I7Jy8hhCXRhGdEL', 'wucZvSYhQ3du5gR0H6', 'W1lzh3kSmDB8ZJyEGX', 'UkEE85JGJvhbNhbS8RM', 'oZiqjgW5GfCstWf09Hb']

原始代码问题:

  1. pass_list()实际上没有在脚本中调用。你知道吗
  2. 附加到空列表而不是使用理解-大大慢。你知道吗

发生了什么变化:

  1. 更简洁的语法(一般来说)-例如,当在一个变量上循环时,我认为最好使用“\”。

  2. 函数调用来生成结果。

  3. 列出要替换循环附加的理解。

相关问题 更多 >