Python 使用字典作为用户输入的答案键
这意味着只有当用户输入字典中的文件扩展名时,才会中断循环:Python 使用字典作为用户输入的答案键,python,dictionary,Python,Dictionary,这意味着只有当用户输入字典中的文件扩展名时,才会中断循环: def ext_input(): ext_dict = {'doc', 'docx', 'pdf', 'rtf', 'txt', 'wps', 'csv'} while True: print('Enter the file extension (.pdf, .txt, etc..) type "help" for a list of extensions') fileExt = inpu
def ext_input():
ext_dict = {'doc', 'docx', 'pdf', 'rtf', 'txt', 'wps', 'csv'}
while True:
print('Enter the file extension (.pdf, .txt, etc..) type "help" for a list of extensions')
fileExt = input()
if fileExt == "help":
print(ext_dict)
return
elif fileExt != ext_dict:
print('Please enter a correct file extension (.pdf, .txt, etc..) type "help" for a list of extensions')
else:
print("\"%s\" has been selected" % fileExt)
break
对于python来说还是比较新的,任何指向正确方向的指针都非常好您的
ext_dict
应该是一个列表,而不是一个字典(它不是字典,请参见Bruno的答案),它允许修改以下代码:
def ext_input():
ext_dict = ['doc', 'docx', 'pdf', 'rtf', 'txt', 'wps', 'csv']
while True:
print('Enter the file extension (.pdf, .txt, etc..) type "help" for a list of extensions')
fileExt = input()
if fileExt == "help":
print(ext_dict)
return
elif fileExt not in ext_dict:
print('Please enter a correct file extension (.pdf, .txt, etc..) type "help" for a list of extensions')
else:
print("\"%s\" has been selected" % fileExt)
break
首先,您的
帮助命令
不是命令
,而是集合
第二:你在比较一个字符串和一个集合——当然,这个集合永远不会相等。测试一个集合是否包含一个元素是通过操作符中的来完成的,如果myset中有某个东西:
——对于不明显的情况,您只需在中使用而不是。瞧,你想要:
elif fileExt not in ext_dict:
# XXXX
你能澄清一下你的问题是什么吗?它不是一个dict,实际上,它是一个set,因此是用于快速包容测试的正确类型-elt in set
是O(1),而elt in list
是O(n)。是的,但我的回答是基于这样一个假设,即他确实认为ext_dict
是一本字典;-)不过,感谢您提供的详细信息,我想知道使用列表或集合是否会带来性能成本。当然,这在这里没有任何真正的影响,这个列表很小,但很高兴知道这一点!我会修正我的答案。谢谢我知道事情就这么简单,你知道的越多!谢谢