【发布时间】:2016-05-04 22:08:52
【问题描述】:
我的代码应该采用一个密码并将其更改为“易于记忆”的元音和辅音排列
def alphapinEncode(pin):
vowels = "aeiou "
consonants = "bcdfghjklmnpqrstvwyz "
alphaPin = " "
while pin > 0:
newPin = pin // 100
pinRemain = pin % 100
vowelToFind = pinRemain % 5
pinVowel = vowels.find(vowelToFind)
pinConsonant = consonants.find(pinRemain // 5)
pin = newPin
alphaPin = alphaPin + pinVowel + pinConsonant
return alphaPin
感谢任何帮助,谢谢!
【问题讨论】:
-
我也知道我还没有添加 consonantToFind 部分,但它不会超过元音部分,因为它无法将 int 转换为 str 所以我觉得没有必要添加它,直到我得到它工作
-
当你 % 100 if 会给你最后 2 位数字,这将在 00-99 之间,如果你 % 到 5,你会得到 0-5 之间的东西,这是元音的数量,如果你 // 到 5 你会得到 0-19 之间的东西,这是辅音的数量
-
您应该作为字符串遍历 PIN,而不是对其进行数学运算。通过将其视为一个数字,如果我的 PIN 是 0024,那么当我需要输入所有四位数字才能工作时,你只会给我 24 部分的“易于记忆”的代码。
-
这个想法是,在你找到最后 2 位数字的“易于记忆的部分”之后,变成 newPin 的 //100 部分是引脚的其余部分,因此当函数返回时它将运行再次为您的其余引脚等等,直到他们没有留下数字
-
请将说明编辑到原始问题中;这使得问答对未来的 SO 用户更有用。
标签: python string while-loop int find