2016-09-15 42 views
1

我現在有一個python相當大的問題。我嘗試着計算一個數組中的幾個整數。所以它不應該太複雜。我現在已經工作了2天,但無法使其工作。語法錯誤:沒有ascii字符輸入操作

def calculate(str): 
    global x 
    if (len(x)==9): 
     a = [] 
     for i in x_str: 
      a.append(i) 
     print(a) 
     b = 0 
     for j in range(1,9): 
      if (type(a[j])==int): 
       b = b + (a[j] * j) 
      else: 
       print('Your x is not a number!') 
     print(b) 
    else: 
     print('Your x is too long or too short.') 
     isdn = input('Enter your x with 9 numbers') 
     calculate(x) 

# Operation 

x = input('How is your x?') 
try: 
    x = str(x) 
    calculate(x) 
except: 
    print('Not a String!') 

我只是想輸入一個整數9個數字,並將其更改爲一個數組。然後用它做一個簡單的計算。

我試圖做到這一點,沒有該死的嘗試,除了第一次,但也沒有工作。不知怎的,Python不會除了當我輸入輸入時x是一個字符串。我能做些什麼,讓這個計算起作用?它不斷告訴我:

SyntaxError: Non-ASCII character '\xe2' in file 

我真的絕望了,現在,因爲我不能得到它的工作....不知何故Python是混合字符串和整數了,我不明白爲什麼。我知道其他語言,但從來沒有那麼麻煩去簡單的計算工作。 有人能指出我的錯誤嗎?或者我能做什麼?

+0

的[正確的方式來定義Python源碼編碼]可能的複製(http://stackoverflow.com/questions/728891/correct-way-to-define-python-source-code-encoding) – felipsmartins

+0

什麼編輯器是你用來創建這個文件?有一些奇怪的[unicode](http://www.fileformat.info/info/unicode/char/202f/index.htm)引起'SyntaxError'的非標準空格。 + ode2k查找其他語法/ potnetial運行時錯誤btw – Aaron

+0

只需使用名爲Geany的文本編輯器並通過命令行執行即可。 – Severus15

回答

1

我改變:

  • a.append(i)a.append(int(i))
  • 去除global x
  • for i in x_str:for i in x:
  • 改變了你的isdn變量x

def calculate(x): 
    if (len(x)==9): 
     a = [] 
     for i in x: 
      a.append(int(i)) 

else: 
    print('Your x is too long or too short.') 
    x = input('Enter your x with 9 numbers') 
    calculate(x) 

也有壞的(無形)字符x = inputx = str (x)之前。如果您想複製/粘貼,我在下面的代碼中清除它們。

x = input('How is your x?') 
try: 
    x = str(x) 
    calculate(x) 
except: 
    print('Not a String!') 
+0

python'input'使用'eval',所以他沒有得到可能的字符串。使用'raw_input'代替。還有一些關於'isdn'變量的詭異你可能想看看.. – Aaron

+0

它似乎是Python3,所以'raw_input'已被棄用 – ode2k

+0

啊,我忘了那個改變...我仍然主要使用2.7 – Aaron