一、题目:

  对于一串氨基酸序列(由字母表前二十个大写字母组成),需要得到每一个氨基酸数目,然后输出到文件夹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. Java开发中解决Js的跨域问题

    主流方法有JSONP和CORS两种,这里记一下后者的方式,理论基础就是在请求的时候在http请求头中添加如下属性: //指定允许其他域名访问 Access-Control-Allow-Origin:h ...

  2. 数据结构学习--单循环链表(python)

    概念 将单链表的终端节点的指针由原来的空指针改为指向头节点, 就是整个单链表形成一个环, 这种首尾相接的单链表称为单循环链表. 实现 class Node: """ 节点 ...

  3. 如何在linux上有2个python的情况下安装gensim

    安装python的问题 https://blog.51cto.com/liqingbiao/2083869 安装gensim https://blog.csdn.net/zhujiyao/articl ...

  4. SQL Server查看login所授予的具体权限

    在SQL Server数据库中如何查看一个登录名(login)的具体权限呢,如果使用SSMS的UI界面查看登录名的具体权限的话,用户数据库非常多的话,要梳理完它所有的权限,操作又耗时又麻烦,个人十分崇 ...

  5. MAC 下将libpomelo连接到cocos2d-x

    摘要:借助GYP将libpomelo连接到Cocos2d-x项目并使项目能与服务端成功连接. 配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2 一.部署GYP(Ge ...

  6. unittest---unittest的几种执行方法

    我们在使用unittest单元测试框架做自动化的时候,可能会遇到想要看看这条用例写的是否正确,然后进行执行,但是又还有其他的用例在这里,我们又不能屏蔽,这个怎么办?不要着急unittest的几种执行方 ...

  7. getattribute方法,Python属性访问拦截器的用法

    __getattribute__()方法是属性访问时的拦截器,每当访问属性的时候,会先执行这个方法,然后再执行访问属性的操作步骤,可以用来记录属性访问的log.代码示例如下:   class Itca ...

  8. 工具推荐--刷LeetCode的神器

    本文首发于微信公众号:[坂本先生],文章地址为: https://mp.weixin.qq.com/s/vHv5hO8nils_g2VSKwu1Cg如有转载请标明出处 今天给大家安利一款快速刷Leet ...

  9. git版本对比

    1.git diff版本比对 (未添加到暂存区间之前的区别对比) 未进行修改,则显示为空 进行文件修改,再执行git diff 当执行git add .  之后,再次git diff则为空 缓存和提交 ...

  10. 构造函数new运算符进行了哪些操作

    new 运算符 1,实例化一个对象 2,将构造函数prototype对象赋值给对象__proto__属性 3,将对象作为函数this传进去,函数有return 并且是对象的话,就直接返回return的 ...