2015-02-07 164 views
1

不知道爲什麼,我似乎得到這個語法錯誤,當我在pycharm運行的代碼只是正常工作語法錯誤

我:

import sys 
import os.path 
sys.path.append(os.path.join(os.path.dirname(__file__), '..')) 

from DiceRolls import RandomDiceRoll 

num = [int(n) for n in input("Enter Numbers: ").split(",")] 
for n in num: 
    print(RandomDiceRoll.diceRoll(n)) 

而RandomDiceRoll做到這一點:

import sys 
import random 

def diceRoll(n1): 
    w = random.randint(1,n1) 
    return w 

現在,當我在pycharm運行它,它的偉大工程,並打印我想要的結果。

但是如果我有蟒蛇scriptName.py運行它從終端,我得到這個:

Enter Numbers: 4 0 0 
Traceback (most recent call last): 
    File "userEnter.py", line 9, in <module> 
    num = [int(n) for n in input("Enter Numbers: ").split(",")] 
    File "<string>", line 1 
    4 0 0 
    ^

我覺得我做的事情,我應該在皮卡,但我似乎無法找到它, 任何幫助都是極好的!

+0

我想終端是使用py2 ...嘗試運行使用Py3(在Linux ---'python3 scriptName.py'不知道在OsX) – 2015-02-07 04:39:30

+0

是的,那是它,之後,它是一個字符串文字,因爲','在我不想要的分裂中 – 2015-02-07 04:45:31

回答

1

的問題是,你的命令行使用python2而不是python3。

你有兩個選擇,現在

  • 執行使用python 3腳本在python3 scriptName.py
  • 將代碼轉換成PY2(壞替代)作爲num = [int(n) for n in raw_input("Enter Numbers: ").split(",")]

由於您沒有使用,來劃分,你可以去掉那個並使用

0

終端指向Python 2,更改爲Python 3,它的工作原理。

1

我使用Python 2.7

代碼看起來很好,我想你輸入錯誤的輸入即沒有,

代碼:

num = [int(n) for n in raw_input("Enter Numbers: ").split(",")] 

print "num:-", num 

輸出:

無效值由用戶輸入:

[email protected]:~/Desktop/stackoverflow$ python 5.py 
Enter Numbers: 4 0 0 
Traceback (most recent call last): 
    File "5.py", line 91, in <module> 
    num = [int(n) for n in raw_input("Enter Numbers: ").split(",")] 
ValueError: invalid literal for int() with base 10: '4 0 0' 

有效值由用戶輸入:

[email protected]:~/Desktop/stackoverflow$ python 5.py 
Enter Numbers: 4, 0, 0 
num:- [4, 0, 0]