我有一個程序需要一個字符串並將其轉換爲列表,如下所示 - ['CTTC', 'CGCT', 'TTTA', 'CATG']
。 (它實際上比這更長)。現在我需要找出有多少這些列表元素的第一個字母爲C or A or T or G
。這需要從終端取得,即使用input
功能。輸入數據類型錯誤
現在據我所知,在Python 3.2中,輸入函數的數據類型默認爲字符串(str
),而不是整數(int
)(可以使用isinstance
查看)。然而,因爲我使用的是大學服務器,python版本更老(我認爲2.7或更高,但低於3.0)。在這種情況下,當我使用輸入功能要求用戶選擇一個字母initial = input("Choose a letter:")
,並且當我輸入任何字母(A,T,G或C)時,它會給我一個錯誤NameError: name 'C' is not defined
。當我使用isinstance
檢查數據類型時,我意識到python版本將輸入的數據類型作爲int
。當我嘗試將其轉換爲字符串時,它會給出相同的錯誤。這是版本的問題還是我做錯了什麼?我的代碼如下。
import sys
#import random
file = open(sys.argv[1], 'r')
string = ''
for line in file:
if line.startswith(">"):
pass
else:
string = string + line.strip()
w = input("Please enter window size:")
test = [string[i:i+w] for i in range (0,len(string),w)]
#seq = input("Please enter the number of sequences you wish to read:")
#first = random.sample((test), seq)
print test
l = input("Enter letter for which you wish to find the probability:")
lin = str(l)
print lin
'input'是Python的2是一個完全不同的事莫過於在Python 3,使用'raw_input'代替。 – 2013-02-11 03:49:39
我在我的程序中使用了輸入,並且沒有任何問題。你可以看到,如果你瀏覽代碼 – 2013-02-11 03:58:55
儘管如此,這是問題。 – 2013-02-11 04:05:12