#python #python-3.x
#python #python-3.x
Вопрос:
Я привожу полный код программы, чтобы вы могли видеть ее концепцию. Я новичок в Python, и я пытаюсь учиться
import uuid #GET A RANDOM ID FOR THE CUSTOMER
from datetime import date #GET CURRENT DATE
TodayDate= date.today()
place=-1
SpecificCustomerOrders=0
AfterOrder=True
TotalOrders=0
NameCustomerList=[]
AddressCustomerList=[]
CustomerIDList=[]
FirstEmployeeAccountUsername="coffee1"
FirstEmployeeAccountPassword="coffeeshop1"
SecondEmployeeAccountUsername="coffee2"
SecondEmployeeAccountPassword="coffeeshop2"
ThirdEmployeeAccountUsername="coffee3"
ThirdEmployeeAccountPassword="coffeeshop3"
print("Welcome to our coffee shop!")
print("Login")
#EMPLOYEE LOGIN PROCCESS STARTS
LoginEnter=True
while LoginEnter:
username=input("Username: ")
password=input("Password: ")
if username==FirstEmployeeAccountUsername and password==FirstEmployeeAccountPassword or username==SecondEmployeeAccountUsername and password==SecondEmployeeAccountPassword or username==ThirdEmployeeAccountPassword and password==ThirdEmployeeAccountPassword:
print("Login Successful")
LoginEnter=False
else:
print("Invalid Login. Try again")
#EMPLOYEE LOGIN PROCCESS ENDS
#PROCCESS AFTER ORDER PLACEMENT STARTS
while AfterOrder:
place =1
CustomerName=input("Customer's Name:")
CustomerAddress=input("Customer's Address:")
NameCustomerList.append(CustomerName)
AddressCustomerList.append(CustomerAddress)
Здесь я пытаюсь узнать, сколько раз конкретный клиент
заказал в общей сложности, но я не могу понять это.
if CustomerName==NameCustomerList[place] and CustomerAddress==AddressCustomerList[place]:
SpecificCustomerOrders =1
if SpecificCustomerOrders==1:
print("This customer has ordered",SpecificCustomerOrders," time")
else:
print("This customer has ordered",SpecificCustomerOrders," times")
TotalOrders =1
CustomerID=uuid.uuid1()
CustomerIDList.append(CustomerID)
print("Current Date is:" , TodayDate)
OrderPrice=input("Total amount of order:")
Комментарии:
1. Вы должны сообщить нам, с какой конкретной проблемой вы столкнулись
2. Я хочу посмотреть, как я могу сохранить в переменной количество заказов, размещенных конкретным клиентом (не всеми клиентами).
3. Это немного сбивает с толку, потому что мы не знаем, где на самом деле находится ваш второй сегмент кода в вашем коде. Относится ли это к какому-то циклу? Или это тоже часть
while AferOrder:
?if
Условиеif CustomerName==NameCustomerList[place] and...
всегда будет истинным, потому что вы только что добавили соответствующее значение в список.4. (Вы правы, это сбивает с толку) Это также часть
while AfterOrder:
….. Хорошо, я могу исправить, чтобы это не всегда было правдой, но как это решит мою проблему?5. Все еще не совсем ясно, чего вы пытаетесь достичь. В чем должна быть разница между
SpecificCustomerOrder
иTotalOrders
, почему вы назначаете новый идентификатор с каждым заказом и какой результат вы получаете по сравнению чего вы ожидаете?
Ответ №1:
Могу ли я предложить другой подход
import uuid # GET A RANDOM ID FOR THE CUSTOMER
from datetime import date # GET CURRENT DATE
TodayDate = date.today()
Customers = {}
FirstEmployeeAccountUsername = "coffee1"
FirstEmployeeAccountPassword = "coffeeshop1"
SecondEmployeeAccountUsername = "coffee2"
SecondEmployeeAccountPassword = "coffeeshop2"
ThirdEmployeeAccountUsername = "coffee3"
ThirdEmployeeAccountPassword = "coffeeshop3"
print("Welcome to our coffee shop!")
print("Login")
# EMPLOYEE LOGIN PROCCESS STARTS
LoginEnter = True
while LoginEnter:
username = input("Username: ")
password = input("Password: ")
if username == FirstEmployeeAccountUsername and password == FirstEmployeeAccountPassword or username == SecondEmployeeAccountUsername and password == SecondEmployeeAccountPassword or username == ThirdEmployeeAccountPassword and password == ThirdEmployeeAccountPassword:
print("Login Successful")
LoginEnter = False
else:
print("Invalid Login. Try again")
# EMPLOYEE LOGIN PROCCESS ENDS
# PROCCESS AFTER ORDER PLACEMENT STARTS
while True:
CustomerName = input("Customer's Name:")
CustomerAddress = input("Customer's Address:")
if CustomerName in Customers:
Customers[CustomerName]['Orders'] = 1
else:
Customers[CustomerName] = {}
Customers[CustomerName]['Address'] = CustomerAddress
Customers[CustomerName]['ID'] = uuid.uuid1()
Customers[CustomerName]['Orders'] = 1
print("This customer has ordered {} time(s)".format(Customers[CustomerName]['Orders']))
print("Current Date is: {}".format(TodayDate))
OrderPrice = input("Total amount of order:")
Комментарии:
1. ВАУ. большое спасибо, чувак, я посмотрю, как ты это сделал, и постараюсь понять это. Еще раз спасибо
2. Это просто вложенный словарь с одной записью на каждого клиента. Проблема с вашим подходом заключалась в том, что вы не могли различать разных клиентов, поскольку у вас был только один счетчик заказов.
3.
else: Customers[CustomerName] = {} Customers[CustomerName]['Address'] = CustomerAddress Customers[CustomerName]['ID'] = uuid.uuid1() Customers[CustomerName]['Orders'] = 1
можете ли вы объяснить, что это делает4. Это создает новую запись клиента в словаре. Знаете ли вы, как структурированы dicts, key и value? Может быть, это поможет, если вы распечатаете текущий dict после каждого запуска. Поэтому просто добавьте a
print(Customers)
в конце5. я еще не работал со словарями, только со списками