python - 处理定义

标签 python python-3.x

我正在尝试获得预期值,但似乎遇到了麻烦。我将输入值转换为整数,我认为这就是错误的来源。我知道 int 无法将空字符串转换为整数,但在测试时我有一个值。

错误:

 TypeError: 'int' object is not subscriptable

我该如何解决这个问题?

def print_menu():
print('1. Add a Stock')
print('2. Recommend Sale')
print('3. Quit')
print()

expected_value = {}

menu_choice = 0
print_menu()
while menu_choice != 3:
    menu_choice = int(input("Type in a number (1-3): "))
    if menu_choice == 1:
        print("Add Name, Prices, Risk, Shares")
        name = input("Name: ")
        price = input("Buyers Price: ")
        Cprice = input("Current Price: ")
        srisk = input("Risk: ")
        sshares = input("Shares: ")
       Expected_Sale_value = ((int(Cprice) - int(price)) - int(srisk) * int(Cprice)) *    int(sshares)
        expected_value[name] = Expected_Sale_value
    elif menu_choice == 2:
        print("Expected Sale values")
        for x in expected_value.keys():
            print("Stock: ", x, "\tExpected value:", Expected_Sale_value[x])
        print()
    elif menu_choice != 3:
        print_menu()

我是Python新手,我知道Python有它的技巧!说我问是否有任何提示或者您看到我可以改进的地方,请给我见解。

示例(空闲):

  1. 添加库存
  2. 推荐促销
  3. 退出

输入数字 (1-3):1
添加名称、价格、风险、份额
名称:谷歌
买家价:21
目前价格:20
风险:1
股份:2
输入数字 (1-3):2
预期售价
回溯(最近一次调用最后一次):
文件“”,第 25 行,位于
print("库存: ", x, "\t预期值(value):", Expected_Sale_value[x])
类型错误:'int'对象不可下标

最佳答案

您使用了错误的变量名称,从而出现错误。以下是相关行:

for x in expected_value.keys():
    print("Stock: ", x, "\tExpected value:", Expected_Sale_value[x])

print 语句中,您正在索引变量 Expected_Sale_value 而不是 expected_valueExpected_Sale_value 是一个整数,而不是一个字典,因此您会得到一个异常。

执行循环的稍微“Pythonic”的方式是:

for key, value in expected_value.items():
    print("Stock: ", key, "\tExpected value:", value)

关于python - 处理定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18222428/

相关文章:

Python PIL 图像拆分为 RGB

python - 如何在 Pandas 中将 argmin 与 groupby 一起使用

python - AMD plaidml 与 CPU Tensorflow - 意外结果

Python:在两个字符之间拆分

python - 有问题的值(value)观

python - 在 cython 中为 __contains__ 指定 libcpp.string 类型

python - 找不到静态文件 - 在 Heroku 上部署 Django

python - 从没有索引和列名的 Pandas 单元格创建列表列表

python - 如何在python中按时间间隔对CSV文件进行排序

python - networkx - weight in betwenness 和 current flow betweenness 的含义