可能重复:
Python Simple Program
我是编程新手并尝试学习python。我正在尝试编写一个简单的代码但是很难。
所以这是输入文本文件
A 1 2 3 4
B 5 6 7 8
C 9 10 11 12
有人可以帮助我如何输出与我将要输入的第一列元素相对应的第二列和第三列的元素?换句话说,我应该如何编写一个程序,所以当程序要求我输入一个字母时输入“B”,程序将输出“5”和“6”,它们是对应于“B”的第二和第三列的元素。
至少有人可以给我一些暗示,我该如何处理?
到目前为止,我有:f=open('path of a file','r')
for line in f.readlines():
data = line.split(' ')
if len(data) == 5:
#print data[0]
letter=raw_input("Enter the letter")
print letter
答案 0 :(得分:2)
请从初学者的教程开始,例如免费的http://learnpythonthehardway.org/book/
针对您的具体问题,您想在屏幕上以图形方式绘制该线吗?如果是这样,您还需要使用某种GUI工具包。我更喜欢Qt,但GTK,wxPython和Tk等其他选项也是可行的。如果你不需要绘制它,那只是一个简单的数学问题。
从教程开始,当您遇到一些无法正常工作的代码或一个令您不安的特定设计问题时,请询问另一个更具体的问题。
以下是基于您提供的一些代码,为您提供填写的基本结构
#open file
f=open('path of a file','r')
#some data structure to store the file data in. A list or dictonary could both be useful.
my_data = ...
#populate data structure
for line in f.readlines():
#put the line in my data structure in some way
#splitting the line and storing the resulting list could be useful
#again, a dictionary may be useful here too (indexed by the "code" value)
#get user input
letter=raw_input("Enter the letter")
#handle bad user input
#calculate what you need
#display output
答案 1 :(得分:1)
python中的'2nd'和'3rd'元素与您在此处说的'2nd'和'3rd'元素不同。在python中,有zeroth
元素,因此B
的“第一个”元素实际上是6
,而不是5
。
是的,这很奇怪,但就是这样。
解决此问题的诀窍在于A
,B
,C
和D
的可预测性;你的问题表明每一行都会有一个元素列表。其中每个元素至少包含三个元素,这意味着您可以获取列表中的[1]
和[2]
元素而不会遇到IndexError
。
像其他答案/评论建议一样,拿起python教程,一旦你完成了一半,请向其他同学或老师寻求帮助,如果你仍然被卡住了。
祝你好运,编码愉快!
答案 2 :(得分:0)
一种简单的方法:
file = open('filename', 'r', 0)
dict = {}
for line in file:
line = line.strip().split(' ')
dict[line[0]] = (line[1], line[2])
letter = raw_input('Enter letter')
print dict[letter]
当然,您可以操作元组部分并进行打印。