2017-06-13 41 views
0

我写了一个程序很匆忙,看看我是否可以改进一些我放弃的旧代码,因为我无法保存它,但现在我已经写入了一个。 csv文件它什么都不做。如果我在运行时尝试与它交互,即按1,2,3,4,则什么都不会发生,它甚至不会退出,原因是我无法排除故障。这里是代码,任何人都可以告诉我我失踪了什么?程序什么时候什么都没有提示

import pandas as pd 
import csv 
import matplotlib.pyplot as plt 
import numpy as np 

myDict = {"Apples": 150, "Berries": 200, "Bananas": 300, "Oranges": 350} 

def menu(): 
    print("Press 1: To add stock. ") 
    print("Press 2: To check stock. ") 
    print("press 3: To enter purchase. ") 
    print("Press 4: To quit the program. ") 
    return input("What would you like to do? ") 

run = menu() 

while True: 
    if run == '1': 
     AddStock = input('Product to be added to stock? ') 
     Amount = int(input('Quantity of product to be added to stock? ')) 
     myDict[AddStock] = Amount 
     run = menu() 

    elif run == '2': 
     for key, value in myDict.items(): 
      print("{}: {}".format(key, value)) 
     run = menu() 

    elif run == '3': 
     product = input('What product was sold? ') 
     if product in myDict: 
       myDict[product] -= 1 
     else: 
      print("Product is out of stock! ") 
     run = menu() 

    elif run == '4': 
     with open('stock.csv', 'w') as stock: 
      writer = csv.writer(stock) 
      for key, value in myDict.items(): 
       writer.writerow([key, value]) 
       break 
+0

好,只是要求确认。你按下输入吗? –

+0

你正在打破循环写入csv从不提示新输入/终止while循环,所以只要运行=='4''一遍又一遍地打开/写入,它就会连续输入'elif'语句再次 – Pythonista

回答

0

既然没有人回答了这个问题......下面是一个快速解决问题的方法。虽然,我只会显示一次命令选项,而不是每次都显示。

import csv 

myDict = {"Apples": 150, "Berries": 200, "Bananas": 300, "Oranges": 350} 

def menu(): 
    print("Press 1: To add stock.") 
    print("Press 2: To check stock.") 
    print("press 3: To enter purchase.") 
    print("Press 4: To quit the program.") 
    return input("What would you like to do? ") 

run = None 
while run != '4': 
    run = menu() 
    if run == '1': 
     AddStock = input('Product to be added to stock? ') 
     Amount = int(input('Quantity of product to be added to stock? ')) 
     myDict[AddStock] = Amount 
    elif run == '2': 
     for key, value in myDict.items(): 
      print("{}: {}".format(key, value)) 

    elif run == '3': 
     product = input('What product was sold? ') 
     if product in myDict: 
      myDict[product] -= 1 
     else: 
      print("Product is out of stock! ") 

    elif run == '4': 
     with open('stock.csv', 'w', newline="") as stock: 
      writer = csv.writer(stock) 
      for key, value in myDict.items(): 
       writer.writerow([key, value]) 
+0

我试过这个,同样的问题仍然存在,它会编译但没有做任何事情,一旦提示。 –

+0

您是否输入了输入....因为这有效,并且没有任何会导致 – Pythonista

相关问题