2013-06-30 45 views
0

我不知道什麼是錯的。我告訴我,我有一個字符串格式錯誤,其中a = y % 19,然後它也告訴我,當我調用main()時,模塊出現問題。沒有關於如何解決這個問題的線索,因爲它似乎我正確地調用main()函數和string似乎很好。基本的python編程

def main(): 

    y = input("Enter year: ") 
    print ("y = ", y) 

    a = y % 19 
    print ("a = ", a) 

    b = y/100 
    print ("b = ", b) 

    c = y % 100 
    print ("c = ", c) 

    d = b/4 
    print ("d = ", d) 

    e = b % 4 
    print ("e = ", e) 

    g = (8 * b + 13)/25 
    print ("g = ", g) 

    h = (19 * a + b - d - g + 15)/30 
    print ("h = ", h) 

    j = c/4 
    print ("j = ", j) 

    k = c % 4 
    print ("k = ", k) 

    m = (a + 11 * h)/319 
    print ("m = ", m) 

    r = (2 * e + 2 * j - k - h + m + 32) % 7 
    print ("r = ", r) 

    n = (h - m + r + 90)/25 
    print ("n = ", n) 

    p = (h - m + r + n + 19) % 32 
    print ("p = ", p) 

    print ("In ", y, "Easter Sunday is on", p,) 
    if (n == 3): 
     print ("March") 
    if (n == 4): 
     print ("April") 

main() 
+2

Python版本?併發布完整的追溯。 –

回答

4

好像你正在使用Python 3,如果是這樣,第一個問題是y是一個字符串(如"2013"),不是一個數字(如2013)。 %操作對於字符串而言意味着不同於數字;您必須通過說y = int(input('....'))y轉換爲整數。

不確定模塊的問題是什麼;你能發佈確切的錯誤消息和你運行代碼的方式嗎? (它是在IDLE中,通過調用python myscript.py還是什麼?)

+0

它說回溯(最近的最後一次通話):文件「EasterSunday.py」。 69行 main,然後在主a = y%中的第24行顯示File「EasterSunday.py」。TypeError:並非在字符串格式化過程中轉換的所有參數 –

+0

啊,這只是一個錯誤!它只是向您顯示問題所在的位置。 – Dougal

+0

好吧,所以我試圖改變整數在一年進入,但不幸的是現在一切都出來作爲小數,我不想我嘗試把int(輸入的公式,但沒有工作。所以它不會現在可以正確地輸出我的代碼的其餘部分 –

1

input()返回一個字符串。你可能想將其轉換爲intx = int(input(...))

你可能會喜歡,如果你正在使用Python v2.x,這也返回string但不評價任何表達式中使用raw_input()也。

檢查here瞭解更多詳情。

0
~$ python3 Test.py 
Enter year: 2013 
y = 2013 
Traceback (most recent call last): 
    File "Test.py", line 51, in <module> 
    main() 
    File "Test.py", line 6, in main 
    a = y % 19 
TypeError: not all arguments converted during string formatting 

~$ python2.7 Test.py 
Enter year: 2013 
('y = ', 2013) 
('a = ', 18) 
('b = ', 20) 
('c = ', 13) 
('d = ', 5) 
('e = ', 0) 
('g = ', 6) 
('h = ', 12) 
('j = ', 3) 
('k = ', 1) 
('m = ', 0) 
('r = ', 4) 
('n = ', 4) 
('p = ', 7) 
('In ', 2013, 'Easter Sunday is on', 7) 
April