在 Python 中将字符串旋转一个字符的最佳实践方法是什么?

我正在做一个 codecademy 任务,想知道以下哪组代码被认为是最佳实践:


任务是创建一个函数,给定一个字符串 username ,将所有字母向右移动一位。例如,用户名:AbeSimp 将变为 pAbeSim,这将成为密码并存储在字符串密码中。


这是我的代码:


def password_generator(username):

    password = ""

    password = username[-1] + username[:-1]

    return password

解决方案代码是:


def password_generator(username):

    password = ""

    for i in range(0, len(user_name)):

       password += user_name[i-1]

    return password

任何解释表示赞赏 - 谢谢!


慕桂英4014372
浏览 94回答 3
3回答

慕田峪7331174

IMO 的最佳实践版本是:def password_generator(username: str) -> str:    """Generate a terrible password by rotating the username."""    return username[-1] + username[:-1]摆脱死代码。不要进行要覆盖的分配。不要在切片会做的地方使用循环。而且,如果一个变量不会在多个地方使用(例如在return语句中),那么即使给它命名 IMO 也没有意义。

梦里花落0921

你的代码很好。我想知道您从哪里获得该解决方案,该解决方案在效率或语法上似乎都不正确。因为涉及 for 循环的额外复杂性。

弑天下

我明白你在问什么,我想我只有你需要的代码。from random import shuffledef password_generator(username):    username = list(username)    shuffle(username)    return ''.join(username)print(password_generator('THIS-IS-USERNAME'))我得到的输出是:SNE--SSHIATIRMEUProcess finished with exit code 0它THIS-IS-USERNAME改为SNE--SSHIATIRMEU希望这对你有帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python