python-3.x - 基本 Python Vigenere 密码
问题描述
我有基本的代码布局问题是我不知道如何正确使用关键字的长度。
当我运行问题时,我只得到一堆 S 作为我的输出,因为代码不会转到关键字的下一个字母。
我需要 Def Encrypt 部分的帮助(第二个 def)
关键字是 SECRET // 这是输入
def encrypt_letter(text_letter , code_letter):
alphabet = string.ascii_uppercase
index = alphabet.find(code_letter)
cypher = alphabet[index:]+alphabet[:index]
index2 = alphabet.find(text_letter.upper())
result = cypher[index2]
if text_letter.islower():
result = result.lower()
return result
def encrypt(text, code):
cypher_text = ''
for letter in text:
if letter.isalpha():
cypher_text += code_word[0:1:6]
# code_letter = ?
# encrypt_letter(letter, )
else:
cypher_text += letter
return cypher_text
code_word = input('Please enter the code word: ')
code_word = code_word.upper()
cypher_text = encrypt(plain_text, code_word)
print(cypher_text)
解决方案
由于这显然是一个学生问题集,因此请稍等片刻,然后再回来问一个特定的问题,但有一些提示:
.isalpha()
初始化一个计数器来计算你遇到了多少个字母- 用于
counter % len(secret_code)
跟踪您在密码中的当前位置 - 使用 ASCII 整数算术和一些
if/else
逻辑来修改cypher_text
bycounter % len(secret_code)
ord()
并且chr()
会帮助你
如果您真的遇到困难并需要查看解决方案,我的就在这里:https ://github.com/bennett39/learning-exercises/blob/master/cs50/pset6/vigenere/vigenere.py
不过,在单击该链接之前,请多花一点时间在您的解决方案上。
推荐阅读
- json - 如何解析要馈送到表单控件的 JSON 值?
- javascript - 如何多行div方形图案
- wpf - MahApps.Metro 窗口在关闭时导致错误
- java - 线程“主”java.sql.SQLException 中的异常:未选择数据库
- java - 从父类获取泛型 Class 对象
- c# - PropertyChanged 保持为空
- tensorflow - 了解 RNN 中的输入参数
- go - 将 os.Stdin 转换为 [] 字节
- android - 从另一个片段导航回来时,片段内的 ViewPager 为空
- google-api - 谷歌云文字转语音:服务器响应状态为 403()