2014-03-27 104 views
0

我似乎無法得到此python程序的工作。它應該從我桌面上的用戶那裏獲得一個輸入的.txt文件。 txt文件作爲一行字符。用戶輸入文件後,程序應計算Xs,Ys和Zs(大寫和小寫)的數量以及不是Xs,Ys或Zs的「壞」字符的數量。從用戶輸入的txt文件中讀取文件和計數字符

這是我有:

def main(): 
    count = 0 
    F1 = raw_input("Enter output file name: ") 
    File = open(F1,"r") 
    for i in File: 
     a=str.count('x' and 'X') 
     print "The number of Xs was: ", a 
     b= str.count('y' and 'Y') 
     print "The number of Ys was: ", b 
     c = str.count('z' and 'Z') 
     print "The number of Zs was: ", c 
     d = str.count 
     print "The number of bad characters was: ", 
    return 

main() 

回答

1

這種表達

str.count('x' and 'X') 

不會做你的想法。見子表達式'x' and 'X'如何評估:

>>> 'x' and 'X' 
'X' 

你可以這樣做,而不是:

a=str.count('x') + str.count('X') 

a=s.upper().count('X') 

你有固定的A,B和C的計算之後,您需要確定d的計算。可以做這樣的:

d = len(str) - (a + b + c) 
+0

非常感謝!但我仍然得到這個錯誤,我仍然需要一種方法來計算所有的壞字符: 回溯(最近呼叫最後): 文件「C:\ Users \ Desktop \ lab8.py」,第16行,在 main() 文件「C:\ Users \ Desktop \ lab8.py」,第6行,主要爲 a = str.count('x')+ str.count('X') TypeError:count )至少需要1個參數(0給出) – user3317056

+0

查看更新後的答案。 – piokuc

0

您需要i.count更換str.count你做了之後@piokuc說什麼。

這是因爲它包含你的字符串,而不是str。