1

我正在制作一个程序来搜索股票编号列表(列表中的前 8 位整数),然后在输入框内返回列表中的其余值,但是当我单击搜索按钮时,它不执行它功能。有什么建议吗?(我也是编码新手,有什么地方可以缩短我的代码以提高效率吗?)

    root = Tk()


    #lists
    car =  [19225735, '611926', '2018', 'Hyundai', 'Sonata', 'White', 'Recon', '$25,000', 
        'Sedan',32,123]

   #funtion
   def search():
       x = stockNumber.get() 
       if (x == car[0]):
          vinNumber.insert(car[1])
          make.insert(car[3])
          model.insert(car[4])
          color.insert(car[5])
          status.inset(car[6])
          price.insert(car[7])
          size.insert(car[8])
          mileage.insert(car[9])



    #text boxes --------------------------------------------
    stockNumber = Entry(root, width=30)
    stockNumber.grid(row=0, column=1, padx=20)

    vinNumber = Entry(root, width=30)
    vinNumber.grid(row=1, column=1, padx=20

    year = Entry(root, width=30)
    year.grid(row=2, column=1, padx=20)

    make = Entry(root, width=30)
    make.grid(row=3, column=1, padx=20)

    model = Entry(root, width=30)
    model.grid(row=4, column=1, padx=20)

    color = Entry(root, width=30)
    color.grid(row=5, column=1, padx=20)

    status = Entry(root, width=30)
    status.grid(row=6, column=1, padx=20)

    price = Entry(root, width=30)
    price.grid(row=7, column=1, padx=20)

    size = Entry(root, width=30)
    size.grid(row=8, column=1, padx=20)

    mileage = Entry(root, width=30)
    mileage.grid(row=8, column=1, padx=20)
    
    #button command-------------------------------
    enter = Button(root, text = "Search", padx=40, pady=20, command=search)
    enter.grid(row=9, column=0)



    #labels ------------------------------------------------
    snLabel = Label(root, text="Stock Number")
    snLabel.grid(row=0, column=0)

    vnLabel = Label(root, text="Vin Number")
    vnLabel.grid(row=1, column=0)

    yearLabel = Label(root, text="Year")
    yearLabel.grid(row=2, column=0)

    makeLabel = Label(root, text="Make")
    makeLabel.grid(row=3, column=0)

    modelLabel = Label(root, text="Model")
    modelLabel.grid(row=4, column=0)

    colorLabel = Label(root, text="Color")
    colorLabel.grid(row=5, column=0)

    statusLabel = Label(root, text="Status")
    statusLabel.grid(row=6, column=0)

    sizeLabel = Label(root, text="Size")
    sizeLabel.grid(row=7, column=0)

    mileLabel = Label(root, text="Mileage")
    mileLabel.grid(row=8, column=0)
4

2 回答 2

2

按钮工作正常,你的功能是问题:

def search():
   x = int(stockNumber.get())
   if (x == car[0]): 
      vinNumber.insert(0,str(car[1]))
      make.insert(0,str(car[3]))
      model.insert(0,str(car[4]))
      color.insert(0,str(car[5]))
      status.insert(0,str(car[6]))
      price.insert(0,str(car[7]))
      size.insert(0,str(car[8]))
      mileage.insert(0,str(car[9]))

这是我修复的:

  1. stockNumber.get() 返回一个字符串,将其与整数进行比较,如果这样做,它将始终为 false -> 使用 int() 将其转换为 int

  2. .insertinsert(data)也需要一个索引,不仅仅是insert(index, data)

于 2021-01-06T23:20:00.553 回答
0

这里有提示!!!

您需要查看每个数据点并了解您希望函数提取的数据类型。是的,你想要一个号码!但它是一个“int”,一个浮点数,它是什么???

看看你的 search() 函数。它没有抓取数据的唯一原因是您需要确保该函数正在寻找正确类型的数据。由于“库存编号”可能是一个整数,因此您需要在函数中指定它。

对 Python 数据类型有一个基本的了解:

  1. 整数
  2. 漂浮
  3. 细绳
于 2021-01-06T23:24:49.503 回答