Как я могу увидеть, сколько раз конкретный клиент заказал в общей сложности?

#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. я еще не работал со словарями, только со списками