当前位置: 首页 > news >正文

Python中的函数未定义的错误

前言:

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

通过这个解释,我们将了解当Python程序显示类似NameError: name ‘’ is not defined的错误时,即使该函数存在于脚本中,也会出现这种情况。

我们还学习了当我们使用拼写错误的变量或没有导入的内置函数时会发生什么,以及如何在Python中避免这些错误。

避免在Python声明之前调用函数

在Python中有很多原因会导致NameError: function is not defined,我们将讨论导致此错误的最常见原因。

当我们在程序中定义函数之前调用它时,Python解释器将无法找到函数定义。

在这种情况下,函数将不可见,Python解释器尚未遇到函数定义。

因此,Python解释器会感到困惑并抛出错误,这意味着该函数尚未根据解释器定义。

让我们看一个简单的例子在这个程序中,我们在定义函数之前编写了一个调用语句。

由于解释器逐行执行Python程序,当它开始执行第一行时,它会遇到一个特定的函数调用,但它不知道Hello()是什么。

Hello()
def Hello():print('I will never be called')

当我们运行这个Python脚本时,它会对它是否是一个函数感到困惑,Python解释器会停止并抛出一个错误。

这是因为这个函数的定义在函数调用之后才出现;这就是为什么我们永远不能在定义一个函数之前调用它。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
NameError: name 'Hello' is not defined

我们需要在调用函数之前定义它来修复这个错误。

避免在Python中使用拼写错误的变量或函数名

出现此错误的另一个原因是用户在定义函数的正确拼写时出错;这就是为什么用户得到这种类型的错误。

Python是大小写敏感的,所以小写和大写将是不同的函数。

我们检查一个例子来演示解释器在得到拼写错误的变量时如何操作。

Orange='orange'
for i in orange:print(i)

输出:

NameError: name 'orange' is not defined

当我们运行Python脚本时,我们得到一个错误,说’orange’ is not defined,但这次我们没有犯拼写错误,那么为什么即使我们定义了这个变量,我们还是得到这个错误呢?

这是因为我们定义了一个以大写字母开头的变量,并试图用小写字母访问它。

相同的场景将应用于函数。如果我们用Orange覆盖orange变量,它就可以工作。

orange='orange'
for i in orange:print(i)

输出:

o
r
a
n
g
e

避免在Python中使用没有导入的内置模块

比如说,当你在写一个Python程序时,如果你想使用任何内置的函数,比如print(),input()等,你可以在代码中使用它。

当你需要使用一个不是内置在Python中的函数,而是存在于某些模块中时,会发生什么?

要使用属于某些模块的函数,必须首先将该模块导入Python程序。

一些初学者在尝试使用模块中的函数而不是导入该特定模块时会失败;

看一个例子:

在这个程序中,用户试图生成随机值,但是当用户运行这个代码时,用户得到了我们讨论过的同样的错误。

原因是用户失败了,它试图访问random()函数而不导入其模块random。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
Randome_Values=random.random()
print(Randome_Values)

输出:

NameError: name 'random' is not defined

当用户在Python脚本中导入random模块时,它会工作。

import random
Randome_Values=random.random()
print(Randome_Values)

输出:

0.07463088966802744

有时候,用户自己编写Python模块,但遇到了同样的问题,并得到相同的错误。

这是因为用户在导入类后试图从另一个文件调用函数,但可能用户没有保存定义函数的文件,这就是用户出现此错误的原因。因此,请确保在调用此函数之前保存它。

修复Python中的变量超出范围问题

大多数初学者失败的另一个原因是,当他们试图访问范围外的变量时,会得到同样的错误。让我们看一个例子,我们将得到更好的理解。

def take_order():orders=input("Enter your orders and separate it using comma :").split(',')return orders
def Delete_Orders():deleted_orders=input("Enter your order name which you want to cancel :")orders.remove(deleted_orders)return orders
print(take_order())
print(Delete_Orders())

当我们运行这个Python脚本时,take_order()函数将正常工作,但是当我们调用Delete_Orders()函数从orders列表中删除订单时,错误发生了。

NameError: name 'orders' is not defined

这是因为orders变量是在take_order()函数中定义的,我们试图从Delete_Orders()函数访问它。这就是为什么当执行控制到达我们从orders列表中删除项的位置时;它抛出一个错误,因为我们正在访问它的范围之外。

