努力努力再努Li

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

摘要: 电脑简史 阅读全文
posted @ 2019-08-10 11:30 努力努力再努Liz 阅读(517) 评论(0) 推荐(0) 编辑

2020年9月13日

# coding: utf-8

"""

作业题目:股票信息查询程序
    作业需求:
    1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环)
    2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来
    3 允许按股票价格、涨跌幅、换手率这几列来筛选信息,
         比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。
    stock_data.txt 此文件请从课件中下载。

思路提示:
加载文件内容到内存,转成dict or list结构,然后对dict or list 进行查询等操作。 这样以后就不用每查一次就要打开一次文件了,效率会高。

知识点:
",".join(str.split()) 把列表转为字符串。由于空格做分隔,可能会受到文字中包含空格的影响,建议把空格转换为逗号,通过逗号做分隔,
str.strip() 把字符串中的特殊字符(比如\n换行给去除)
exit("程序退出,谢谢使用!")  可以直接退出程序(break是退出当前循环)

"""

# 首先处理文本文件,把空格转换为逗号
"""

# 读取文件
with open("stock_data_dict_空格改逗号分隔.txt", mode="r", encoding="utf-8") as f:
    # 设置开始读取位置的下标为0
    f.seek(0)
    # 读取原文件的信息,list列表
    read_stock_data = f.readlines()
    # 存放修改后的信息
    modified_stock_data = ""
    # 修改信息,循环列表每1行
    for line in read_stock_data:
        # 把该行空格转换为逗号,并赋值(注意保留换行)
        modified_stock_data += ",".join(line.split()) + "\n"

# 写入文件
with open("stock_data_dict_空格改逗号分隔.txt", mode="w", encoding="utf-8") as f:
    # 把前边修改后的信息,写入文件
    f.write(modified_stock_data)

"""

# 定义变量
# 通过字典存放股票信息
stock_data_dict = {}
# # 判断是否退出循环
# is_not_exit = True

# 读取文件
with open("stock_data_dict_空格改逗号分隔.txt", mode="r", encoding="utf-8") as f:
    # 把首行标题单独取出,放入list列表
    stock_data_title = f.readline().strip().split(",")
    # 读取文件中的股票信息(不含标题),并存入字典
    for line in f.readlines():
        # 把取出的字符串转为列表
        line = line.strip().split(",")
        # 把该行添加到字典,列表中的“名称”为key,列表为value
        stock_data_dict[line[2]] = line

# while循环实现股票查询逻辑
while True:
    # 查询到的股票记录数
    record_num = 0
    # 打印标题,供用户选择
    print(stock_data_title)
    # 接收用户输入条件:模糊查询-股票名称,表达式-价格>50,表达式-市盈率<50,注意百分号%处理
    user_input = input("股票查询接口>>")

    # for循环遍历所有股票信息
    for stock_key,stock_value in stock_data_dict.items():
        # 模糊查询-股票名称,存在则打印(title已单独取出,dict.keys()中存的是股票名称)
        if user_input in stock_key:
            print(stock_value)
            record_num += 1

        # 如果用户输入条件,包含>,则按照表达式处理
        elif ">" in user_input:
            # 把用户输入转为列表
            user_input_list = user_input.strip().split(">")
            # 用户输入的标题
            user_input_title = user_input_list[0]
            # 用户输入的值,如果存在百分号%则去除
            user_input_value = user_input_list[1].strip("%")
            # 用户输入的列索引
            user_input_index = stock_data_title.index(user_input_title)
            # 当前遍历所在行,对应列的值,如果存在百分号%则去除
            column_value = stock_value[user_input_index].strip("%")
            # 判断用户输入,符合条件则打印
            if float(column_value) > float(user_input_value):
                print(stock_value)
                record_num += 1

        # 如果用户输入条件,包含<,则按照表达式处理
        elif "<" in user_input:
            # 把用户输入转为列表
            user_input_list = user_input.strip().split("<")
            # 用户输入的标题
            user_input_title = user_input_list[0]
            # 用户输入的值,如果存在百分号%则去除
            user_input_value = user_input_list[1].strip("%")
            # 用户输入的列索引
            user_input_index = stock_data_title.index(user_input_title)
            # 当前遍历所在行,对应列的值,如果存在百分号%则去除
            column_value = stock_value[user_input_index].strip("%")
            # 判断用户输入,符合条件则打印
            if float(column_value) < float(user_input_value):
                print(stock_value)
                record_num += 1

        # 退出,输入q
        elif user_input == "q":
            # is_not_exit = False
            exit("程序退出,谢谢使用!")

    # 打印找到的股票记录条数
    print("找到{0}条".format(record_num))

 

