本文目录一览:
- 1、python如何运行程序
- 2、Python|运行程序的4种方式
- 3、python-第二课-用IDLE编写程序
- 4、python如何将给的碱基序列切成长度为4的kmer
- 5、如何用Python构造hash表解决DNA k-mer问题
python如何运行程序
安装并配置完成之后,我们就可以编写第一个python程序。学过其他语言的兄弟姐妹们,都知道语言的入门程序就是hello world。那么,我们这里也以hello world来抛砖引玉,打开python学习的大门。
python运行有两种方式,一种是在python交互式命令行下运行;另一种是使用文本编辑器,在命令行中直接运行。
注意:以上两种运行方式,都是以CPython解释器来编译运行的。当然也可以将python代码写入到eclipse中,使用JPython解释器运行,需要自己配置环境。(推荐学习:Python视频教程)
一、命令行与交互式命令行
首先要搞清楚这个命令行的概念。
1.命令行
定义:出现类似“C:\”,则是在Windows提供的命令行模式
进入模式的方式:Windows中,直接win+r键进入
2.交互式命令行
定义:出现“”,则是python的交互式命令行
进入模式的方式:Windows命令行中输入python即可
二、交互式命令行中运行python代码
cmd窗口中,输入python后,进入python交互式命令行。直接输入代码:
print ‘hello world!’
python-23.png
可以看到界面上运行结果,表示运行成功!
在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。
所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样,程序就可以反复运行了。
三、命令行运行python代码
1.python代码编写及保存
我们将“hello world!”程序用文本编辑器写出来,保存下来,并命名,这里我们命名为hello.py,保存到F:\workspace。
命名时,要注意:
1)文件要以.py结尾,其他都不可以
2)文件名只能是英文字母、数字和下划线的组合。
文本编辑器推荐:Notepad++、Sublime Text
2.python代码运行
在命令行模式中,输入python F:\workspace\hello.py,即可运行成功。
运行时,要注意:
1)python文件存储路径是相对路径,运行时,一定要说明python文件的存储路径,
当然,用Python开发程序,完全可以一边在文本编辑器里写代码,一边开一个交互式命令窗口,在写代码的过程中,把部分代码粘到命令行去验证,事半功倍!
Python|运行程序的4种方式
第一种:第一种就是最直观的方式了。将python或pycharm应用程序打开编程即可。
第二种:用windows徽标+R再输入cmd打开命令行,然后键入python进入python环境,即可在命令行下编程。
第三种:点击windows徽标,再输入IDLE即可打开python进行编程。
第四种:选择任意编辑器比如记事本用编程语法写程序,再将文件保存并将文件格式改为后缀为.py,然后在文件所在位置处用shift+鼠标右键打开此位置的命令行,最后输入python再空格一下而后输入处理好的文件名即可运行里面的程序。
关于Python|运行程序的4种方式,青藤小编就和您分享到这里了。如果您对python编程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于python编程的技巧及素材等内容,可以点击本站的其他文章进行学习。
以上是小编为大家分享的关于Python|运行程序的4种方式的相关内容,更多信息可以关注环球青藤分享更多干货
python-第二课-用IDLE编写程序
1.使用IDLE运行python程序
IDLE全称“Integrated Development and Learning Environment”,是python的集成开发和学习环境。它被打包为python包装的可选部分,当安装好python以后,IDLE就自动安装好了,不需要另外去安装。使用IDLE运行python程序方法如下:
2.实例:用IDLE编写第一个python程序
(1)运行IDLE开发环境。
python如何将给的碱基序列切成长度为4的kmer
# 定义方法
def get_list(seq,n):
"""
Parameters:
---------
seq: string
n : integer
"""
result = []
for i in range(len(seq)-n+1):
result.append(seq[i:i+n])
return result
# 示例
seq = "ATCGCGTAAAGC"
get_list(seq,4)
# ['ATCG', 'TCGC', 'CGCG', 'GCGT', 'CGTA', 'GTAA', 'TAAA', 'AAAG', 'AAGC']
get_list(seq,3)
# ['ATC', 'TCG', 'CGC', 'GCG', 'CGT', 'GTA', 'TAA', 'AAA', 'AAG', 'AGC']
如何用Python构造hash表解决DNA k-mer问题
思路:
1、首先采用命A=0,C=1,G=2,T=3. 就相当于4进制数字,然后采用karp-Rabin算法转换成唯一十进制数字。由于用此算法的哈希函数为:hash(value)=value*(4^(k-q-1));
value是该字符对应的值,k是kmer长度,q是此字符在字符串的位置范围在[0-(q-1)]。然后把一个kmer里面所有字符的hash值求和就行了。
2、那么很容易看出来,对于连续的下害常愤端莅得缝全俯户一个Kmer,就有推理公式了 hashNew=addValue+(hashOld-deleteValue*(4^(k-1)))*4; hashNew就是往右平移一个字符的kmer hash值,hashOld就是平移之前的值,addValue就是平移后右边多的一个字符,deleteValue就是平移后左边少的一个字符。这样整个hash表建立的时间复杂度约为O(m+k),m是整个文本长度。
3、由于kmer长度如果过长,其hash值过大,会造成内存不够溢出的现象,所以kmer内部定死为10 。那么问题就来了,如何应对不同的kmer值。分三种情况。
第一种:q10
这种可以将kmer以10为单位,将hash表中对应值取出,然后对结果进行分析,这边分析方法为建立两个数组一个二维数组unionName储存位置关系,一个一维数组unionScore,计数用。 思路就是首先第一轮初始化unionName[Name][Pos]全部赋值Pos 并初始化unionScore,然后再第二轮匹配如果unionName[Name][Pos-cycle]=Pos-1则将其赋值为当前Pos,cycle为当前循环次数。并将当前循环数存入unionScore[NAME]中。最后当unionScore[NAME]值也就是循环数为k-1,即我们需要的交集了。
第二种:q=10
直接求出hash值,取出相应的值即可。
第三种:q10
可以用前缀种子+后缀种子交集产生。
前缀种子:在字符串后面补字符直到长度等于K,这个很容易看出来 最小是全补A,最大是全补T,然后将最小值到最大值之间的hash值即为所求。
后缀种子:后缀种子和前缀种子不同就是在字符串左边补齐字符。所以此时需要进行变换。只要对前置种子产生的值变化下就行了。(preValue-minValue)*(4^(K-q))+hash(p) 。其中preValue就是对应的前置种子的hash值,minValue就是前置种子中最小值也就是全补A的情况,hash(p)就是字符串长度为p时候的hash值。
交集就是先求后缀种子所有的值,再加上 前缀种子中起始位置在[0-(k-1)]中的值。