为了解决这个问题,我们必须声明一个存储空字符串的变量,变量名为orders。之后,我们需要使用global关键字,我们称之为orders变量,以使其可重用。

orders=''
def take_order():global ordersorders=input("Enter your orders and separate it using comma :").split(',')return orders
def Delete_Orders():deleted_orders=input("Enter your order name which you want to cancel :")orders.remove(deleted_orders)return orders
#Python小白学习交流群:926207505
print(take_order())
print(Delete_Orders())

输出:

Enter your orders and separate it using comma :pizza,drink,water
['pizza', 'drink', 'water']
Enter your order name which you want to cancel :water
['pizza', 'drink']

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

相关文章:

Python中的函数未定义的错误

前言: 嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 通过这个解释,我们将了解当Python程序显示类似NameError: name ‘’ is not defined的错误时,即使该函数存在于脚本中&…...

AG35学习笔记(二):安装编译SDK、CMakeLists编译app、Scons编译server

目录 一、概述二、安装SDK2.1 网盘SDK - 权限不够2.2 bj41 - 需要交叉source2.3 mullen - relocate_sdk.py路径有误 三、编译SDK3.1 /bin/sh: 1: gcc: not found3.2 curses.h: No such file or directory 四、CMakeLists - 编译app4.1 cmake - 项目构建4.2 make - 项目编译4.3 …...

多台服务器sessionId共享

目录 多台服务器sessionId共享解决方案:ASP.NET Core 参考代码(NET 7):登录处理登录(请求)过滤器过滤器使用BaseController 多台服务器sessionId共享 session id是服务器首次与浏览器创建连接时,生成的id值,存入浏览器…...

如何在Gazebo中实现多机器人编队仿真

文章目录 前言一、仿真前的配置二、实现步骤1.检查PC和台式机是否通讯成功2.编队中对单个机器人进行独立的控制3、对机器人进行编队控制 前言 实现在gazebo仿真环境中添加多个机器人后,接下来进行编队控制,对具体的实现过程进行记录。 一、仿真前的配置…...

迅为iTOP-iMX6QPLUS-Android6.0下uboot添加网卡驱动

本文档介绍在 iTOP-iMX6Q 和 iTOP-iMX6Q-PLUS 安卓 6.0 的 uboot 上添加网卡驱 动,添加完网卡驱动以后,uboot 就可以正常使用网络了。 1 具体步骤 1.1 修改 mx6sabre_common.h 文件 在 iTOP-iMX6_android6.0.1 源码目录下输入以下命令,打…...

sql server 触发器的使用

看数据库下的所有触发器及状态 SELECT a.name 数据表名 , sysobjects.name AS 触发器名 , sysobjects.crdate AS 创建时间 , sysobjects.info , sysobjects.status FROM sysobjects LEFT JOIN ( SELECT * FROM sysobjects WHERE xtype U ) AS a ON sysobjects.parent_obj a.…...

使用亚马逊云服务器在 G4 实例上运行 Android 应用程序

随着 Android 应用程序和游戏变得越来越丰富,其中有些甚至比 PC 上的软件更易于使用和娱乐,因此许多人希望能够在云上运行 Android 游戏或应用程序,而在 EC2 实例上运行 Android 的解决方案可以让开发人员更轻松地测试和运行 Android 应用程序…...

Direct3D融合技术

该技术能使我们将当前要进行光栅化的像素的颜色与先前已已光栅化并处于同一位置的像素的颜色进行合成,即将正在处理的图元颜色值与存储在后台缓存中的像素颜色值进行合成(混合),利用该技术我们可得到各种各样的效果,尤其是透明效果。 在融合…...

【计算机网络】信号处理接口 Signal API(1)

收发信号思想是 Linux 程序设计特性之一,一个信号可以认为是一种软中断,通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍,从而更好的理解信号编程。 signal 遵循 C11,POSIX.…...

贝叶斯滤波计算4d毫米波聚类目标动静属性

机器人学中有些问题是二值问题,对于这种二值问题的概率评估问题可以用二值贝叶斯滤波器binary Bayes filter来解决的。比如机器人前方有一个门,机器人想判断这个门是开是关。这个二值状态是固定的,并不会随着测量数据变量的改变而改变。就像门…...

华为hcie认证考试怎么考?

