[英]How can I set up a Count occurrence?
I'm trying to set up a count occurrence which will count how much people are in an array and then I want to use that number in a calculation to calculate the total money made from the tickets but I'm not sure how I'm supposed to do this. 我正在尝试设置一个计数事件,该事件将对数组中的人数进行计数,然后我想在计算中使用该数字来计算门票产生的总收入,但是我不确定我如何应该这样做。
Each customer_ID
starts with a c
which I wanted to use as a the search term. 每个
customer_ID
均以c
开头,我想将其用作搜索词。
def read_info():
customer_id_list = []
ticket_id_list = []
number_of_tickets_list = []
buy_method_list = []
ticket_price = 0
total_for_customer_list = []
file = open ("Data.txt","r")
for line in file:
#Splits the data from the text file into it's corresponding variables.
customer_id,ticket_id,number_of_tickets,buy_method = line.split(",",4)
#Adds customer_id into the customer_id_list array
customer_id_list.append(customer_id)
# Adds ticket_id into the ticket_id_list array
ticket_id_list.append(ticket_id)
# Adds number_of_tickets into the number_of_tickets_list array
number_of_tickets_list.append(number_of_tickets)
#Adds the buy_method into the buy_method_list array
buy_method_list.append(buy_method)
#Using IF statements the program works out the price for each day which will be later used to calculate the total price for the customer and the total raised for charity.
if ticket_id in ['F1','F2','F3']:
ticket_price = 10
if ticket_id in ['W1','W2','W3','T1','T2','T3']:
ticket_price = 5
#converts the ticket_price from a string variable to a integer variable which allows this variable to be used in a calculation.
ticket_price = int(ticket_price)
#converts the number_of_tickets from a string variable to a integer variable which will be used in a calculation.
number_of_tickets = int(number_of_tickets)
#calculates the total price that will be paid for each customer by multyplying the ticket_Price which was worked out using the 'IF' statements by the number_of_tickets the customer has bought
total_for_customer = ticket_price * number_of_tickets
return customer_id_list,ticket_id_list,number_of_tickets_list,buy_method_list,ticket_price,total_for_customer
def find_number_of_people (customer_id_list):
#main program
customer_id_list,ticket_id_list,number_of_tickets_list,buy_method_list,ticket_price,total_for_customer = read_info()
find_number_of_people (customer_id_list)
Since I cannot comment under your question, let me guess what you want. 由于我无法根据您的问题发表评论,因此让我猜您想要什么。
If you want to get the length (ie the number of elements in an array), try: 如果要获取长度(即数组中元素的数量),请尝试:
len(array_name)
So I see you have calculated the total money for every customer, just add them up and you will get the grand total money of all tickets. 因此,我看到您已经计算了每个客户的总金额,只需将它们加起来,您将获得所有门票的总金额。 To do this, try:
为此,请尝试:
grand_total = 0
for money in total_for_customer_list:
grand_total = grand_total + money
If I got you wrong, just discuss with me under my answer so that I can reply. 如果我弄错了,请在我的回答下与我讨论,以便我回复。
The following is a refactored version of your code. 以下是代码的重构版本。 Could you please explain in your question what you are trying to do?
您能在问题中解释您要做什么吗? Maybe you could finish the
main
function shown below and pretend several functions exists that do what you want. 也许您可以完成下面显示的
main
功能,并假装存在几个可以满足您需要的功能。
import csv
TICKET_PRICES = dict(F1=10, F2=10, F3=10, T1=5, T2=5, T3=5, W1=5, W2=5, W3=5)
DATA_COLUMNS = ('customer', 'ticket_type', 'ticket_count', 'ticket_total',
'method')
def main():
"""Process ticket sale information from a database file."""
data = read_data('data.txt')
columns = pivot(data, DATA_COLUMNS)
find_number_of_people(columns['customer'])
def read_data(path):
"""Get all ticket data from a file and start processing the information."""
data = []
with open(path, newline='') as file:
reader = csv.reader(file)
for customer, ticket_type, count, method in reader:
ticket_price = TICKET_PRICES[ticket_type]
ticket_count = int(count)
ticket_total = ticket_price * ticket_count
row = customer, ticket_type, ticket_count, ticket_total, method
data.append(row)
return data
def pivot(data, column_names):
"""Convert the data table into a collection of related columns."""
columns = {name: [] for name in column_names}
for row in data:
for key, value in zip(column_names, row):
columns[key].append(value)
return columns
def find_number_of_people(customers):
"""What am I supposed to do here? The current goal is not clear."""
pass
if __name__ == '__main__':
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.