需要Python文件帮助

时间:2013-08-29 04:46:50

标签: python python-3.x

我的程序使用此程序可以正常检查具有周期表号和元素的文件:

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()

即使我们输入正确数量的元素或正确的名称,它仍然不是元素打印,

1 个答案:

答案 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!")

(警告:我没有尝试运行它,所以你可能需要调整一下以确保它正常工作)