将元组元素连接为字符串,其中一个元素是字符串,另一个元素是整数元组

2024-09-21 09:47:38 发布

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

提示是:

编写一个Python程序,提示用户输入自己的名字,然后创建一个秘密密码,密码由从他或她的名字中随机抽取的三个字母(小写)和一个随机的四位数组成。可能是“BourvS81”或“BourbS81”的“密码”,例如“BourS81”或“SarVs9”的密码。密码中不允许使用空格字符。必须使用字符串切片、随机、低和446670串联。在

我的代码是:

import random

name = input("Enter your name all lowercase ")

name2 = name.replace(" ", "")

letter1 = random.choice(name2)
letter2 = random.choice(name2)
letter3 = random.choice(name2)
letter4 = random.choice(name2)

passwordnumber = (random.randint(0, 9),
                  random.randint(0, 9),
                  random.randint(0, 9),
                  random.randint(0, 9))

passwordletter = (letter1 + letter2 + letter3 + letter4)

password = passwordletter, passwordnumber

print(password)

现在我在程序中输入“nick g”的名字,得到:

('nigc',(5,4,9,6))

我想知道的是,如何让输出把字母和数字放在一起,而不是像这样把它们隔开并加上括号。非常感谢任何帮助!在


Tags: name程序密码字母random名字randintchoice
3条回答

您可以将数字转换为字符串,用join将它们组合成一个字符串,然后用字母连接:

password = ('nigc', (5, 4, 9, 6))

password[0] + ''.join([str(x) for x in password[1]])
# 'nigc5496'

我认为您可以简化代码并使用string format 来格式化密码。例如:

import random

name = "Guido van Rossum"

name2 = name.replace(" ", "")

letter1 = random.choice(name2)
letter2 = random.choice(name2)
letter3 = random.choice(name2)
letter4 = random.choice(name2)

num1 = random.randint(0, 9)
num2 = random.randint(0, 9)
num3 = random.randint(0, 9)
num4 = random.randint(0, 9)

print(f"{letter1}{letter2}{letter3}{letter4}{num1}{num2}{num3}{num4}")

您可以使用格式化的打印并解压缩passwordnumber元组

print('{}{}{}{}{}'.format(passwordletter, *passwordnumber)
# nigc5496

相关问题 更多 >

    热门问题