错误消息指出变量未定义(当变量已定义时)。 Python

2023-12-25

我正在尝试使用函数在 python 中创建一个简单的加密程序,但是遇到一个问题,当我运行程序时,我收到一条错误消息,提示(“msgReversed”未定义)。

该程序的工作原理是首先反转用户消息,然后将字母转移到密钥的值

alphabet=("abcdefghijklmnopqrstuvwxyz ")

def userInput():
    plaintext=input("Enter message to encript")
    k=int(input("Enter encription Key you want to use (1-25)"))
    return (k,plaintext)

def reverseMsg(plaintext):
    msgReversed=''
    leng=len(plaintext)-1
    for c in plaintext:
        msgReversed+=plaintext[leng]
        leng=leng-1
    print(msgReversed)
    return(msgReversed)

def encript(msgReversed,k):
    cipher=''
    for c in msgReversed:
        if c in alphabet:
            cipher+=alphabet[(alphabet.index(c)+k)%(len(alphabet))]
        print(cipher)

(k,plaintext)=userInput()
reverseMsg(plaintext)
(cipher)=encript(msgReversed,k)

错误消息如下`:

Line 26, in <module>
    (cipher)=encript(msgReversed,k)
NameError: name 'msgReversed' is not defined

正如我的评论中提到的,您的变量 msgReversed 没有在函数外部声明,因此当您在函数外部调用它时它没有定义。为了避免发布重复的答案,这里有另一种方法:

我不知道你以前是否使用过类,但这里有一个示例和 python 官方文档(https://docs.python.org/2/tutorial/classes.html https://docs.python.org/2/tutorial/classes.html)

class Encrypt:

    def __init__(self):



        (k,plaintext)=self.userInput()
        self.reverseMsg(plaintext)
        cipher =self.encript(self.msgReversed,k)

    def userInput(self):
        plaintext=input("Enter message to encript")
        k=int(input("Enter encription Key you want to use (1-25)"))
        return (k,plaintext)

    def reverseMsg(self, plaintext):
        self.msgReversed=''
        leng=len(plaintext)-1
        for c in plaintext:
            self.msgReversed+=plaintext[leng]
            leng=leng-1
        print(self.msgReversed)
        return(self.msgReversed)

    def encript(slf, msgReversed, k):
        alphabet=("abcdefghijklmnopqrstuvwxyz ")
        cipher=''
        for c in msgReversed:
            if c in alphabet:
                cipher += alphabet[(alphabet.index(c)+k)%(len(alphabet))]
        print(cipher)

Encrypt()

至于全局变量,您可以在函数内声明全局变量。您所要做的就是将其声明为全局的:

variable_name global

因此,带有变量 msgReversed 的函数将如下所示:

def reverseMsg(plaintext):
    global msgReversed
    msgReversed = ''
    leng=len(plaintext)-1
    for c in plaintext:
        msgReversed+=plaintext[leng]
        leng=leng-1
    print(msgReversed)
    return(msgReversed)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误消息指出变量未定义(当变量已定义时)。 Python 的相关文章

  • 设置面积图 openpyxl 的透明度(alpha)

    我想使用 openpyxl 设置面积图背景的透明度 我的图表代码是 from openpyxl drawing fill import PatternFillProperties ColorChoice c2 AreaChart c2 gr
  • 在tensorflow中使用估计器API进行训练时出错

    我正在尝试运行一个简单的SVM通过使用 input fn 返回一个数据来对 iris 数据集进行分类tf data dataset对象 但我遇到了以下错误 Traceback most recent call last File tf te
  • AttributeError:“函数”对象没有属性“编译”

    我一直面临这个属性错误 有什么想法可以解决它吗 def model input shape model keras Sequential model add keras layers LSTM 64 input shape 1 9 retu
  • 在 Windows 中安装 IPOPT 求解器以与 pyomo 一起使用

    如何安装 IPOPT 求解器以在 Windows 中与 pyomo 一起使用 我尝试了 pip install ipopt 但收到此错误 错误 为 ipopt 构建轮子失败 我正在使用 Windows 10 和 Python 3 7 4 在
  • Python + Selenium:驱动程序路径

    是否有可能在不输入路径的情况下运行 Python Selenium 脚本exePython 行中每个脚本中的文件 driver webdriver Chrome 同样的问题也适用于 IE 驱动程序 Edge 驱动程序 和 Gecko 驱动程
  • 在ubuntu中安装pyinterval

    我正在尝试安装 python 库 pyinterval 它需要 crlibm C 标头 我已安装该标头 没有错误 但似乎是问题的根源 当我跑步时 sudo easy install pyinterval 我得到以下信息 Searching
  • 如何在Tensorflow中读取json文件?

    我正在尝试编写一个函数 用于读取张量流中的 json 文件 json 文件具有以下结构 bounding box y 98 5 x 94 0 height 197 width 188 rotation yaw 27 970195770263
  • Tastypie:GET 的身份验证和 POST 的匿名

    我使用 Django Tastypie 来管理我的用户集合 是否可以允许匿名用户在 API 中发布 在某个端点创建新用户时 并限制经过身份验证的用户仅获取自己的用户 而不是所有用户 感谢您的帮助 我发现最简单的事情就是对我正在使用的身份验证
  • 对训练和测试数据帧使用相同的标签编码器

    我有 2 个不同的 csv 其中包含训练数据和测试数据 我从这些 train features df 和 test features df 创建了两个不同的数据帧 请注意 测试和训练数据有多个分类列 因此我需要对它们应用 labelEnco
  • Keras ImageDataGenerator 验证分割未从打乱的数据集中选择

    如何将图像数据集随机拆分为训练数据集和验证数据集 更具体地说 validation splitKeras 中的论证ImageDataGenerator函数不是随机地将我的图像分割为训练和验证 而是从未洗牌的数据集中分割验证样本 当指定val
  • OSMNX - 边缘的哪个“部分”被认为是最近的

    我正在使用 OSMNX 中的 returned edges 函数 我不清楚在进行此计算时使用边缘的哪个 部分 它是边缘的任何部分吗 是中间点吗 对于网络中的长边来说 这会产生很大的差异 这取决于您如何参数化该函数 来自nearest edg
  • 从 paramiko 获取 PID

    我找不到一个简单的答案 我正在使用 paramiko 远程登录并执行多个进程 我需要每个进程的 PID 以便稍后检查它们 paramiko 中似乎没有函数来获取执行命令的 PID 所以我尝试使用以下命令 stdin stdout stder
  • 我可以使用对象(类的实例)作为 Python 中的字典键吗?

    我想使用类实例作为字典键 例如 classinstance class dictionary classinstance hello world Python似乎无法将类作为字典键处理 还是我错了 另外 我可以使用像 classinstan
  • python中matlab find函数的替换

    我正在尝试寻找合适的python函数来替代matlabfind在我的脚本和一些谷歌搜索中我看到np where 大多数时候都能解决目的 但在双重条件的情况下 我有不同的输出 有人可以告诉我这种方法有什么问题以及如何继续吗 示例代码和差异如下
  • 如何向 Iron Python 添加模块?

    我一直在尝试使用 C Visual Studio 执行以下 Python 代码 graphcreater py 我通过 NuGet 包管理器添加了 IronPyton 2 7 7 和 IronPython StdLib 2 7 7 一旦我运
  • 使用 Cython 扩展模块分发共享库和一些 C 代码

    我正在尝试从大型 C 共享库 libbig so 中获取一些函数 并通过 Cython 将它们公开给 Python 为此 我有一个小 C 文件 small cpp 它为我需要的共享库的功能提供了一个薄包装器 从而可以轻松地通过 Cython
  • 相比之下,超出了最大递归深度

    我写了这段代码来计算组合的数量 def fact n return 1 if n 1 else n fact n 1 def combinations n k return fact n fact n k fact k while True
  • PySpark:根据与另一列中的字符串匹配的字典值创建新列

    我有一个数据框 A 如下所示 ID SOME CODE TITLE 1 024df3 Large garden in New York New York 2 0ffw34 Small house in dark Detroit Michig
  • 在 AWS ec2 实例上使用“sudo pip”时出现错误

    我正在尝试在 aws ec2 实例上运行一个小型 python 代码 需要 pytz 和其他一些包 当我尝试安装 pytz 时 出现一些错误 ec2 user ip 172 31 28 178 pip install pytz Collec
  • 如何在C++中动态调用函数

    除了 boost Bind Function 之外 我如何在 C 中动态调用函数 PHP has obj new MyObject function doSomething obj gt function Objective C 有 MyO

随机推荐

  • 自举流体和静态容器

    我正在尝试在单页引导布局中将流体容器与固定容器结合起来 我想要的是 例如 有一个大图像作为英雄单元 但不是英雄单元 视口的 100 宽度 高度 或者 3 列图像除以 100 但在其他情况下 在同一页面内 它将具有最大 1200px 容器以及
  • JavaScript 代码约定 - 变量声明 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PHP中有pdf模板的解决方案吗?

    我需要通过 PHP 生成 pdf 格式的报价 并使用模板和从数据库检索的动态值 它可行吗 更新 我看到人们最近对此表示赞同 并想补充一点wkhtml转pdf http code google com p wkhtmltopdf对于大多数应用
  • pymssql 抛出 ImportError: 使用 py2exe 构建应用程序时没有名为 _mssql 的模块

    我有 python 应用程序应该作为 Windows 可执行文件启动 我正在使用 py2exe 和 pymssql 1 9 908 我使用下一个构建脚本来生成应用程序 from distutils core import setup imp
  • 使用具有相同控制器的 STI 路径

    我正在使用 STI 想知道是否必须为每个型号配备单独的控制器 我遇到了一种情况 我只对 STI 关系中的一个模型使用创建和编辑操作 但如果我尝试为其创建表单 则会收到 未定义方法 错误 更具体地说 我有两个继承自 List 的模型 clas
  • Emacs lisp 计算 alist 中的变量

    这是一个后续问题Emacs Lisp 评估列表中的变量 https stackoverflow com questions 1664202 emacs lisp evaluate variable in alist 我正在尝试设置defau
  • Android中动态设置TextView的宽度和高度

    我正在尝试动态设置 TextView 宽度 使用setWidth width method txtviewOne setWidth 10 txtviewTwo setWidth 10 但没有成功 请帮助我如何动态设置textview的宽度
  • Python的collections.Counter和nltk.probability.FreqDist之间的区别

    我想计算文本语料库中单词的术语频率 我已经使用 NLTK 的 word tokenize 和probability FreqDist 一段时间来完成这项工作 word tokenize 返回一个列表 通过 FreqDist 将其转换为频率分
  • 在android中复制列表项

    我找到了一个示例 它在列表视图中显示所有联系人 并让您呼叫单击的联系人 但是 我只想复制联系电话放在剪贴板上 并在选择列表项时显示 toast public class ContactListActivity extends Activit
  • Ansible:检查服务是否正在侦听特定端口

    您将如何使用 Ansible 来确认服务是否正在特定端口上运行 例如 Apache 是否在端口 80 上运行 MySQL 是否正在监听 3912 端口 Tomcat 正在监听 8080 端口吗 据我了解 有service and wait
  • 外部接口和 Internet Explorer 9 问题

    天哪 我讨厌外部接口吗 我有一个视频播放器 它利用外部接口来控制 Flash 对象并允许 Flash 对象将消息传递给相同的 JavaScript 有一段时间它在所有浏览器中都运行良好 然后几天前 在我将项目移出开发之前 我去所有浏览器中测
  • 在 IntelliJ“新项目”>“Maven”选项卡中更新 Maven 原型列表

    如何更新 IntelliJ IDEA 版本 2017 2 中 新建项目 对话框中列出的 Maven 原型列表 手动触发Maven缓存更新 IntelliJ 2017 2 与 Maven 相比并不那么 智能 您必须手动调用列出原型的存储库信息
  • MONGODB Mongoimport 可能加速吗?

    我有一个 2 GB 的 CSV 文件 其中包含 9 M 条记录 我使用本机 mongoimport 工具将其导入到 MongoDB 中 它以每秒 8K 的速率导入 CSV 总时间为 10 分钟 导入速度相当合理 但似乎比MySQL LOAD
  • Python转储带有重音符号的json[重复]

    这个问题在这里已经有答案了 如何打印带有特殊字符 或 的json 我可以这样打印 import json weird dict person print json dumps weird dict indent 4 sort keys Tr
  • 在 coord_polo 上制作弯曲文本

    我想用 coord polar 在 ggplot 周围制作弯曲文本 我有数据框 z lt data frame a c sensor 1 sensor 2 sensor 3 sensor 4 sensor 5 sensor 6 sensor
  • cd 命令不会更改目录。命令提示符

    我有 Windows 8 并且正在使用命令提示符 它说 C Windows System32 gt 如果我尝试更改目录 它会显示 系统找不到指定的路径 在这种情况下 我输入以下命令 cd desktop 它在我的 Windows 7 计算机
  • Asp.net MVC ModelState.Clear

    谁能给我一个关于 ModelState 在 Asp net MVC 中的作用的简洁定义 或者一个链接 我特别需要知道在什么情况下有必要或需要打电话ModelState Clear 有点开放式结局吧 抱歉 我认为告诉您我实际上在做什么可能会有
  • 是否有与 InlineModelAdmin 等效的 get_form 方法?

    我试图在继承的类中显示不同的字段堆叠内联取决于它是新实例还是现有实例 即添加或更改表单 我知道在继承的类中模型管理员我可以重写 get form 方法来实现此目的 如下所述here https stackoverflow com quest
  • Django:在自定义 URL 后面提供媒体服务

    所以我当然知道通过 Django 提供静态文件会让你直接下地狱 但我对如何使用自定义 url 来使用 Django 掩盖文件的真实位置感到困惑 Django 在通用视图中提供下载服务 https stackoverflow com ques
  • 错误消息指出变量未定义(当变量已定义时)。 Python

    我正在尝试使用函数在 python 中创建一个简单的加密程序 但是遇到一个问题 当我运行程序时 我收到一条错误消息 提示 msgReversed 未定义 该程序的工作原理是首先反转用户消息 然后将字母转移到密钥的值 alphabet abc