我的程序使用此程序可以正常检查具有周期表号和元素的文件:
userline=input('Enter element number or element name: ')
userline=userline.capitalize()
f=open('periodic_table.txt')
while userline:
for line in f:
number,element=line.split()
但如果我像这样添加到程序中:
else:
print('Thats not an element!')
userline=input('Enter element number or element name: ')
userline=userline.capitalize()
即使我们输入正确数量的元素或正确的名称,它仍然不是元素打印,
答案 0 :(得分:0)
您当前的方法不起作用的原因是因为您正在遍历列表。如果执行userline != element
,则第一次遇到与用户输入不相等的元素或数字时,程序将打印错误消息。由于您循环遍历每个元素周期表元素,因此您将收到大量错误消息!
相反,首先尝试将每个元素周期表元素和数字添加到字典或列表中。这样,您可以检查用户输入的内容是否在字典中,并返回错误消息,而不必循环遍历整个事物。
以下是您可能想要尝试的简短示例:
# The "with" statement automatically closes the file for you!
with open('periodic_table.txt') as f:
numbers = {}
elements = {}
for line in f:
num, element = line.split()
numbers[num] = element
elements[element] = num
while True:
userline = input('Enter element number or element name: ')
userline = userline.capitalize()
if userline in numbers:
print('Element number ' + userline + ' is ' + numbers[userline])
elif userline in elements:
print('Element number for ' + userline + ' is ' + elements[userline])
else:
print("That's not real!")
(警告:我没有尝试运行它,所以你可能需要调整一下以确保它正常工作)