一、题目:

  对于一串氨基酸序列(由字母表前二十个大写字母组成),需要得到每一个氨基酸数目,然后输出到文件夹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':, 'B':, 'C':, 'D':, 'E':,
'F':, 'G':, 'H':, 'I':, 'J':,
'K':, 'L':, 'M':, 'N':, 'O':,
'P':, 'Q':, 'R':, 'S':, 'T':
}
#这里输入检索字符串 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]]+=
#输出显示结果
#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(,)里面的数字确定保留几位小数
for x in dirt1:
print(round(dirt1[x]/len(str),),'\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  就已经足够判断了

Python学习一、一个小例子的更多相关文章

  1. 【python】由一个小例子看出python的灵活性,IF ELSE一例

    temp = input("请输入1到100之间的数字:") num = int(temp) if 1 <= num <= 100:                   ...

  2. java连接mysql的一个小例子

    想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...

  3. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  4. MVVM模式的一个小例子

    使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...

  5. 使用Trinity拼接以及分析差异表达一个小例子

    使用Trinity拼接以及分析差异表达一个小例子  2017-06-12 09:42:47     293     0     0 Trinity 将测序数据分为许多独立的de Brujin grap ...

  6. Vue2.x源码学习笔记-从一个小例子查看vm实例生命周期

    学习任何一门框架,都不可能一股脑儿的从入口代码从上到下,把代码看完, 这样其实是很枯燥的,我想也很少有人这么干,或者这么干着干着可能干不下去了. 因为肯定很无聊. 我们先从一个最最简单的小例子,来查看 ...

  7. 简明Python中的一个小错误

    最近在学Python,先看的是<Python基础教程>,后来经别人推荐,感觉网络上的<简明Python教程>也挺好的,在里面发现一个小错误. 网址如下:http://sebug ...

  8. 从一个小例子认识SQL游标

    1    什么是游标: 关系数据库中的操作会对整个行集起作用. 例如,由 SELECT 语句返回的行集包括满足该语句的 WHERE 子句中条件的所有行. 这种由语句返回的完整行集称为结果集. 应用程序 ...

  9. 关于SVN配置文件的一个小例子

    1   背景假设 厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式 ...

  10. Spring和Hibernate结合的一个小例子

    1.新建一个SpringHibernate的maven项目 2.pom文件的依赖为 <dependency> <groupId>junit</groupId> &l ...

随机推荐

  1. 移动端H5页面开发,碰到一个字体变大的BUG

    移动端H5页面开发,碰到一个字体变大的BUG webkit内核下,对不定高宽的元素可能会放大其字体.那么,就可以设置一个max-width:或者使用-webkit-text-size-adjust: ...

  2. 计算机组成原理——I/O接口以及I/O设备数据传送控制方式

    接口可以看作是两个部件之间交接的部分.硬件与硬件之间有接口,硬件与软件之间有接口,软件与软件之间也有接口. 这里我们所说的I/O接口,一边连接着主机,一边连接着外设. I/O接口的功能 I/O接口的基 ...

  3. C#_.NetCore_Web项目_EXCEL数据导出(ExcelHelper_第一版)

    项目需要引用NPOI的Nuget包:DotNetCore.NPOI-v1.2.2 A-前端触发下载Excel的方法有三种: 1-JS-Url跳转请求-后台需要返回文件流数据: window.Locat ...

  4. 分布式CAP与BASE理论

    参考: CAP和BASE理论 https://juejin.im/post/5d720e86f265da03cc08de74 https://github.com/changmingxie/tcc-t ...

  5. FCC---CSS Flexbox: Use the flex-direction Property to Make a Row

    Adding display: flex to an element turns it into a flex container. This makes it possible to align a ...

  6. 超实用的JS数组去重

    一.简单的去重方法,利用数组indexOf方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  7. Troubleshooting: High Version Count Issues

    --查询版本高的原因 select * from v$sql_shared_cursor where sql_id=''; Configuring Download the script in the ...

  8. How To Convert A Partitioned Table To A Non-Partitioned Table Using DataPump In 11g (Doc ID 1276049.1)

    How To Convert A Partitioned Table To A Non-Partitioned Table Using DataPump In 11g (Doc ID 1276049. ...

  9. JavaWeb包含哪些内容

    JavaWeb JavaWeb课程内容涉及:HTML5课程.CSS3.JavaScript.MySQL使用.JDBC连接池.Servlet.JSP.AJAX.jQuery.Bootstrap. 第一部 ...

  10. IT兄弟连 HTML5教程 HTML5表单 HTML表单中的get和post方法

    指引 表单在网页应用中十分重要,基本上任何一个网站都必须使用到表单元素,所以表单的美观和易于交互对于网站设计就变得十分重要.HTML5对目前Web表单进行了全面提升,使得我们使用表单更加智能.它在保持 ...