如何询问用户的输入以使代码具有交互性

时间:2015-08-14 08:35:46

标签: python python-2.7

我创建了这段代码:

gene = open("AY365046.1.txt","r")

g=0;
a=0;
c=0;
t=0;

gene.readline()

for line in gene:
    line = line.lower()
    for char in line:
        if char == "g":
            g+=1
        if char == "a":
            a+=1
        if char == "c":
            c+=1
        if char == "t":
            t+=1

print "Guanina: " + str(g)
print "Adenina: " + str(a)
print "Citosina: " + str(c)
print "Timina: " + str(t)

gc = (g+c+0.) / (a+t+c+g+0.)

print "Conteúdo GC: " +str(gc)

现在我想让它互动...我的目标是使用 input()功能来获取“序列号”,它将显示相应的数据......

在上面的代码中,它只获取一个序列/文件的数据(AY365046.1.txt)...因此,我需要代码才能访问更多文件(例如, sequence1.txt sequence2.txt )...然后,获取 g a c 输入()功能上通知序列/文件的strong>和 t ...

例如:

1)系统要求输入序列号

2)用户输入 sequence2

3)系统从 sequence2.txt

获取数据

4)变量 g a c t 从该文件中获取数据

5)如果序列不存在,则打印错误...

据我所知,要做到这一切,我只需要声明变量,将.txt文件分配给每一个变量,然后创建一个if / else ......

问题是我已经尝试了所有我能找到的东西,但没有任何作用......

显然我不是要求为我制作代码,但是......你们至少可以告诉我在哪里需要开始吗?我需要做的逻辑是正确的吗?我错过了什么?

2 个答案:

答案 0 :(得分:1)

我想你想要这个:

import os

id = raw_input('please enter the file numbers id:')
file='AY{0}1.txt'.format(id)

if not os.path.exists(file):
    print "Error the file doesn't exists"
else:
    g,a,c,t=0,0,0,0
    with open(file,'r') as f:
        next(f)
        for line in f:
            for char in line.lower():
                if char == 'g':
                    g+=1
                if char == 'a':
                    a+=1
                if char == 'c':
                    c+=1
                if char == 't':
                    t+=1

    print "Guanina: {0}".format(g)
    print "Adenina: {0}".format(a)
    print "Citosina: {0}".format(c)
    print "Timina: {0}".format(t)

    gc = (g+c+0.) / (a+t+c+g+0.)

    print "Conteúdo GC: {0}".format(gc)

但我认为您应该解释代码的预期行为,因为它并不是很清楚。

答案 1 :(得分:-2)

我在您的代码中看到的问题是您只从文本文件中读取一行。下面的代码将返回整个文档的列表,以便您可以按照其余代码的方式进行迭代。

with open("AY365046.1.txt","r") as f:
   lines = f.readlines()

您可以在manual

中详细了解该文件对象