不公用panda,所以直接用列表和字典来写
#最终统计后的结果,字典格式
products = {}
#读取的记录,列表格式
records = []
#读取文件的每一行,列表格式
lines = []
#读取文件,将所有内容写入列表records
with open("productinfo.txt","r") as f:
#循环读取
while True:
line = f.readline()
#读到结尾退出循环
if not line:
break
#如果每行的内容结尾有换行符就舍去
if line[-1] == 'n':
line = line[:-1]
#把每行的数据以逗号为标志分割
lines = line.split(',')
#把分割的数据追加到列表
records.append(lines)
#遍历读到的结果,将结果经过计算后写入字典products
for record in records:
#每条记录的第一项作为字典的KEY,如果这个KEY在字典中就在基础上增加值
if record[0] in products:
products[record[0]]['total_sales'] += eval(record[2])
products[record[0]]['total_money'] += eval(record[1]) * eval(record[2])
#如果这个KEY不在字典,就设置为record原值
else:
products[record[0]] = {'total_sales':eval(record[2]),'total_money':eval(record[1]) * eval(record[2])}
#排序
sales=sorted(products.items(), key=lambda x:x[1]['total_sales'])
print("最大销量商品编号:", sales[-1][0],"销量:",sales[-1][1]['total_sales'])
print("最低销量商品编号:", sales[0][0],"销量:",sales[0][1]['total_sales'])
运算符是用于执行编程,可进行四则运算的计算以及比较大小时常用的半角符号。Python中运算符有不同的类型,下面我们就来具体看看Python中运算符的使用方法。
我们先来看看Python中的几种运算符
代数运算符
代数运算符是指以四则运算为代表的计算所使用的运算。
它在名称上与赋值运算符类似,但它是代数运算符。
+, -, *, /, %, **, //位运算符
位运算符是对整数执行按位运算的运算符
~, &, |, ^, <<, >>赋值运算符
赋值运算符是用于将值赋给变量,数组等的运算符。
它在名称上类似于代数运算符,但它是赋值运算符。
=, +=, -=, *=, /=, %=, **=, //=, &=, |=, ^=, <<=, >>=比较运算符
比较运算符是用于比较左值和右值的运算符。
==, !=, <, >, <=, >=, <=>, ===逻辑运算符
逻辑运算符(也称为布尔运算符)通常用于if语句的条件表达式,在条件表达式中主要返回true或false。
and, or, not字符串操作
字符串运算符操纵字符串。加入时的字符数从0个字符开始计算。要从字符末尾开始操作,需指定负值。
+, *, [n:m]下面我们来看看如何使用Python运算符
我们来看具体的示例
赋值运算符示例
a = 10.0
b = 3
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a%b)
print(a**b)
print(a//b)运行结果如下:
13.0
7.0
30.0
3.33333333333
1.0
1000.0
3.0分析:
在第一行和第二行中,将浮点数10.0赋值给变量a,将整数3赋值给变量b。
利用print语句显示计算结果。
比较运算符的示例
if 0 == 1:
print("相同")
else:
print("不相同)运行结果:
不相同分析:
if语句用于确定数字0和1是相同还是不相同。
我们使用比较运算符==进行比较。
由于0和1是不同的数字,因此显示结果是“不相同”
字符串操作的示例
a = "Gxl网"
b = "在线课程"
print (a + b)显示结果为:
Gxl网在线课程分析:
字符串“Gxl网”被赋给变量a。
对于变量b,赋值为“在线课程”。
在第三行的print语句中,使用字符串运算符组合变量a和b。
结果,显示组合了变量a和变量b的内容为字符串“Gxl网在线课程”。
总结: