为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英4014372 2022-12-14 20:30:19
我正在做一个 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任何解释表示赞赏 - 谢谢!
查看完整描述

3 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

IMO 的最佳实践版本是:


def password_generator(username: str) -> str:

    """Generate a terrible password by rotating the username."""

    return username[-1] + username[:-1]

摆脱死代码。不要进行要覆盖的分配。不要在切片会做的地方使用循环。而且,如果一个变量不会在多个地方使用(例如在return语句中),那么即使给它命名 IMO 也没有意义。


查看完整回答
反对 回复 2022-12-14
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

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



查看完整回答
反对 回复 2022-12-14
?
弑天下

TA贡献1818条经验 获得超8个赞

我明白你在问什么,我想我只有你需要的代码。


from random import shuffle


def password_generator(username):

    username = list(username)

    shuffle(username)

    return ''.join(username)

print(password_generator('THIS-IS-USERNAME'))

我得到的输出是:


SNE--SSHIATIRMEU


Process finished with exit code 0

它THIS-IS-USERNAME改为SNE--SSHIATIRMEU


希望这对你有帮助


查看完整回答
反对 回复 2022-12-14
  • 3 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信