Python 我的功能菜单。displayHomeMenu(m)卡在无限循环中。为什么?
在下面的代码中,我希望菜单显示并提示用户进行选择。根据所选内容,我想转到以下if语句,这些语句允许用户定义其车辆的属性。在我将菜单放入函数之前,代码工作正常,但我的作业需要这种格式。没有错误。它只是一次又一次地提示选择。有什么建议吗Python 我的功能菜单。displayHomeMenu(m)卡在无限循环中。为什么?,python,loops,methods,Python,Loops,Methods,在下面的代码中,我希望菜单显示并提示用户进行选择。根据所选内容,我想转到以下if语句,这些语句允许用户定义其车辆的属性。在我将菜单放入函数之前,代码工作正常,但我的作业需要这种格式。没有错误。它只是一次又一次地提示选择。有什么建议吗 class Menu: """ Create a Menu """ def __init__(self): self.selection = selection
class Menu:
""" Create a Menu """
def __init__(self):
self.selection = selection
def displayHomeMenu(self):
if 2 == vehicleCount:
print("----Press 1 for car ")
print("----Press 2 for pickup ")
selection = input("----Press 3 to quit ")
return selection
else:
print("----Press 1 for car ")
selection = input("----Press 2 for pickup ")
return selection
class Vehicle:
""" Model a vehicle"""
def __init__(self, make = " ", model = "n/a", color = "n/a ", fuelType = "n/a ", *options):
""" Initialize vehicle attributes """
self.make = make
self.model = model
self.color = color
self.fuelType = fuelType
self.options = {"power windows", "powerlocks", "remote start", "backup camera", "bluetooth", "cruise control", "heated seats", "heated steering wheel"}
def getMake(self):
self.make = input("Please enter your make ")
return self.make
def getModel(self):
self.model = input("Please enter your model ")
return self.model
def getColor(self):
self.color = input("Please enter the color ")
return self.color
def getFuelType(self):
self.fuelType = input("Please enter your fuel type ")
return self.fuelType
def getOptions(self):
print("Please select from the following options: ")
input(self.options)
return self.options
class Car(Vehicle):
"""Represents a car"""
def __init__(self, make = "n/a ", model = "n/a", color = "n/a ", fuelType = "n/a "):
super().__init__(make, model, color, fuelType)
""" Initialize car attributes"""
self.engineSize = " "
self.numDoors = " "
def getEngineSize(self):
self.engineSize = input("Please enter your engine size ")
return self.engineSize
def getNumDoors(self):
self.numDoors = input("How many doors do you have ")
return self.numDoors
class pickup(Vehicle):
"""Represents a pickup"""
def __init__(self, make = " ", model = " ", color = " ", fuelType = " "):
super().__init__(make, model, color, fuelType)
""" Initialize pickup attributes """
self.cabStyle = " "
self.bedLength = " "
def getCabStyle(self):
self.cabStyle = input("Please enter your cab style ")
def getBedLength(self):
self.bedLength = input("Please enter the length of your bed ")
i = 0
list = []
vehicleCount = 0
carCount = 0
pickupCount = 0
selection = 0
while True:
vehicleCount = pickupCount + carCount
m = Menu()
Menu.displayHomeMenu(m)
if selection == "1":
# Processing for item found
c = Car(Vehicle)
Vehicle.getMake(c)
Vehicle.getModel(c)
Vehicle.getColor(c)
Vehicle.getFuelType(c)
Car.getEngineSize(c)
Car.getNumDoors(c)
newcar = vars(c)
list.append(newcar)
if carCount < 1:
carCount = carCount + 1
else:
pass
elif selection == "2":
# Processing for item not found
p = pickup(Vehicle)
Vehicle.getMake(p)
Vehicle.getModel(p)
Vehicle.getColor(p)
Vehicle.getFuelType(p)
pickup.getCabStyle(p)
pickup.getBedLength(p)
newpickup = vars(p)
list.append(newpickup)
if pickupCount < 1:
pickupCount = pickupCount + 1
else:
for i in list:
print(i)
类菜单:
“”“创建菜单”“”
定义初始化(自):
自我选择=选择
def显示主页菜单(自我):
如果2==车辆计数:
打印(“按1表示汽车”)
打印(----按2键进行拾取)
选择=输入(----按3退出)
返回选择
其他:
打印(“按1表示汽车”)
选择=输入(“按2键拾取”)
返回选择
车辆类别:
“a型车辆”
def(self,make=“”,model=“n/a”,color=“n/a”,fuelType=“n/a”,*选项):
“”“初始化车辆属性”“”
自制
self.model=model
self.color=颜色
self.fuelType=fuelType
self.options={“电动车窗”、“电动锁”、“远程启动”、“倒车摄像头”、“蓝牙”、“巡航控制”、“加热型座椅”、“加热型方向盘”}
def getMake(自我):
self.make=输入(“请输入您的品牌”)
自制
def getModel(自):
self.model=输入(“请输入您的模型”)
回归自回归模型
def getColor(自身):
self.color=输入(“请输入颜色”)
返回自我颜色
def getFuelType(自身):
self.fuelType=输入(“请输入您的燃油类型”)
返回自选类型
def getOptions(自):
打印(“请从以下选项中选择:”)
输入(self.options)
返回self.options
车辆类别:
“”“代表一辆汽车”“”
定义初始化(self,make=“n/a”,model=“n/a”,color=“n/a”,fuelType=“n/a”):
超级()
“”“初始化汽车属性”“”
self.engineSize=“”
self.numDoors=“”
def getEngineSize(自):
self.engineSize=输入(“请输入您的引擎大小”)
返回自引擎化
def getNumDoors(自):
self.numDoors=输入(“您有多少门”)
返回self.numDoors
等级皮卡(车辆):
“”“代表皮卡”“”
def uuu init uuuuu(self,make=“”,model=“”,color=“”,fuelType=“”):
超级()
“”“初始化拾取属性”“”
self.cabStyle=“”
self.beddlength=“”
def getCabStyle(自):
self.cabStyle=输入(“请输入您的cab样式”)
def getBedLength(自身):
self.bedLength=输入(“请输入您的床长”)
i=0
列表=[]
车辆计数=0
carCount=0
拾取计数=0
选择=0
尽管如此:
车辆计数=皮卡计数+车辆计数
m=菜单()
菜单。显示主页菜单(m)
如果选择==“1”:
#正在处理找到的项目
c=汽车(车辆)
车辆制造(c)
车辆模型(c)
车辆颜色(c)
车辆类型(c)
汽车发动机尺寸(c)
汽车。getNumDoors(c)
新车=vars(c)
列表。追加(新车)
如果车辆计数小于1:
carCount=carCount+1
其他:
通过
elif选择==“2”:
#找不到正在处理的项目
p=皮卡(车辆)
车辆制造(p)
车辆模型(p)
车辆颜色(p)
车辆。getFuelType(p)
皮卡车风格(p)
皮卡。getBedLength(p)
新拾取=可变电阻(p)
列表。追加(新拾取)
如果拾取计数小于1:
拾取计数=拾取计数+1
其他:
对于列表中的i:
印刷品(一)
您没有使用displayHomeMenu()
中的返回值:
为True时:
车辆计数=皮卡计数+车辆计数
m=菜单()
selection=m.displayHomeMenu()#将返回值指定给selection
如果选择==“1”:
#正在处理找到的项目
c=汽车(车辆)
车辆制造(c)
车辆模型(c)
车辆颜色(c)
车辆类型(c)
汽车发动机尺寸(c)
汽车。getNumDoors(c)
新车=vars(c)
列表。追加(新车)
如果车辆计数小于1:
carCount=carCount+1
其他:
通过
elif选择==“2”:
#找不到正在处理的项目
p=皮卡(车辆)
车辆制造(p)
车辆模型(p)
车辆颜色(p)
车辆。getFuelType(p)
皮卡车风格(p)
皮卡。getBedLength(p)
新拾取=可变电阻(p)
列表。追加(新拾取)
如果拾取计数小于1:
拾取计数=拾取计数+1
其他:
对于列表中的i:
印刷品(一)