华为HCIE认证考试怎么考? 前文腾科也说了HCIE认证考试的难度会比较大,具体是难在哪里呢?华为HCIE认证的考试需要考一门笔试,笔试主要是单选、多选、判断、填空、拖拽这几个题型,考试时长一般是一个半小时,…...

vue +element 删除按钮操作 (删除单个数据 +删除页码处理 )

1.配置接口deleteItemById: "/api/goods/deleteItemById", //删除商品操作 2.get请求接口 // 删除接口 后台给我们 返iddeleteItemById(params){return axios.get(base.deleteItemById,{params})}3.异步请求接口 async deleteItemById(id){let res await this.…...

更新GitLab上的项目

更新GitLab上的项目 如有需要,请参考这篇:上传项目到gitlab上 1.打开终端,进入到本地项目的根目录。 2.如果你还没有将远程GitLab仓库添加到本地项目,你可以使用以下命令: 比如: git remote add origin …...

K8S群集调度

K8S群集调度 一、调度约束1.概述2.Pod 启动典型创建过程(工作机制 )3.调度过程4.Predicate 的常见的算法5.常见的优先级选项6.指定调度节点: 二、亲和性1.节点亲和性2.Pod 亲和性3.键值运算关系4.示例5.Pod亲和性与反亲和性6.使用 Pod 反亲和…...

完美解决Echarts X坐标轴下方文字最后一个字体加粗颜色加深的问题

之前用Echarts画图的时候,X坐标轴最后一个字存在自动加粗的问题。也是在网上找过解决办法没有找到,后面自己研究明白了后,在某篇文章下评论了如何解决。但是好像大家没有看评论的习惯,所以单独拿出来一篇文章,希望能给…...

WebGL 计算平行光、环境光下的漫反射光颜色

