在python中有switch-case语句,Python中case

  在python中有switch-case语句,Python中case

  原因:

  函数里用的是局部变量,从而函数调用结束后会被销毁。如果不声明是全局变量,那么就会报错:(注意灰色字体注释的地方)

  定义load_data():从keras.datasets导入mnist #全局train_image,train_lable,test_image,test_lable (train_image,train_lable),(test_image,test _ lable)=mnist。load _ data()print(训练数据个数:%d % len(train_image)) print(测试数据个数:% d % len(test_image))返回train _ image,train_lable,test_image,test _ labled ef image _ show(image):fig=PLT。GCF()fig . set _ size _ inches(2,2) plt.imshow(image,cmap= binary )PLT。show()load _ data()image _ show(train _ image[0])报错:

  解决方法:

  加上关键字:global

  定义load_data():从keras.datasets导入手写数字识别全局train_image,train_lable,test_image,test_lable (train_image,train_lable),(test_image,test _ lable)=mnist。load _ data()print(训练数据个数:%d % len(train_image)) print(测试数据个数:% d % len(test_image))返回train _ image,train_lable,test_image,test _ labled ef image _ show(image):fig=PLT。GCF()fig . set _ size _ inches(2,2) plt.imshow(image,cmap= binary )PLT。show()load _ data()image _ show(train _ image[0])搞定:

  后来又遇到了问题:

  定义load_data():从keras.datasets导入手写数字识别全局train_image,train_lable,test_image,test_lable (train_image,train_lable),(test_image,test _ lable)=mnist。load _ data()print(训练数据个数:%d % len(train_image)) print(测试数据个数:%d % len(test_image))返回train_image,train_lable,test_image,test _ labled ef image _ show(image):fig=PLT。GCF()fig . set _ size _ inches(2,2) plt.imshow(image,cmap= binary )PLT。show()def data _ preprocessing():train _ image=train _ image。shape(60000,784)test _ image=test _ image。形状(10000,784) train_image=train_image报错:

  我已经在def load_data()函数里声明了全局变量,为什么还有这个错误呢?

  原因:

  如果在函数内部设置变量的值,则大蟒会将其理解为使用该名称创建局部变量,此局部变量会掩盖全局变量。

  解决:

  可以通过将全局变量放入到需要用到的函数中,来明确表示它是全局变量。

  修改def data_preprocessing():

  def data _ preprocessing():全局train _ image,train_lable,test_image,test _ lable train _ image=train _ image。shape(60000,784)test _ image=test _ image。shape(10000,784)train _ image=train _ image。astype( float 32 )test _ image=test _ image。astype( float 32 )train _ image/=255 test _ image/=255 print(train _ image[0])搞定。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: