社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

手把手带你学 Python3 |如何判断序列是否跨过剪切位点

生信菜鸟团 • 5 年前 • 1033 次点击  

这里是python学习的第六篇,布尔值与条件判断

热点推荐

如果还没有安装入门环境首选 pycharm ,可以参见 三剑客 PyCharm 小试

学习编程语言的起点绕不过语法基础,快速掌握规范代码可以参见 手把手带你学 Python3 | 编程基础与规范代码


上一期我们罗列了列表的几种用法,切片及截取都是非常常规的用法,在后面的使用中会经常碰到,建议经常查看哟。

手把手带你学 Python3 | 列表使用一文就够了


元组拆包其实有很多能应用的场景,且元组的不可以变性本身就具有安全的属性,欲简单连接可以查看:

手把手带你学 Python3 | 元组拆包是个啥?

FASTA序列快速提取可以查看:

手把手带你学 Python3 | 字典与FASTA文件序列抽提


python3中还有一类常用类型:布尔。不同于python2,python3将作为定义词,Ture (T) False (F)

运算

规则

python中,把0、空字符串和None看成False,其他情况为Ture。

和其他的逻辑运算一样,python3也包含与或非运算,只是表示有些许不同,在python中,

与运算使用and 连接,或运算使用or连接,非运算使用not Ture

还有一个要注意的是None,None是一个一个特殊空值,并不是0,因为0是有意义的。

计算

在python2中,False对应数值为0,Ture可以代表1。遵循四则运算规则。例如:

a = True
b = False
print(a+1)
print(b-1)

2
-1

条件判断

这里先看一个例子:

假设我们定义数值为0~99的区段,0~32为小,33~65为中,66~99为大,那么我们随机给一个数,判断其归属:

import random
input = random.randint(0101)
print(input)
if input 33:
    print('small')
elif input > 65:
    print('large')
else:
    print('middle')    
---------------------------------
88
large
31
small

其中的else:指代上两个条件下都不满足的情况。也可以使用elif input > 33 and input < 65来表示。

进阶版:

还是上面的两个点三个区段,我们再加一个区段为0~49、50~99;然后我们有一段长度,判断该线段是不是过两个区段,如下图描述:即我要判断橙色线段的区域是否跨过节点1或者2:

这里就不再使用随机数了,直接用字母代替数值,位置节点为一个列表:

input_start = a
input_end = b
length = b-a

if a 0] and b > spot[0]:
    print('跨1节点'+'start:'+a+'\t'+'end'+b+'\n')
if a 1] and b > spot[1]:
    print('跨2节点'+'start:'+a+'\t' +'end'+b+'\n')

在上述运算过程中,其实还有同时跨1、2节点的线段存在,但是已经包含在我们的条件判断框里了。这里唯一没有做区分的究竟是跨了哪几个区。也就是是否跨过剪切位点。

应用场景比如判断翻译的多肽链是否过某几个片段,序列是否包含某些特定位置的SNP,或者circRNA的过度翻译。

番外

短路运算

多个与、或运算连接时存在的可能:

  1. and and and若出现一个False则返回False,如果全为True则返回右边;

  2. or or or若左边出现一个True则返回True,全False返回False。

  3. and or and or or or 第一个判断为True,则True。

上述几个例子在于在某些情况下,只要判断条件一就能完成全判断,那么在编码过程中可以将容易判断的放在前面做判断,节省时间,或先计算好各表达式的结果,然后再判断,可以获得准确结果。


猜你喜欢:

热҈手把手带你学 Python3 | 字典与FASTA文件序列抽提

【热点】三剑客 PyCharm 小试

热点编程基础与规范代码

热҈列表使用一文就够了

元组拆包是个啥?

Shell文本处理三剑客使用小技巧 |awk grep sed +正则表达式

青蒿素科普贴

2019年五篇Cell文献阅读集锦

circRNA实验新更 - circRNA实验设计优化方案笔记

植物杂志 PP & PJ 都在用的研究思路

▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37303
 
1033 次点击