目录 光照原理 光源类型 平行光 点光源 环境光 反射类型 漫反射 漫反射光颜色 计算公式 环境反射 环境反射光颜色 表面的反射光颜色(漫反射和环境反射同时存在时)计算公式 平行光下的漫反射 根据光线和法线方向计算入射角θ(以便…...

解决SpringMVC在JSP页面取不到ModelAndView中数据

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 问题描述 ModelAndView携带数据跳转到指定JSP页面后在该页面通过EL表达式取不到原本存放在ModelAndView中的数据。 问题原因 在IDEA中创建Maven工程时web.xml中默认的约束…...

Spring 6.0 新特性

文章目录 Spring的发展历史AOTGraalVMSpringBoot实战AOTRuntimeHints案例分析RuntimeHintsRegistrar SpringBoot中AOT核心代码 Spring的发展历史 AOT Spring 6.0的新特性Ahead of Time(AOT)编译是一种技术,可以提前将Spring应用程序编译成原…...

计算机竞赛 深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数:2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络5 损失函数softmax 交叉熵5.1 softmax函数5.2 交叉熵损失函数 6 优化器SGD7 学…...

软件过程能力成熟度评估——CSMM认证

CSMM认证又称为“软件过程能力过程成熟度评估”,由中国电子技术标准化研究院联合五十余家产学研用相关方结合我国实际,自主制定的团体标准,于2021年6月8号发布,目的是为了帮助国内软件企业对自身的软件能力进行评估和判断&#xf…...

学内核之二十一:系统调用栈结构分析

目录 一 构建分析环境 二 栈的位置 三 栈开头8字节 四 寄存器环境 五 R4和R5 六 如何确定系统调用的具体函数 一 构建分析环境 为了分析方便,做了如下测试环境: 内核实现一个简单的创建字符设备的驱动 应用层实现一个c程序,操作为打开内…...

互联网3.0 数字原生——数物虚实多维细粒度泛在融合

随着计算机、宽带网、通信技术的飞速发展,互联网技术和软硬件系统也不断演进,催生了一场前所未有的数字化革命。从Web1.0到Web3.0,以及虚拟现实、人工智能和数字孪生等领域的崛起,每一步都勾画出了一个崭新的数字未来,…...

实现AIGC更好的数据存力,这家科技巨头为我们指明了方向

存力即数据存储能力 蕴藏着巨大的发展机会 【全球存储观察 | 热点关注】 2023年,全球被ChatGPT的热潮席卷,拥抱AIGC的创新赛道成为众多企业的新选择。 全球存储观察分析指出,影响AIGC发展的三大因素也日益凸显,即算…...

企业如何在抖音上搞到TOB潜在精准客户流量?

我们都知道,现在互联网上流量都被集中了几个大的平台里。而抖音,一定是绕不开那个!图片在公众号:白杨SEO上去看。 抖音,在很多人的传统印象里,还只是一个娱乐短视频APP,用来打发时间而已。事实…...

JeecgBoot v3.5.5 版本发布,性能大升级版本—开源免费的低代码开发平台

项目介绍 JeecgBoot是一款企业级的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue3,Mybatis-plus,Shiro,JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…...

与树上边权、连通块、二分块相关的问题(抓住各连通块之间的联系,考虑增量):CF444E

https://www.luogu.com.cn/problem/CF444E 首先肯定二分 然后是棵树,所以考虑按顺序枚举边权 然后肯定会有连通块和并查集 考虑现在场上有多个连通块,我们只保留大于 m i d mid mid 的边 则每个连通块都必须往外连边 一个很朴素的思路是判定每个连…...

解决VSCode下载速度很慢

这是VSCode的官网: Visual Studio Code - Code Editing. Redefined 按照官网的下载链接,速度实在是感人! 解决办法也很简单,把链接换为CDN加速的链接 把下载链接中的az764295.vo.msecnd.net 替换为👉 vscode.cdn.azu…...

悬赏算命测算源码可以用二维码收款 可以直接拿来运营

首发悬赏算命测算源码可以用二维码收款 可以直接拿来运营吸金!用户可以通过发布悬赏赏金算命,也可以通过升级发布测算任务来吸金 测试环境:php5.6apache2.4mysq5.6 安装教程: 测试环境:php5.6apache2.4mysq5.6 安装&…...

在Linux中安装nginx-1.20.1+php-7.4.28(增加扩展)

NginxPHP安装在公网IP为x.x.x.x的服务器上 需要下载安装的软件版本:nginx-1.20.1php-7.4.28 需要增加的PHP扩展如下: 在编译安装php-7.4.28时加上的pcntl; 单独下载安装的Wxwork_finance_sdk;(在编译安装php-7.4.2…...

使用vue-cli搭建SPA项目

一.SPA项目的构建 前提 nodeJS环境已经搭建完毕 node -v npm -v 什么是SPA项目 SPA(Single Page Application)项目是一种使用单页面架构的Web应用项目。在SPA项目中,整个应用程序只有一个HTML页面,通过动态加载数据和更新DOM来实…...

可不可以免费创建网站/建筑设计网站

JAVA问题总结13-从键盘输入并输出,加从键盘输入三个数,输出并按从大到小排序。 package java2; /*** 这是一个从键盘输入并输出的一个test* author xubo601450868* time 2015.8.26* version v1.0* */ import java.util.Scanner; public class test4 {pub…...

如何查询网站/百度关键词搜索引擎排名优化

nessus 转载于:https://www.cnblogs.com/cnqfz/p/11211145.html...

网站如何做支付宝接口/网站搭建软件

linux--文件大小1 简介2 命令介绍2.1 查看文件系统各分区2.2 查看目标文件大小2.2 查看目标路径下文件的二级文件大小3 示例3.1 查看U盘挂载节点3.2 查看当前路径二级文件大小参考1 简介 linux下查看文件大小常用的两个命令便是 df 和 du。 du 统计文件大小相加。 df统计数据块…...

可做宣传的网站都有哪些/站长工具大全

微机原理课程教学改革与计算思维之培养.doc微机原理课程教学改革与计算思维之培养摘要:结合军队院校微机原理课程教学现状,并研究和分析计算思维内涵,给出微机原理课程与计算思维培养的关系,进一步提出了以计算思维为导向的微机原…...

视频剪辑培训班的学费是多少/seo关键词排名系统

1.前言前几天,用es6的语法重写了我的一个代码库,说是重写,其实改动的并不多,工作量不大。在重写完了的时候,就个人总结了一下es6常用的一些常用的语法和比es5优越的方面。下面提到的语法可能也就是es6新特性的10%-20%&…...

做抢单软件的网站/seo排名第一

1. 常用的FormData对象方法 获取表单对象中属性的值 formData.get(key);设置表单对象中属性的值 formData.set(key, value);删除表单对象中属性的值 formData.delete(key);向表单对象中追加属性值 formData.append(key, value); 注意: set()方法与append()方法的区…...