|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
源码如下,当功能为一时输入电影的各项信息,然后再进入功能二来查找电影,但是报错film变量也就是大字典的前键没被定义这是为什么,顺便问一下如何测试python中的程序节点,本人大一学过c语言可以在vs一点点测试看问题,但是python编译器不知道如何测试 欢迎进入鱼c影评小程序
1.数据录入
2.查询数据
3.退出程序
请输入想要的功能(1/2/3)1
请输入电影名称:z
请输入上映日期:
请输入导演名字(多人请用/分隔)知
请输入演员名字(多人请用/分隔)2
请输入电影评分:2
请问是否继续录入:2
请输入想要的功能(1/2/3)2
请输入电影名称:z
Traceback (most recent call last):
File "E:\python\存储电影数据的小程序。.py", line 28, in <module>
if names in film:#判断一个键是否在字典中,用户输入的电影名字是否与数据库中的名字完全相符
NameError: name 'film' is not defined
>>> film
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
film
NameError: name 'film' is not defined
>>>
这是报错代码
print('欢迎进入鱼c影评小程序')
print('1.数据录入')
print('2.查询数据')
print('3.退出程序')
'''一个字典的所有项作为这个电影的各种信息,
然后信息字典作为数据字典的值与与之相应的字典配对'''
database = {}
information_module = ['日期','导演','演员','评分','继续否']
individual_information = []
#informations = information.fromkeys(('日期','导演','演员','评分','','继续否'),1)#对信息字典进行初始化
#fromkeys()是返回一个新的字典,需要一个新的变量来接受
functions = int(input('请输入想要的功能(1/2/3)'))
if functions == 1:
names = input('请输入电影名称:')
individual_information.append(input('请输入上映日期:'))
individual_information.append(input('请输入导演名字(多人请用/分隔)'))
individual_information.append(input('请输入演员名字(多人请用/分隔)'))
individual_information.append(input('请输入电影评分:'))
individual_information.append(input('请问是否继续录入:'))
flim = dict(zip(information_module,individual_information))
database[names] = flim
functions = int(input('请输入想要的功能(1/2/3)'))
#print(database)
if functions == 2:
names = input('请输入电影名称:')
if names in film:#判断一个键是否在字典中,用户输入的电影名字是否与数据库中的名字完全相符
print('电影名称:',names,
'上映日期:',films[names]['日期'],
'导演名单:',films[names]['导演'],
'演员名单:',films[names]['演员'],
'当前评分:',films[names]['评分'])
else:
for each in list(film.keys()):#从零开始遍历字典键,字典键对象转化成列表
if names in each:
print('电影名称:',each,
'上映日期:',films[each]['日期'],
'导演名单:',films[each]['导演'],
'演员名单:',films[each]['演员'],
'当前评分:',films[each]['评分'])
break
else:
print('查无此片!')
if functions == 3:
None
这是源码
在你的代码中,flim变量在功能为1的部分被定义为一个字典,然后赋值给了database变量。但是在功能为2的部分,你使用了一个没有被定义的变量film来判断电影名称是否存在于字典中。
解决这个问题很简单,你只需要将film改为database即可。修改后的代码如下:
print('欢迎进入鱼c影评小程序')
print('1.数据录入')
print('2.查询数据')
print('3.退出程序')
database = {}
information_module = ['日期', '导演', '演员', '评分', '继续否']
individual_information = []
functions = int(input('请输入想要的功能(1/2/3): '))
if functions == 1:
names = input('请输入电影名称:')
individual_information.append(input('请输入上映日期:'))
individual_information.append(input('请输入导演名字(多人请用/分隔):'))
individual_information.append(input('请输入演员名字(多人请用/分隔):'))
individual_information.append(input('请输入电影评分:'))
individual_information.append(input('请问是否继续录入:'))
film = dict(zip(information_module, individual_information))
database[names] = film
functions = int(input('请输入想要的功能(1/2/3): '))
if functions == 2:
names = input('请输入电影名称:')
if names in database:
film = database[names]
print('电影名称:', names)
print('上映日期:', film['日期'])
print('导演名单:', film['导演'])
print('演员名单:', film['演员'])
print('当前评分:', film['评分'])
else:
for each in database.keys():
if names in each:
film = database[each]
print('电影名称:', each)
print('上映日期:', film['日期'])
print('导演名单:', film['导演'])
print('演员名单:', film['演员'])
print('当前评分:', film['评分'])
break
else:
print('查无此片!')
if functions == 3:
None
至于如何测试Python程序的每个节点,可以使用Python中的调试器来逐行运行代码并查看变量值。常用的调试器有pdb和PyCharm等。你可以在需要进行调试的地方插入断点,然后运行程序时会停在断点处,使用调试器的命令来查看代码执行过程和变量的值。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
-
|