这里是python学习的第六篇,布尔值与条件判断。
热点推荐
如果还没有安装入门环境首选 pycharm
,可以参见 三剑客 PyCharm 小试。
学习编程语言的起点绕不过语法基础,快速掌握规范代码可以参见 手把手带你学 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(0, 101)
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的过度翻译。
番外
短路运算
多个与、或运算连接时存在的可能:
and and and若出现一个False则返回False,如果全为True则返回右边;
or or or若左边出现一个True则返回True,全False返回False。
and or and or or or 第一个判断为True,则True。
上述几个例子在于在某些情况下,只要判断条件一就能完成全判断,那么在编码过程中可以将容易判断的放在前面做判断,节省时间,或先计算好各表达式的结果,然后再判断,可以获得准确结果。
猜你喜欢:
【热点】三剑客 PyCharm 小试
【热点】编程基础与规范代码
Shell文本处理三剑客使用小技巧 |awk grep sed +正则表达式
青蒿素科普贴
2019年五篇Cell文献阅读集锦
circRNA实验新更 - circRNA实验设计优化方案笔记
▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

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