代码在IDE中有效,但在终端控制台中无效

时间:2018-12-21 05:08:23

标签: python linux python-3.x ubuntu pycharm

我的代码在Pycharm中运行良好,但是如果在控制台(Ubuntu终端)中键入add,则会收到错误消息。

我在Pycharm IDE之外的控制台中收到错误:

Traceback (most recent call last):
  File "main.py", line 37, in <module>
    getStr = input('>: ')
  File "<string>", line 1, in <module>
NameError: name 'add' is not defined

我的代码:

#!/user/bin/python3
class Item:

    itemsCount = 0

    def __init__(self, sku, bWidth, bHeight, bLength, quantity, bWeight):

        self.sku = sku
        self.bWidth = bWidth
        self.bHeight = bHeight
        self.bLength = bLength
        self.quantity = quantity
        self.bWeight = bWeight
        Item.itemsCount += 1

    def DisplayItem(self):
        print('[SKU : ', self.sku, '] [Width : ', self.bWidth, '] [Height : ', self.bHeight,
              '] [bLength : ', self.bLength, '] [Quantity : ', self.quantity, '] [bWeight : ',
              self.bWeight, ']')


items = [Item]


print('Dan\'s Warehouse Inventory')
print('Current Stock in inventory : [', Item.itemsCount,']\n' )


while True:

    getStr = input('>: ')

    if getStr == 'add':
        getSku = input('SKU : ')
        getWidth = int(input('Width : '))
        getHeight = int(input('Height : '))
        getLength = int(input('bLength : '))
        getQuantity = int(input('Quantity : '))
        getWeight = int(input('Weight : '))

        items.append(Item(getSku, getWidth, getHeight, getLength, getQuantity, getWeight))
        print(Item.itemsCount)

    else:
        print('Invalid command.')

我不确定自己在做什么错...感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您正在可能在IDE外部的Python2下运行它,其中input用于获取字符串 并将其视为Python表达。似乎您输入的是add一词(因为这是您将输入与之比较的一件事),而Python2正正抱怨它无法评估它。

Python 2 raw_input等同于Python 3 input,因此您可以使用它,也可以确保它由 Python3 而不是Python2运行。