sales.append(sale) return sales def calc_sales_total(sales): """ 计算销售总额 :param sales: 销售记录列表 :return: 销售总额 """ total = 0 for s in sales: amount = s.price * s.quantity total += amount return total filename = dlg.get_open_file_name("请选择csv文件", dlg.FileFilter.CSVFiles) if filename == "": print("未选择文件!") exit(-1) sales = read_csv(filename) dlg.show_objects(sales) total = calc_sales_total(sales) dlg.show_message(f"销售总额{total}")
code = "sh601006" #抓取网页(json格式) response = request.urlopen('http://hq.sinajs.cn/list=' + code) raw_data = response.read().decode('gbk') #提取""括起的内容(两个""之间的内容) quote1 = raw_data.find('"') quote2 = raw_data.find('"', quote1 + 1) raw_data = raw_data[quote1 + 1:quote2] #按逗号分割成多个数据项 datas = raw_data.split(',') result = "股票{0}目前的价格是{1},最高价{2},最低价{3}".format(datas[0], datas[3], datas[4], datas[5]) #使用对话框显示查询结果 dlg.show_message(result, "股票信息") """ https://www.cnblogs.com/phpxuetang/p/4519446.html 以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据 接口: http://hq.sinajs.cn/list=sh601006 这个url会返回一串文本,例如: var hq_str_sh601006="大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92, 22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300, 26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32"; 这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。 0:”大秦铁路”,股票名字; 1:”27.55″,今日开盘价; 2:”27.25″,昨日收盘价; 3:”26.91″,当前价格; 4:”27.55″,今日最高价;
def find_max_score(scores): """ 寻找并返回scores列表中成绩最高的学生信息 :param scores: scores列表 :return: 最高分同学信息 """ max_score = scores[0] for score in scores: if score.score > max_score.score: max_score = score return max_score # 读取文件 filename = dlg.get_open_file_name("选择要打开的文件", dlg.FileFilter.CSVFiles) if filename == '': print("未选择文件") exit(-1) scores = read_csv_file(filename) dlg.show_objects(scores) max_score = find_max_score(scores) dlg.show_message( f"获得最高分的同学:{max_score.id} {max_score.name},成绩为{max_score.score}")
def find_using_index(index,name_key): """ 使用index索引列表,查找姓名等于name_key在scores列表中的下标 :param index: 索引列表 :param name_key: 要查找的姓名 :return: 姓名为name_key的学生。None表示找不到。 """ i_index = hash(name_key) % MAX_INDEX_SIZE items=index[i_index] for item in items: if item.key == name_key: return item.student return None #5-2-2.成绩.csv filename = dlg.get_open_file_name("请选择成绩csv文件",dlg.FileFilter.CSVFiles) if filename == "": print("未选择文件") exit(-1) students = read_csv(filename) dlg.show_objects(students) index = create_index(students) name = dlg.get_string("请输入要查找的姓名") found = find_using_index(index,name) if found is None: dlg.show_message(f"找不到姓名为{name}的学生") else: dlg.show_message(f"id: {found.id} 姓名: {found.name} 成绩:{found.score}")
import easygraphics.dialog as dlg def cals_sales_price(price): sales = 0.9 * price return sales price = int(dlg.get_string("请输入原始价格:")) sales_price = cals_sales_price(price) dlg.show_message(f"打折后价格为{sales_price}")
def find_using_index(index, name_key): """ 使用index索引列表,查找姓名等于name_key在scores列表中的下标 :param index: 索引列表 :param name_key: 要查找的姓名 :return: 学生在scores列表中的下标。-1表示列表中无此学生。 """ i_index = hash(name_key) % MAX_INDEX_SIZE items = index[i_index] for item in items: if item.key == name_key: return item.index return -1 filename = dlg.get_open_file_name("请选择成绩csv文件", dlg.FileFilter.CSVFiles) if filename == "": print("未选择文件") exit(-1) scores = read_csv(filename) dlg.show_objects(scores) index = create_index(scores) name = dlg.get_string("请输入要查找的姓名") i = find_using_index(index, name) if i == -1: dlg.show_message(f"找不到姓名为{name}的学生") else: s = scores[i] dlg.show_message(f"id: {s.id} 姓名: {s.name} 成绩:{s.score}")
import easygraphics.dialog as dlg def calc_discount(total): """ 计算折扣数和折后金额 :param total: 购物金额 :return: 折扣数,折后金额 """ if total < 0: raise ValueError('total should not < 0!') if total >= 500: discountRate = 0.9 elif total >= 200: discountRate = 0.95 amount = total * discountRate return discountRate, amount total = float(dlg.get_string("请输入总金额")) dis_rate, amount = calc_discount(total) dlg.show_message(f"折扣率为{dis_rate},折后金额为{amount}")
import easygraphics.dialog as dlg is_girl = dlg.get_yes_or_no("你是女生吗?") if is_girl: dlg.show_message("免费送你个鸡腿~~") dlg.show_message("继续打饭")
import easygraphics.dialog as dlg values = dlg.get_many_strings("请输入", labels=["身高(米)", "全票票价"]) height = float(values[0]) full_price = float(values[1]) if height <= 1.3: price = 0 else: if height <= 1.5: price = full_price / 2 else: price = full_price dlg.show_message("最终票价为:" + str(price))
return sales def calc_sub_total(sales, goods_name): """ 统计指定商品的销售额 :param sales: 销售记录列表 :param goods_name: 要统计的商品名 :return: 指定商品的销售额 """ total = 0 for s in sales: if s.name == goods_name: amount = s.price * s.quantity total += amount return total filename = dlg.get_open_file_name("请选择csv文件", dlg.FileFilter.CSVFiles) if filename == "": print("未选择文件!") exit(-1) sales = read_csv(filename) dlg.show_objects(sales) sub_total = calc_sub_total(sales, "方便面") dlg.show_message(f"方便面的销售额为{sub_total}元")
class User: def __init__(self, id, name, borrowed, type): self.id = id self.name = name self.borrowed = borrowed self.type = type def calc_books_can_borrow(user): if user.type == '教师': n = 10 - user.borrowed else: n = 5 - user.borrowed return n data = dlg.get_many_strings("用户信息", labels=['编号', '姓名', '已借数量', '类别']) user_id = data[0] name = data[1] borrowed = int(data[2]) type = data[3] user = User(user_id, name, borrowed, type) can_borrow = calc_books_can_borrow(user) dlg.show_message(f"用户{user.name}可以借{can_borrow}本书")
import easygraphics.dialog as gui s = gui.get_string("your name:") gui.show_message(f"hello {s}")
import easygraphics.dialog as gui import math def sqrt(a, epsilon): k = 0 xk = a while True: k += 1 xk1 = xk xk = (xk1 + a / xk1) / 2 if math.fabs(xk - xk1) < epsilon: break root = xk return xk ep = 0.0001 a = float(gui.get_string("请输入a:")) root = sqrt(a, ep) gui.show_message(f"{a}的平方根是{root}")
if index.name == key_name: return index.index elif index.name < key_name: start = mid+1 else: end = mid - 1 return -1 # 从csv文件中读入学生成绩信息,放到scores列表中 # 5-2-1.成绩.csv filename = dlg.get_open_file_name("请选择成绩csv文件",dlg.FileFilter.CSVFiles) if filename == "": print("未选择文件") exit(-1) scores = read_csv(filename) dlg.show_objects(scores,fields=['id','name','clazz','math','literature','english']) # 创建姓名的折半查找索引 name_indices = create_indices(scores) dlg.show_objects(name_indices) # 使用折半查找索引进行查找 key = dlg.get_string("请输入要查找的姓名") i = find_using_index(name_indices,key) if i == -1: dlg.show_message(f"找不到姓名为{key}的学生") else: dlg.show_message(f"找到了!是{scores[i]}")