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

为了避免unboundLocalError和为什么X的值一直不变呢?

## 1.为了避免unboundLocalError

发生unboundLocalError!
def generate_integer(level):
    if level  == 1:
        X = randint(1,9)
    return X
    这里出错的原因在于,一旦if 后面的条件没有成立,然后X根本没出生,然后你去使用它,这是有问题的

(这是搜到的例子)
在这里插入图片描述
1.第一个解决的办法:就是在def里面无条件的赋值,也是最简单的
在这里插入图片描述
2.使用场景,你需要修改def外面的全局变量,应该要在def里面global一下,不然改不了
在这里插入图片描述
3.使用场景,多个def 函数,需要在内部def 里面使用nonlocal关键词一下,才可以修改外部def里面的变量
在这里插入图片描述

2. 一些容易误解的概念

1.全局初始化 和 无条件赋值的区别:
这里问X没有全局初始化?X在函数中没有无条件赋值?
不是一个概念。

简:
全局初始化:def外面的无条件赋值
函数中无条件赋值:def里面的无条件赋值

2.python 和 C语言 作用域的区别:

简:
python:只有def或者class可以生小孩(变量)。
没有语句块,例如if else ,match…case等等
C语言:所有人(block,只要是带花括号的{})都可以生小孩(变量)
共性:自己生的小孩(变量),在自己肚子里和身边活动(作用域)

3. 为什么X的值一直不变呢?

确实(if 的条件不成立)不一样,所以一直不变
细心的盆友会发现,我们 input的东西是一个 str,不是数字,
这就是为什么一直X的值没有任何变化
from random import randint
def generate_integer(level):
    X = 10
    if level  == 1:
        X = randint(1,9)
    return X
def get_level():
    level = input("Level: ")
    my_list = [1,2,3]
    while True:
        if not level.isdigit():
            level = input("Level: ")
        elif int(level) not in my_list:
            level = input("Level:")
        else:
            return level
level = get_level()
answer = generate_integer(level)
print(level)
print(answer)

修改:
level = int(get_level())

相关文章:

  • Gartner发布软件供应链安全市场指南:软件供应链安全工具的8个强制功能、9个通用功能及全球29家供应商
  • 如何查看linux history命令文件
  • 【pm2】pm2启动无法访问接口 ,node命令启动却可以
  • 使用nhdeep档案目录打印工具生成干部人事档案目录打印文件
  • 0501路由-react-仿低代码平台项目
  • [问题帖] vscode 重启远程终端
  • jsoup解析页面保留换行符
  • 计算机视觉色彩空间全解析:RGB、HSV与Lab的实战对比
  • 蓝桥杯C/C++省赛/国赛注意事项及运行环境配置
  • 淘宝商品数据实时抓取 API 开发指南:从接口申请到数据解析实战
  • [原创](现代Delphi 12指南): 设置、运行和调试你的第一个macOS应用程序.
  • JZ31 栈的压入、弹出序列
  • 穿透三层内网VPC1
  • 反转链表系列
  • UVa1367/LA3532 Nuclear Plants
  • 第十五届蓝桥杯大赛软件赛省赛Python 大学 B 组试做(下)【本期题单: 缴纳过路费, 纯职业小组】
  • Asp.NET Core WebApi 配置文件
  • 网站集群批量管理-Ansible剧本与变量
  • 什么是生产管理看板?
  • Google Cloud Next 2025大会发布多项重大产品
  • 如何查询网站打开速度变慢/搜索引擎广告形式有
  • 技术支持 沧州辉煌网络-网站建设/百度网盘下载
  • 专业的广州商城网站建设/iis搭建网站
  • 推荐聊城做网站的公司/百度关键词排名神器
  • 松江区做网站的公司/免费大数据网站
  • 汕头市营商环境建设监督局网站/企业网站怎么推广