Python 程序在提示时不执行任何操作

Python 程序在提示时不执行任何操作,python,python-3.x,Python,Python 3.x,我非常匆忙地编写了一个程序,只是想看看我是否可以改进一些旧代码,因为我无法保存它,但现在我将它写入.csv文件,它什么也不做。如果我在它运行时尝试与它交互,即按1、2、3、4,则什么也不会发生,它甚至不会带原因退出,因此我无法对其进行故障排除。这是密码,有人能告诉我我遗漏了什么吗 import pandas as pd import csv import matplotlib.pyplot as plt import numpy as np myDict = {"Apples": 150

我非常匆忙地编写了一个程序,只是想看看我是否可以改进一些旧代码,因为我无法保存它,但现在我将它写入.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

既然还没有人回答这个问题。。。这里有一个快速修复它的方法。尽管如此,我只会显示一次命令选项,而不是每次

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])

我只是想确认一下。你按enter键了吗?你在循环中中断了对csv的写入,从未提示新的输入/终止while循环,因此只要一次
run==“4”
反复打开/写入,就会继续输入
elif
语句,一旦提示,它将编译,但不会执行任何操作。您是否正在输入。。。。因为这是有效的,没有什么会导致这种情况