本文目錄一覽:
- 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)]中的值。
原創文章,作者:FQDG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144869.html