来一份Python学习题
时间:2022-05-06
本文章向大家介绍来一份Python学习题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
-
3*2**2
的输出是多少?(1分) -
8 % 4
的输出是多少?(1分) -
32 + '32'
的输出是什么?(1分) -
32 > '32'
的输出是什么?(1分) -
'Sheng Xin Bao Dian'.find('x')
和'Sheng Xin Bao Dian'.find('X')
的输出分别是?(2分) - 一句话计算
'Sheng Xin Bao Dian'
字符串中n
的数目?(1分)
写出下面10段程序的输出?(1分/段)
aList = [1, 2, 3] bList = aList bList.append(4) aList
aList = [1, 2, 3] cList = aList[:] cList.append(4) aList
aList = [1,1,2,2,3,5,4,3] aSet = set(aList) aSet
[1, 2, 3] * 2
[i**2 for i in [1,2,3]]
dict([(i, i**2) for i in range(5)])
import re re.findall("[Ii]mageGP", "www.ehbio.com/ImageGP")
' '.join(["Sheng", "Xin", "Bao", "Dian"])
def sumNumber(a, b): return a + b sumNumber(2,3)
def sumNumber(a, b): return a + b print(sumNumber(2,3))
- 写程序以下面列表中每个元素为
key
,元素出现的次数为value
,构建一个字典,并遍历字典按元素的ASCII码顺序输出?(5分) aList = ['a', 'b', 'c', 'a', 'd','e', 'A'] - 对教案中脑筋急转弯问题的解法进行优化; 问题是:
现有100元钱,需要买100个物品,其中铅笔盒单价5元,笔单价3元,橡皮单价0.5元,怎么组合可以把100元花完,同时三种物品的个数和为100,请用编程解决。
(3分) - 写程序用高斯的计算方式计算
1+2+3+...+100
的加和。(3分) - 指出下面每个程序运行时可能会出现的错误。(1分/段)
aList = [1,2,3] aDict = {} aDict[aList] = 1 b = aDict['a']
if 1: print("Sheng xin bao dian great!")
32 + '32'
aList = [1, 2, 3] aList.add(4)
aList = [1, 2, 3] ''.join(aList)
int('a')
3 / 0
for i in range(10) print(L)
'Sheng Xin * 3
type = 1
- Python文件读写函数
open
的mode
参数中r
,w
,a
,t
,b
,x
分别是什么意思?(3分) - Python中如何获取当前所在的工作目录? 如何修改工作目录?(3分)
- Python中连接多个字符串的方法有哪些?优缺点是什么?(3分)
-
print("%.2f%%" % (1/3))
的输出是什么?(2分) - 描述下语句
import pandas as pd
做了什么操作?(2分) - 教案中基因ENSEMBLE ID转Gene Symbol程序用pandas实现 (
GRCh38.idmap
,ensm.id
)。(5分) - Jupyter中
%%writefile
,%%run
宏命令的用途是什么?(2分) - 找出TP53 mRNA序列中的ORF (
human_TP53_mRNA.fa
)。(5分) - 列出大肠杆菌基因组中限制性内切酶SecI的切割位置 (
Ecoli.fa
)。(5分) - 计算
data/test1.fa
中每条序列的GC含量。(5分) - 不使用pandas,写Python脚本处理Pandas教案中的TPM表达矩阵的提取和合并?(ENCFF060LPA.tsv, ENCFF262OBL.tsv, ENCFF289HGQ.tsv, ENCFF673KYR.tsv) (8分)
- 给定FASTA格式的文件(test1.fa 和 test2.fa),写一个程序
cat.py
读入文件,并输出到屏幕 (2分)- open(file)
- for .. in loop
- print()
- strip() function
- 用到的知识点
- 给定FASTQ格式的文件(test1.fq), 写一个程序
cat.py
读入文件,并输出到屏幕 (2分)- 同上
- 用到的知识点
- 写程序
splitName.py
, 读入test2.fa, 并取原始序列名字第一个空格前的名字为处理后的序列名字,输出到屏幕 (2分)- split
- 字符串的索引
- 用到的知识点
- 输出格式为: >NM_001011874 gcggcggcgggcgagcgggcgctggagtaggagctg.......
- 写程序
formatFasta.py
, 读入test2.fa,把每条FASTA序列连成一行然后输出 (2分)- join
- strip
- 用到的知识点
- 输出格式为: >NM_001011874 gcggcggcgggc......TCCGCTG......GCGTTCACC......CGGGGTCCGGAG
- 写程序
formatFasta-2.py
, 读入test2.fa,把每条FASTA序列分割成80个字母一行的序列 (2分)- 字符串切片操作
- range
- 用到的知识点
- 输出格式为 >NM_001011874 gcggcggcgc.(60个字母).TCCGCTGACG #(每行80个字母) acgtgctacg.(60个字母).GCGTTCACCC ACGTACGATG(最后一行可不足80个字母)
- 写程序
sortFasta.py
, 读入test2.fa, 并取原始序列名字第一个空格前的名字为处理后的序列名字,排序后输出 (2分)- sort
- dict
- aDict[key] = []
- aDict[key].append(value)
- 用到的知识点
- 提取给定名字的序列 (2分)
- 用到的知识点
- print >>fh, or fh.write()
- 取模运算,4 % 2 == 0
- 写程序
grepFasta.py
, 提取fasta.name中名字对应的test2.fa的序列,并输出到屏幕。 - 写程序
grepFastq.py
, 提取fastq.name中名字对应的test1.fq的序列,并输出到文件。
- 写程序
screenResult.py
, 筛选test.expr中foldChange大于2的基因并且padj小于0.05的基,可以输出整行或只输出基因名字。(4分)- 逻辑与操作符 and
- 文件中读取的内容都为字符串,需要用int转换为整数,float转换为浮点数
- 用到的知识点
- 写程序
transferMultipleColumToMatrix.py
将文件(multipleColExpr.txt)中基因在多个组织中的表达数据转换为矩阵形式,并绘制热图。(6分)- aDict[‘key’] = {}
- aDict[‘key’][‘key2’] = value
- if key not in aDict
- aDict = {‘ENSG00000000003’: {“A-431”: 21.3, “A-549”, 32.5,…},”ENSG00000000003”:{},}
- 用到的知识点
- 输入格式(只需要前3列就可以) Gene Sample Value Unit Abundance ENSG00000000003 A-431 21.3 FPKM Medium ENSG00000000003 A-549 32.5 FPKM Medium ENSG00000000003 AN3-CA 38.2 FPKM Medium ENSG00000000003 BEWO 31.4 FPKM Medium ENSG00000000003 CACO-2 63.9 FPKM High ENSG00000000005 A-431 0.0 FPKM Not detected ENSG00000000005 A-549 0.0 FPKM Not detected ENSG00000000005 AN3-CA 0.0 FPKM Not detected ENSG00000000005 BEWO 0.0 FPKM Not detected ENSG00000000005 CACO-2 0.0 FPKM Not detected
- 输出格式 Name A-431 A-549 AN3-CA BEWO CACO-2 ENSG00000000460 25.2 14.2 10.6 24.4 14.2 ENSG00000000938 0.0 0.0 0.0 0.0 0.0 ENSG00000001084 19.1 155.1 24.4 12.6 23.5 ENSG00000000457 2.8 3.4 3.8 5.8 2.9
- 写程序
reverseComplementary.py
计算序列ACGTACGTACGTCACGTCAGCTAGAC
的反向互补序列。(2分)- reverse
- list(seq)
- 用到的知识点
- 写程序
collapsemiRNAreads.py
转换smRNA-Seq的测序数据。(5分)- 输入文件格式(mir.collapse, tab-分割的两列文件,第一列为序列,第二列为序列被测到的次数) ID_REF VALUE ACTGCCCTAAGTGCTCCTTCTGGC 2 ATAAGGTGCATCTAGTGCAGATA 25 TGAGGTAGTAGTTTGTGCTGTTT 100 TCCTACGAGTTGCATGGATTC 4
- 输出文件格式 (mir.collapse.fa, 名字的前3个字母为样品的特异标示,中间的数字表示第几条序列,是序列名字的唯一标示,第三部分是x加每个reads被测到的次数。三部分用下划线连起来作为fasta序列的名字。) >ESB_1_x2 ACTGCCCTAAGTGCTCCTTCTGGC >ESB_2_x25 ATAAGGTGCATCTAGTGCAGATA >ESB_3_x100 TGAGGTAGTAGTTTGTGCTGTTT >ESB_4_x4 TCCTACGAGTTGCATGGATTC
- 简化的短序列匹配程序 (map.py) 把short.fa中的序列比对到ref.fa, 输出短序列匹配到ref.fa文件中哪些序列的哪些位置。(10分)
- find
- 用到的知识点
- 输出格式 (输出格式为bed格式,第一列为匹配到的染色体,第二列和第三列为匹配到染色体序列的起始终止位置(位置标记以0为起始,代表第一个位置;终止位置不包含在内,第一个例子中所示序列的位置是(199,208](前闭后开,实际是chr1染色体第199-206的序列,0起始). 第4列为短序列自身的序列.)。
- 附加要求:可以只匹配到给定的模板链,也可以考虑匹配到模板链的互补链。这时第5列可以为短序列的名字,第六列为链的信息,匹配到模板链为’+’,匹配到互补链为’-‘。注意匹配到互补链时起始位置也是从模板链的5’端算起的。 chr1 199 208 TGGCGTTCA chr1 207 216 ACCCCGCTG chr2 63 70 AAATTGC chr3 0 7 AATAAAT
- 备注:
- 每个提到提到的“用到的知识点”为相对于前面的题目新增的知识点,请综合考虑。此外,对于不同的思路并不是所有提到的知识点都会用着,而且也可能会用到未提到的知识点。但是所有知识点都在前面的讲义部分有介绍。
- 每个程序对于你身边会写的人来说都很简单,因此你一定要克制住,独立去把答案做出,多看错误提示,多比对程序输出结果和预期结果的差异。
- 学习锻炼“读程序”,即对着文件模拟整个的读入、处理过程来发现可能的逻辑问题。
- 程序运行没有错误不代表你写的程序完成了你的需求,你要去查验输出结果是不是你想要的。
- 关于程序调试
- 在初写程序时,可能会出现各种各样的错误,常见的有缩进不一致,变量名字拼写错误,丢失冒号,文件名未加引号等,这时要根据错误提示查看错误类型是什么,出错的是哪一行来定位错误。当然,有的时候报错的行自身不一定有错,可能是其前面或后面的行出现了错误。
- 用脑袋运行程序:当程序写作完成后,自己尝试对着数据文件,一行一行的执行程序,来看程序的运行是否与自己想干的活一致,有没有纰漏。
- 当结果不符合预期时,要学会使用print来查看每步的操作是否正确,比如我读入了字典,我就打印下字典,看看读入的是不是我想要的,是否含有不该存在的字符;或者在每个判断句、函数调入的情况下打印个字符,来跟踪程序的运行轨迹
- 如果视频https://bioinfo.ke.qq.com或文档中没有答案的或者有错误的,请提交题目和自己的答案到 http://www.ehbio.com/Esx 提问寻求解答。文档中其它的题目也请都自己写几遍。
- Carbondata源码系列(二)文件格式详解
- 挖洞经验 | 记一次针对Twitter(Periscope)API 的有趣挖洞经历
- 设计模式学习(二): 观察者模式 (C#)
- Carbondata源码系列(一)文件生成过程
- BoopSuite:基于Python编写的无线安全审计套件
- 设计模式学习(一):多用组合少用继承(C#)
- 在asp.net web api 2 (ioc autofac) 使用 Serilog 记录日志
- hbase源码系列(十三)缓存机制MemStore与Block Cache
- hbase源码系列(十四)Compact和Split
- 设计模式学习(四): 1.简单工厂 (附C#实现)
- 从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD
- 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置
- RavenDb学习(十)附件,存储大对象
- 从头编写 asp.net core 2.0 web api 基础框架 (3)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php实现通过stomp协议连接ActiveMQ操作示例
- PHP pthreads v3下的Volatile简介与使用方法示例
- php实现根据身份证获取精准年龄
- php 使用ActiveMQ发送消息,与处理消息操作示例
- php使用gearman进行任务分发操作实例详解
- laravel框架select2多选插件初始化默认选中项操作示例
- PHP pthreads v3在centos7平台下的安装与配置操作方法
- laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
- PHP Beanstalkd消息队列的安装与使用方法实例详解
- 解决windows上php xdebug 无法调试的问题
- php7 图形用户界面GUI 开发示例
- Django开发的简易留言板案例详解
- php使用redis的有序集合zset实现延迟队列应用示例
- PHP使用openssl扩展实现加解密方法示例
- php使用redis的几种常见操作方式和用法示例