.split() 的 int 列表语法错误
Syntax error on int list with .split()
不确定为什么我似乎会收到此语法错误,当我 运行 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 中使用它时,它运行良好,并打印出我想要的结果。
但是,如果我使用 python 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
^
我觉得我正在做一些我应该接手的事情,但我似乎找不到它,任何帮助都会很棒!
终端指向 Python 2,更改为 python 3 并且可以正常工作。
我正在使用 python 2.7
代码看起来不错,我认为你输入了错误的输入,即没有 ,
代码:
num = [int(n) for n in raw_input("Enter Numbers: ").split(",")]
print "num:-", num
输出:
用户输入的值无效:
vivek@vivek:~/Desktop/Whosebug$ 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'
用户输入的有效值:
vivek@vivek:~/Desktop/Whosebug$ python 5.py
Enter Numbers: 4, 0, 0
num:- [4, 0, 0]
问题是您的命令行使用的是 python2 而不是 python3。
你现在有两个选择
- 使用 python 3 执行脚本,如
python3 scriptName.py
- 将代码转换为 py2(错误的替代方案),如
num = [int(n) for n in raw_input("Enter Numbers: ").split(",")]
因为你没有使用,
来分隔,你也可以去掉它并使用
.
不确定为什么我似乎会收到此语法错误,当我 运行 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 中使用它时,它运行良好,并打印出我想要的结果。
但是,如果我使用 python 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
^
我觉得我正在做一些我应该接手的事情,但我似乎找不到它,任何帮助都会很棒!
终端指向 Python 2,更改为 python 3 并且可以正常工作。
我正在使用 python 2.7
代码看起来不错,我认为你输入了错误的输入,即没有 ,
代码:
num = [int(n) for n in raw_input("Enter Numbers: ").split(",")]
print "num:-", num
输出:
用户输入的值无效:
vivek@vivek:~/Desktop/Whosebug$ 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'
用户输入的有效值:
vivek@vivek:~/Desktop/Whosebug$ python 5.py
Enter Numbers: 4, 0, 0
num:- [4, 0, 0]
问题是您的命令行使用的是 python2 而不是 python3。
你现在有两个选择
- 使用 python 3 执行脚本,如
python3 scriptName.py
- 将代码转换为 py2(错误的替代方案),如
num = [int(n) for n in raw_input("Enter Numbers: ").split(",")]
因为你没有使用,
来分隔,你也可以去掉它并使用.