Python中文
首页
教程
问答
标签
搜索
登录
注册
局部变量可能在赋值之前被引用-Python
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我一直在尝试做一个加密和解密系统,但我遇到了一个小错误。这是我的代码:</p> <pre><code> import sys import pyperclip def copy(data): question = input("Copy to clipboard? ") if question.lower() == 'yes' or question.lower() == 'y': pyperclip.copy(data) print("Encrypted message copied to clipboard.") rerun() elif question.lower() == 'no' or question.lower() == 'n': rerun() else: print("You did not enter a valid input.") copy(data) def rerun(): ask = input("\nWould you like to run this program again? ") if ask.lower() == "yes" or ask.lower() == "y": print(" ") run() elif ask.lower() == 'no' or ask.lower() == 'n': sys.exit("\nThank you!") else: print("You did not enter a valid input.") rerun() def encrypt(key, msg): encrypted_message = [] for i, c in enumerate(msg): key_c = ord(key[i % len(key)]) msg_c = ord(c) encrypted_message.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(chr((msg_c + key_c) % 127)) return ''.join(encrypted_message) def decrypt(key, encrypted): msg = [] for i, c in enumerate(encrypted): key_c = ord(key[i % len(key)]) enc_c = ord(c) msg.append(chr((enc_c - key_c) % 127)) return ''.join(msg) def run(): function_type = input("Would you like to encrypt or decrypt a message? ") if function_type.lower() == "encrypt" or function_type.lower() == "e": key = input("\nKey: ") msg = input("Message: ") data = encrypt(key, msg) enc_message = "\nYour encrypted message is: " + data print(enc_message) copy(data) elif function_type.lower() == "decrypt" or function_type.lower() == "d": key = input("\nKey: ") question = input("Paste encrypted message from clipboard? ") if question.lower() == 'yes' or question.lower() == 'y': encrypted = pyperclip.paste() print("Message: " + encrypted) elif question.lower() == 'no' or question.lower() == 'n': encrypted = input("Message: ") else: print("You did not enter a valid input.") run() decrypted = decrypt(key, encrypted) decrypted_message = "\nYour decrypted message is: " + decrypted print(decrypted_message) copy(decrypted) else: print("\nYou did not enter a valid input.\n") run() run() </code></pre> <p>它说<b><i>局部变量“encrypted”可能在赋值之前被引用并突出显示</p> <pre><code> decrypted = decrypt(key, encrypted) </code></pre> <p>在run()函数下。</p> <p>是因为我在其他函数中使用了“encrypted”变量吗?如果是这样,我该如何解决这个问题,并仍然保持我的程序的功能?</p> <p>我对python比较陌生,所以如果您能解释一下您的答案,我将不胜感激。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果执行<code>else</code>分支,则不定义<code>encrypted</code>。IDE不知道您再次调用<code>run()</code>。</p> <p>请记住,这可能会导致无限递归,因此您应该使用另一个控制流机制(尝试使用<code>while</code>循环,该循环在输入有效时中断)</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何实现一个类,该类在每次更改其属性时更改其“last_edited”变量?
7 回答
如何实现一个类?
2 回答
如何实现一个类的属性设置?
5 回答
如何实现一个能够存储输入并反复访问输入的存储系统?GPA计算器
10 回答
如何实现一个自定义的keras层,它只保留前n个值,其余的都归零?
6 回答
如何实现一个行为类似于Python中序列的最小类?
9 回答
如何实现一个请求的多线程或多处理
9 回答
如何实现一个长时间运行的、事件驱动的python程序?
8 回答
如何实现一个颜色一致的非舔深度地图实时?
9 回答
如何实现一个默认的SQLAlchemy模型类,它包含用于继承的公共CRUD方法?
5 回答
如何实现一次热编码的生成函数
9 回答
如何实现一种在数组中删除对的方法
6 回答
如何实现一类支持向量机用于图像异常检测
8 回答
如何实现一维阵列到二维阵列的复制转换
1 回答
如何实现三维三次样条插值?
2 回答
如何实现三维数据的连接组件标签?
2 回答
如何实现三角形的空间索引
3 回答
如何实现不同模块中对象之间的交互
8 回答
如何实现不同版本的库共存?
8 回答
如何实现不同的班权重
7 回答