posted @ 2020-09-13 17:43 努力努力再努Liz 阅读(376) 评论(0) 推荐(0) 编辑

摘要: # coding: utf-8 """ 作业题目:股票信息查询程序 作业需求: 1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环) 2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来 3 允许按股票价格、涨跌幅、换手率这几列来筛选 阅读全文
posted @ 2020-09-13 17:42 努力努力再努Liz 阅读(318) 评论(0) 推荐(0) 编辑

摘要: # coding: utf-8 """ 三级菜单 需求: 可依次选择进入各子菜单 可从任意一层往回退到上一层 可从任意一层退出程序 所需新知识点:列表、字典 """ # 三级菜单数据信息 menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'goog 阅读全文
posted @ 2020-09-13 17:32 努力努力再努Liz 阅读(160) 评论(0) 推荐(0) 编辑

摘要: # coding: utf-8 """ 练习题2 —— 模拟登陆-听课后升级: 用户输入帐号密码进行登陆 用户信息保存在文件内 用户密码输入错误三次后锁定用户,下次再登录,检测到是这个用户也登录不了 知识点: 1、运用字典,对字符串str()和字典eval()互转,在文本中存储和读取账号信息。 2、 阅读全文
posted @ 2020-09-13 17:16 努力努力再努Liz 阅读(170) 评论(0) 推荐(0) 编辑

2020年9月3日

摘要: 【视频观看速率为 1.0x-1.5x】 【学习疑问:暂未找到更高效、合理的学习方法,学习效率低下,继续探索吧 1、待优化:每日学习时间(分配不足),执行力(执行不足易分心),打卡(跳票有些严重)。 2、关于笔记整理:在luffy-book上,已经有非常详细的记录了,感觉在博客上的再次整理笔记,仅仅起 阅读全文
posted @ 2020-09-03 21:43 努力努力再努Liz 阅读(306) 评论(0) 推荐(0) 编辑

摘要: 第1章节补充: 1、变量的创建过程和垃圾回收机制。 查看变量值存放的内存地址: name = "jack li" id(name) 2、身份运算 python 中有很多种数据类型, 查看一个数据的类型的方法是type(). 3、空值None 4、三元运算 阅读全文
posted @ 2020-09-03 20:59 努力努力再努Liz 阅读(222) 评论(0) 推荐(0) 编辑

摘要: # coding: utf-8 """ 练习题2 —— 模拟登陆: 用户输入帐号密码进行登陆 用户信息保存在文件内 用户密码输入错误三次后锁定用户,下次再登录,检测到是这个用户也登录不了 思路: 1、创建一个文件,保存 “用户名”、“密码”、“锁定状态:UnLock”,文本内容如下: 【 牛魔王 a 阅读全文
posted @ 2020-09-03 20:56 努力努力再努Liz 阅读(184) 评论(0) 推荐(0) 编辑

2020年8月31日

摘要: # coding: utf-8 """ 练习题1 —— 全局替换程序: 写一个脚本,允许用户按以下方式执行时,即可以对指定文件内容进行全局替换 python your_script.py old_str new_str filename 补充知识点: 需要使用 import sys sys.argv 阅读全文
posted @ 2020-08-31 22:14 努力努力再努Liz 阅读(160) 评论(0) 推荐(0) 编辑

2020年8月22日

摘要: # coding: utf-8 """ 练习: 针对列表names = ['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '银角大王', 'eva', '鸡头'] 1、通过names.index()的方法返回第2个eva的索引值 2、把以上的列表通过切片的形式实现反转 3、打 阅读全文
posted @ 2020-08-22 11:17 努力努力再努Liz 阅读(214) 评论(0) 推荐(0) 编辑

2020年8月15日

摘要: # coding: utf-8 """ 作业:双色球选购 1 双色球(假设一共八个球,6个红球,球号1-32、2个蓝球,球号1-16) 2 确保用户不能重复选择,不能超出范围 3 用户输入有误时有相应的错误提示 4 最后展示用户选择的双色球的号码 升级需求: 1 一个while循环 思路: # 定义 阅读全文
posted @ 2020-08-15 17:52 努力努力再努Liz 阅读(295) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示