Python学习一、一个小例子

一、题目:

  对于一串氨基酸序列(由字母表前二十个大写字母组成),需要得到每一个氨基酸数目,然后输出到文件夹D:\test\frq.txt,要求用循环和字典实现。

  氨基酸序列如下:

  ABCDEFGHIJKLMNNLKJIHDCBA

  frq.txt的例子如下:

  第一行是题目。

  第二行是二十个个氨基酸的首字母,中间以'\t'分隔

  第三行是每一个氨基酸出现的次数,中间以'\t'分隔

  第四行是每一个氨基酸出现的频率,中间以'\t'分隔

二、分析

  首先是创建字典。然后每一个字典的值设为0.

  然后通过循环遍历,得到每一个字母出现的次数。

  然后打开文件(没有这个文件夹或者是文档需要创建)

  然后是输出。

三、代码

  代码如下:

#如果目录不存在,则创建
import os
dirs = 'D:\\test'
if not os.path.exists(dirs):
    os.makedirs(dirs)
#创建字典
dirt1={ 'A':0, 'B':0, 'C':0, 'D':0, 'E':0,
             'F':0, 'G':0, 'H':0, 'I':0, 'J':0,
             'K':0, 'L':0, 'M':0, 'N':0, 'O':0,
             'P':0, 'Q':0, 'R':0, 'S':0, 'T':0
 }
#这里输入检索字符串

str="MNAPERQPQPDGGDAPGHEPGGSPQDELDFSILFDYE\
YLNPNEEEPNAHKVASPPSGPAYPDDVLDYGLKPYSPLASL\
SGEPPGRFGEPDRVGPQKFLSAAKPAGASGLSPRIEITPSHE\
LIQAVGPLRMRDAGLLVEQPPLAGVAASPRFTLPVPGFEGYR\
EPLCLSPASSGSSASFISDTFSPYTSPCVSPNNGGPDDLCPQF\
QNIPAHYSPRTSPIMSPRTSLAEDSCLGRHSPVPRPASRSSSP\
GAKRRHSCAEALVALPPGASPQRSRSPSPQPSSHVAPQDHGSPA\
GYPPVAGSAVIMDALNSLATDSPCGIPPKMWKTSP"

#简单测试例子
#str='ABCDEFGH'
for x in range(len(str)):
     if str[x] in dirt1:
         dirt1[str[x]]+=1
#输出显示结果
#print (dirt1)

#输出到文件
data=open('D:\\test\\frq.txt','w') 
print('氨基酸出现频率',file=data)
#输出字母
for x in dirt1:
    print(x+'\t',end='',file=data)
print('',file=data)
#输出数目
for x in dirt1:
    print(dirt1[x],'\t',end='',file=data)
print('',file=data)
#输出频率,修改round(,4)里面的数字确定保留几位小数
for x in dirt1:
    print(round(dirt1[x]/len(str),4),'\t',end='',file=data)
data.close()
print('finish!')
print('you can see the result in the D:\\test\\frq.txt.')

四、注意问题

  1、如果输出文件夹不存在,我们需要如何创建

#如果目录不存在,则创建
import os
dirs = 'D:\\test'
if not os.path.exists(dirs):
    os.makedirs(dirs)

  2、文档不存在,如何创建 

data=open('D:\\test\\frq.txt','w') 
//代码会自动实现,如果文档不存在则自动创建

  3、如何不换行的输出

data=open('D:\\test\\frq.txt','w') 
//file=data, file是关键字,data使我们自己定义的,代表向文件输出
//end='',是关键,代表我们在输出以后末尾加上什么,如果只是''则什么都不加,如果是'  '则是存在空格 print(
'name',end='',file=data)

  4、如果实现列与列之间的间距

       输出结果加上'\t'就可以

  5、如何实现输出小数的小数位数的控制

     关键在于round(num, 4)这个函数,num是我们操作数,4代表小数点后四位。

  6、如何判断一个键是否是在字典里面。

       if x in  dirt1  就已经足够判断了

猜你喜欢

转载自www.cnblogs.com/fantianliang/p/FanTianliang.html