鱼C论坛

 找回密码
 立即注册
查看: 2269|回复: 4

[已解决]类中变量在未赋值前引用,可是想不明白

[复制链接]
发表于 2021-5-7 17:26:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import keyboard
  2. import time

  3. bookinformation = []
  4. bookinformation_number = 0

  5. class Menu:
  6.     def showmenu(self):
  7.         print('''欢迎来到图书管理系统
  8.                  添加图书 —— 1
  9.                  查询图书 —— 2
  10.                  借阅图书 —— 3
  11.                  归还图书 —— 4
  12.                  删除图书 —— 5''')
  13.         if keyboard.is_pressed('1'):
  14.             Bookmanager.addbooks()

  15. class Bookmanager:
  16.     def addbooks(self):
  17.         while True:
  18.                 information = input('请依次输入书的名字、作者、类型、添加日期,以及备注(请用空格分隔不同的信息)\n')
  19.                 information += ' '
  20.                 information_mediator = []
  21.                 one_information = ''
  22.                 information_array = []
  23.                 whether_to_execute = 0

  24.                 for i in information:
  25.                     if i == ' ':
  26.                         whether_to_execute += 1

  27.                 if whether_to_execute >= 5:
  28.                     for character in information:
  29.                         if character.encode() == ' '.encode():
  30.                             for character in information_mediator:
  31.                                 one_information += character
  32.                             if one_information != '':
  33.                                 information_array.append(one_information)
  34.                             one_information = ''
  35.                             information_mediator = []
  36.                         else:
  37.                             information_mediator.append(character)

  38.                     name = information_array[0]
  39.                     author = information_array[1]
  40.                     genre = information_array[2]
  41.                     add_date = information_array[3]
  42.                     marker = information_array[4]

  43.                     del information_array[5:]

  44.                     bookinformation.append(information_array)
  45.                     bookinformation_number += 1

  46.                     print('''成功添加图书
  47.                                 新书名字是 %s
  48.                                 作者是 %s
  49.                                 类型是 %s
  50.                                 添加日期是 %s
  51.                                 备注是 %s'''%(name,author,genre,add_date,marker))

  52.                     print('如添加有误,请按F键;正确请按J键')        
  53.                     while True:
  54.                         try:
  55.                             if keyboard.is_pressed('f'):
  56.                                 del bookinformation[bookinformation_number-1]
  57.                                 print('已删除此信息,开始重新添加')
  58.                                 bookinformation_number -= 1
  59.                                 break
  60.                             elif keyboard.is_pressed('j'):
  61.                                 break
  62.                         except:
  63.                             print('')

  64.                     time.sleep(0.2)

  65.                     print('继续添加图书信息请按F键,退出请按J键')         
  66.                     while True:
  67.                         try:
  68.                             if keyboard.is_pressed('f'):
  69.                                 break
  70.                             elif keyboard.is_pressed('j'):
  71.                                 return
  72.                         except:
  73.                             print('')

  74.                 else:   
  75.                     print('您的输入不完全或者有误,请重新输入')
  76.    
  77.                 buffer = input('请忽略本行内容,继续敲击回车键')

  78. test = Bookmanager()
  79. test.addbooks()
  80. print(bookinformation)
复制代码


2021-05-07_172539.png

还有我迫不得已才加了个buffer,有大神有什么好的办法没?
最佳答案
2021-5-7 21:20:52
修改全局变量,声明关键字了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-5-7 21:20:52 | 显示全部楼层    本楼为最佳答案   
修改全局变量,声明关键字了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-7 21:44:24 | 显示全部楼层
Stubborn 发表于 2021-5-7 21:20
修改全局变量,声明关键字了吗?
  1. import keyboard
  2. import time

  3. bookinformation = []
  4. bookinformation_number = 0

  5. class Menu:
  6.     def showmenu(self):
  7.         print('''欢迎来到图书管理系统
  8.                  添加图书 —— 1
  9.                  查询图书 —— 2
  10.                  借阅图书 —— 3
  11.                  归还图书 —— 4
  12.                  删除图书 —— 5''')
  13.         if keyboard.is_pressed('1'):
  14.             Bookmanager.addbooks()

  15. class Bookmanager:
  16.     def addbooks(self):
  17.         global bookinformation_number
  18.         global bookinformation
  19.         while True:
  20.                 information = input('请依次输入书的名字、作者、类型、添加日期,以及备注(请用空格分隔不同的信息)\n')
  21.                 information += ' '
  22.                 information_mediator = []
  23.                 one_information = ''
  24.                 information_array = []
  25.                 whether_to_execute = 0

  26.                 for i in information:
  27.                     if i == ' ':
  28.                         whether_to_execute += 1

  29.                 if whether_to_execute >= 5:
  30.                     for character in information:
  31.                         if character.encode() == ' '.encode():
  32.                             for character in information_mediator:
  33.                                 one_information += character
  34.                             if one_information != '':
  35.                                 information_array.append(one_information)
  36.                             one_information = ''
  37.                             information_mediator = []
  38.                         else:
  39.                             information_mediator.append(character)

  40.                     name = information_array[0]
  41.                     author = information_array[1]
  42.                     genre = information_array[2]
  43.                     add_date = information_array[3]
  44.                     marker = information_array[4]

  45.                     del information_array[5:]

  46.                     bookinformation.append(information_array)
  47.                     bookinformation_number += 1

  48.                     print('''成功添加图书
  49.                                 新书名字是 %s
  50.                                 作者是 %s
  51.                                 类型是 %s
  52.                                 添加日期是 %s
  53.                                 备注是 %s'''%(name,author,genre,add_date,marker))

  54.                     print('如添加有误,请按F键;正确请按J键')        
  55.                     while True:
  56.                         try:
  57.                             if keyboard.is_pressed('f'):
  58.                                 del bookinformation[bookinformation_number-1]
  59.                                 print('已删除此信息,开始重新添加')
  60.                                 bookinformation_number -= 1
  61.                                 break
  62.                             elif keyboard.is_pressed('j'):
  63.                                 break
  64.                         except:
  65.                             print('')

  66.                     time.sleep(0.2)

  67.                     print('继续添加图书信息请按F键,退出请按J键')         
  68.                     while True:
  69.                         try:
  70.                             if keyboard.is_pressed('f'):
  71.                                 break
  72.                             elif keyboard.is_pressed('j'):
  73.                                 return
  74.                         except:
  75.                             print('')

  76.                 else:   
  77.                     print('您的输入不完全或者有误,请重新输入')
  78.    
  79.                 buffer = input('请忽略本行内容,继续敲击回车键')

  80. test = Bookmanager()
  81. test.addbooks()
  82. print(bookinformation)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-7 21:45:16 | 显示全部楼层
Stubborn 发表于 2021-5-7 21:20
修改全局变量,声明关键字了吗?

谢谢,我查了下资料,解决了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-7 21:51:18 | 显示全部楼层
YouCam 发表于 2021-5-7 21:45
谢谢,我查了下资料,解决了

OK
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 05:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表