def mainMenu():
print('1. Set up an item for auction\n \n2. Place a bid')
print('Enter a number from the menu: ')
menu1 = input('')
if menu1 == '1' :
number = input('Registration number: ')
name = input('Auctioneer\'s name: ')
minimum = input('Minimum bid amount: $')
itemDes = input('Item Description: ')
bidCount = input('Number of bids: ')
AuctioneerDet = input('Auctioneer\'s details: ')
itemNum = random.randint(400,800)
global itemList
itemList = []
itemList.append((minimum, itemDes, AuctioneerDet, bidCount,
itemNum))
print('Confirm changes?') print("'y' for yes and 'n' for no") confirm = input('') if confirm == 'n' or confirm == 'N' : mainMenu() if confirm == 'y' or confirm == 'Y' : input('Press any key to go back to main menu') mainMenu() if menu1 == '2' : print(itemList)
mainMenu()
我想使用if menu1 == '2'
中itemList的元素,我该怎么做?
它说未定义itemList。
我希望用户首先通过输入1首先设置要拍卖的物品,然后返回主菜单并输入2,在这里用户可以查看他所下的出价,但是所有这些只能在列表之后进行被定义为。我不能为此做更多的工作,因为它一直说未定义itemList。
只是写了行print(itemList)来找出问题所在。这不是我要执行的实际任务,还有很多需要在清单上完成的任务。
答案 0 :(得分:1)
您必须确保在到达menu1 ='2'之前已定义itemList
def mainMenu():
print('1. Set up an item for auction\n \n2. Place a bid')
print('Enter a number from the menu: ')
menu1 = input('')
itemList = [] # <--- Define it here
if menu1 == '1':
number = input('Registration number: ')
name = input('Auctioneer\'s name: ')
minimum = input('Minimum bid amount: $')
itemDes = input('Item Description: ')
bidCount = input('Number of bids: ')
AuctioneerDet = input('Auctioneer\'s details: ')
itemNum = random.randint(400, 800)
global itemList
itemList.append((minimum, itemDes, AuctioneerDet, bidCount,
itemNum))
if menu1 == '2':
print(itemList)
mainMenu()
答案 1 :(得分:1)
您在情况1中定义了itemList
if menu1 == '1' :
.
.
.
global itemList
--> itemList = []
itemList.append((minimum, itemDes, AuctioneerDet, bidCount,
因此,您无法打印itemList
,
您可以在if statement
之外定义项目列表。
像这样,您可能想要外部itemList
。只需将其定义为全局变量
itemList = list()
def mainMenu():
print('1. Set up an item for auction\n \n2. Place a bid')
print('Enter a number from the menu: ')
menu1 = input('')
if menu1 == '1' :
number = input('Registration number: ')
name = input('Auctioneer\'s name: ')
minimum = input('Minimum bid amount: $')
itemDes = input('Item Description: ')
bidCount = input('Number of bids: ')
AuctioneerDet = input('Auctioneer\'s details: ')
itemNum = random.randint(400,800)
global itemList
itemList.append((minimum, itemDes, AuctioneerDet, bidCount,
itemNum))
if menu1 == '2' :
print(itemList)
mainMenu()
答案 2 :(得分:0)
如果输入不是'1'
,则永远不会定义itemList
。在mainMenu()
if menu1 == '1' :
...
global itemList # <-- why is this inside the conditional?
itemList = []
答案 3 :(得分:0)
我认为您忘记了在mainMenu之前定义itemList
。在mainMenu之前定义itemList,它应该可以工作。
itemList = []
def mainMenu():
print('1. Set up an item for auction\n \n2. Place a bid')
print('Enter a number from the menu: ')
menu1 = input('')
if menu1 == '1' :
number = input('Registration number: ')
name = input('Auctioneer\'s name: ')
minimum = input('Minimum bid amount: $')
itemDes = input('Item Description: ')
bidCount = input('Number of bids: ')
AuctioneerDet = input('Auctioneer\'s details: ')
itemNum = random.randint(400,800)
global itemList
itemList = []
itemList.append((minimum, itemDes, AuctioneerDet, bidCount,
itemNum))
if menu1 == '2' :
print(itemList)
mainMenu()
答案 4 :(得分:0)
确保在第一个if条件之前定义列表。 (如果menu =='1') 这样可以很好地处理您的代码