一、题目:

  对于一串氨基酸序列(由字母表前二十个大写字母组成),需要得到每一个氨基酸数目,然后输出到文件夹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. Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables

    今天在虚拟机的Linux系统(centos7)里安装Redis,准备学习一下布隆过滤器呢,安装完后使用Windows本机访问不了虚拟机里的Redis,telnet不通能够ping通.于是就去看防火墙, ...

  2. Python - 文件管理系统

    一.概述 前段时间帮公司写了一个资产管理的网站,(https://www.cnblogs.com/ddzj01/p/11316837.html),系统运行的比较稳定,小白的第一个项目得到了领导的肯定. ...

  3. 【原创】WinForm中实现单独Time控件的方式

    WinForm默认只提供了DateTimePicker,今天的项目只用时间,不能出现日期,百撕不得骑姐(^^),也没花多少时间,随便试了一下,就成功了,分享一下. 在DateTimePicker属性中 ...

  4. node.js安装本地模块遇到的目录锁定问题【新手问题】

    昨天发过文字版的,后来以为问题没解决就删除,今天偷个懒,直接上图. 被书中的介绍给误导了,虽然和书中不一样,但实际上自己练习写的模块已经是可用了.也犯了个常识性的错误:Warn一般不会有太大的影响.

  5. 3.Ansible varialbes实战

    varialbes 1.什么是变量? ​ 以一个固定的字符串,表示一个不固定的值 version: 1.12 2.定义变量? 1.在playbook中定义变量? >1.vars 关键字 [roo ...

  6. library: Vulnhub Walkthrough

    网络主机探测: 端口主机扫描: ╰─ nmap -p1-65535 -sV -A -O -sT 10.10.202.136 21/tcp open ftp vsftpd 3.0.380/tcp ope ...

  7. IDEA快捷键用法

    1.Ctrl+滑动滚轮调节窗口显示大小(需要设置之后方可) File->Settings->Editor->General->Change fontsize with Ctrl ...

  8. jenkins 分布式配置+allure集成+邮件发送

    jenkins节点配置+allure集成+邮件发送这一套走下来感觉很麻烦,要配置的东西太多了,所以在此记录一下,防止以后忘了. 环境: 主机master:腾讯云服务器ubuntu18.04 执行机sl ...

  9. 安卓投屏助手(ARDC)最新版

    安卓投屏助手(B1493) 1.兼容Android 10: 2.增加灭屏投屏功能: 3.增加显示鼠标位置功能; 4.增加了虚拟NaviBar功能: 5.捐赠界面增加QQ支付,移除Paypal,感谢大家 ...

  10. C sharp #002# 结构化编程基础

    饮水思源:金老师的自学网站.C# Guide 索引 变量与数据类型 C#中For each的写法 C#控制台程序编程技巧 简易图片浏览器 BigInteger以及浮点数的比较 一.变量与数据类型 us ...