【问题标题】:Syntax error on int list with .split()使用 .split() 的 int 列表上的语法错误
【发布时间】:2015-02-07 04:32:20
【问题描述】:

不知道为什么我似乎得到了这个语法错误,当我在 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 
      ^

我觉得我正在做一些我应该接受的事情,但我似乎找不到它,任何帮助都会很棒!

【问题讨论】:

  • 我猜终端使用的是 py2 ...尝试使用 Py3 运行(在 Linux 中 --- python3 scriptName.py 在 OsX 中不知道)
  • 是的,就是这样,之后它是一个字符串文字,因为','在我不想要的拆分中

标签: python list python-3.x terminal


【解决方案1】:

问题是您的命令行使用的是 python2 而不是 python3。

你现在有两个选择

  • 使用 python 3 执行脚本,如python3 scriptName.py
  • num = [int(n) for n in raw_input("Enter Numbers: ").split(",")] 那样将代码转换为py2(不好的选择)

由于您没有使用,进行分隔,您也可以将其删除并使用

【讨论】:

    【解决方案2】:

    我正在使用 python 2.7

    代码看起来不错,我认为您输入了错误的输入,即没有,

    代码:

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

    输出:

    用户输入的值无效:

    vivek@vivek:~/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'
    

    用户输入的有效值:

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

    【讨论】:

      【解决方案3】:

      终端指向 Python 2,更改为 python 3 并且它可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-25
        • 2014-03-15
        • 1970-01-01
        相关资源
        最近更新 更多