2017-06-13 92 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

相關問題