股票代码合法验证:python字符串str应用

从键盘输入六位股票代码字符串,判定合法并输出板块分类,否则输出“NO”。


(笔记模板由python脚本于2023年12月04日 19:19:07创建,本篇笔记适合熟悉python字符串和字典的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


从键盘输入六位股票代码字符串
股票代码合法验证
(判定合法并输出板块分类,否则输出“NO”)


本文质量分:

96

本文地址: https://blog.csdn.net/m0_57158496/

CSDN质量分查询入口:http://www.csdn.net/qc



目 录

  • ◆ 股票代码合法验证
    • 1、题目描述
    • 2、算法解析
      • 2.1 股票代码分类字典
      • 2.2 “常规”if判定
      • 2. re正则通配表达式判定
    • 3、完整源码



◆ 股票代码合法验证


1、题目描述


  • 题目描述截屏图片
    在这里插入图片描述

题目来源于 CSDN 问答社区提问“股票代码合法验证”



回页目录


2、算法解析


可以有两种解决方案:

  • 1、从股票代码六位字符分析:

      从股票代码分类表可知,首位只可以是0、6、3,第二位只可以是0、8,第三位可以为0、1、2、3、8;后三位可以是任意数字字符。据此可以将前三位和后三位分开判断。

  • 2、正则通配表达式整串六位匹配:

      reExp = r’[036][08][01238]\d{3}’,能全匹配输入字符串,即为合法,其余返回“NO”。
      这种方解决案,更简洁,更优雅,更Python !😜😜

2.1 股票代码分类字典


  将股票代码分类,做成字典,比if分支更方便更高效。


股票代码分类字典


    dmDict = {'601': '沪市A股', 
              '602': '沪市A股', 
              '603': '沪市A股', 
              '000': '深市A股', 
    	      '688': '科创板',
    	      '002': '中小板',
    	      '300': '创业板'} # 股票分类字典。



回页目录



2.2 “常规”if判定


  • 代码运行效果截屏图片
    在这里插入图片描述

python代码


def isDm(s):
    ''' 判定股票代码合法性 '''
    a, b = dm[:3], dm[3:] # 分割代码字符串为前后三位。
    #print(a, b) # 代码调试用语句。
    
    
    for i in b: # 先判定后三位。
        
        if not i.isdigit(): # 后三位如有非数字字符,直接返回“NO”。
            return 'NO'

    for i in zip(a, [list('603'), list('08'), list('01238')]): # 再判定前三位。
        
        if i[0] not in i[-1]: # 如果前三位不是应有数字字符,返回“NO”。
            #print(i) #代码调试用语句。
            return 'NO'

    return dmDict.get(a) # 如果输入股票代码合法,返回其分类。




回页目录



2. re正则通配表达式判定


  • 代码运行效果截屏图片
    在这里插入图片描述

python代码


def isDm_re(dm):
    ''' 用正则通配判定 '''
    from re import findall # 加载re.findall方法。
    reExp = r'[036][08][01238]\d{3}'
    
    if ''.join(findall(reExp, dm)) != dm:
        return 'NO'
    else:
        return dmDict.get(dm[:3])




回页目录


3、完整源码

(源码较长,点此跳过源码)

#!/sur/bin/nve python
# coding: utf-8
from re import findall # 加载re.findall方法。


# 可以从股票代码六位字符分析:从股票代码分类表可知,首位只可以是6、0、3,第二位只可以是0、8,第三位可以为0、1、2、3、8;后三位可以是任意数字字符。据此可以将前三位和后三位分开判断。


def isDm(s):
    ''' 判定股票代码合法性 '''
    a, b = dm[:3], dm[3:] # 分割代码字符串为前后三位。
    #print(a, b) # 代码调试用语句。
    
    
    for i in b: # 先判定后三位。
        
        if not i.isdigit(): # 后三位如有非数字字符,直接返回“NO”。
            return 'NO'

    for i in zip(a, [list('603'), list('08'), list('01238')]): # 再判定前三位。
        
        if i[0] not in i[-1]: # 如果前三位不是应有数字字符,返回“NO”。
            #print(i) #代码调试用语句。
            return 'NO'

    return dmDict.get(a) # 如果输入股票代码合法,返回其分类。



def isDm_re(dm):
    ''' 用正则通配判定 '''
    from re import findall # 加载re.findall方法。
    reExp = r'[036][08][01238]\d{3}'
    
    if ''.join(findall(reExp, dm)) != dm:
        return 'NO'
    else:
        return dmDict.get(dm[:3])


if __name__ == '__main__':
    dm = input('\n输入:\n').strip()
    dmDict = {'601': '沪市A股', 
              '602': '沪市A股', 
              '603': '沪市A股', 
              '000': '深市A股', 
    	         '688': '科创板',
    	         '002': '中小板',
    	         '300': '创业板'} # 股票分类字典。
    print(f"\n输出:\n{isDm(dm)}\n正则通配判定:{isDm_re(dm)}")

回页首


上一篇:  猜数字赢金币(充值金币后开始游戏,猜中奖励10金币退出,不中扣除1金币继续)
下一篇: 

我的HOT博:
\n\n

\n\n我的 HOT博:

  本次共计收集 246 篇博文笔记信息,总阅读量 40.46w,平均阅读量 1644。已生成 16 篇阅读量不小于 4000 的博文笔记索引链接。数据采集于 2023-10-12 05:41:03 完成,用时 4 分 41.10 秒。


  1. ChatGPT国内镜像站初体验:聊天、Python代码生成等
    ( 59262 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/129035387
    点赞:126   踩 :0  收藏:798  打赏:0  评论:71
    本篇博文笔记于 2023-02-14 23:46:33 首发,最晚于 2023-07-03 05:50:55 修改。
  2. 让QQ群昵称色变的神奇代码
    ( 58086 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:24   踩 :0  收藏:83  打赏:0  评论:17
    本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。
  3. pandas 数据类型之 DataFrame
    ( 9173 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:6   踩 :0  收藏:31  打赏:0  评论:0
    本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。
  4. 个人信息提取(字符串)
    ( 7215 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:1   踩 :0  收藏:13  打赏:0  评论:0
    本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。
  5. Python列表(list)反序(降序)的7种实现方式
    ( 7161 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:5   踩 :0  收藏:22  打赏:0  评论:8
    本篇博文笔记于 2022-12-11 23:54:15 首发,最晚于 2023-03-20 18:13:55 修改。
  6. 罗马数字转换器|罗马数字生成器
    ( 7035 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。
  7. Python字符串居中显示
    ( 6966 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    点赞:1   踩 :0  收藏:7  打赏:0  评论:1
    本篇博文笔记
  8. 斐波那契数列的递归实现和for实现
    ( 5523 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122355295
    点赞:4   踩 :0  收藏:2  打赏:0  评论:8
    本篇博文笔记
  9. python清屏
    ( 5108 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    点赞:0   踩 :0  收藏:8  打赏:0  评论:0
    本篇博文笔记
  10. 练习:字符串统计(坑:f‘string‘报错)
    ( 5103 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121723096
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记
  11. 回车符、换行符和回车换行符
    ( 5093 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:1   踩 :0  收藏:2  打赏:0  评论:0
    本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。
  12. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
    ( 4943 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121645399
    点赞:14   踩 :0  收藏:42  打赏:0  评论:0
    本篇博文笔记
  13. 密码强度检测器
    ( 4323 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121739694
    点赞:1   踩 :0  收藏:4  打赏:0  评论:0
    本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。
  14. 练习:生成100个随机正整数
    ( 4274 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122558220
    点赞:1   踩 :0  收藏:6  打赏:0  评论:0
    本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。
  15. 我的 Python.color() (Python 色彩打印控制)
    ( 4159 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    点赞:2   踩 :0  收藏:8  打赏:0  评论:0
    本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。
  16. 罗马数字转换器(用罗马数字构造元素的值取模实现)
    ( 4149 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122608526
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。
推荐条件 阅读量突破{补全数据}
(更多热博,请点击蓝色文字跳转翻阅)
推荐条件 阅读量突破四千
(更多热博,请点击蓝色文字跳转翻阅)

回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/219060.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言实现Berzier曲线几何作图算法

前言: 隐式曲线表达上的限制 计算上的多值性(例如可能一个 x 对应多个 y)存在导数 未定义的点坐标系进行变换后,曲线表达形式将可能会发生改变 一般的多项式幂基函数缺乏直观的几何意义 我们考虑由3个二元点对构造的二维平面曲…

使用正则表达式时-可能会导致性能下降的情况

目录 前言 正则表达式引擎 NFA自动机的回溯 解决方案 前言 正则表达式是一个用正则符号写出的公式,程序对这个公式进行语法分析,建立一个语法分析树,再根据这个分析树结合正则表达式的引擎生成执行程序(这个执行程序我们把它称作状态机&a…

6、原型模式(Prototype Pattern,不常用)

原型模式指通过调用原型实例的Clone方法或其他手段来创建对象。 原型模式属于创建型设计模式,它以当前对象为原型(蓝本)来创建另一个新的对象,而无须知道创建的细节。原型模式在Java中通常使用Clone技术实现,在JavaSc…

参加百度Apollo技术沙龙—感受自动驾驶的魅力

2023年12月2日下午2点,我有幸参加了百度Apollo技术沙龙,这是一个围绕Apollo新版本Beta的全面升级展开的深度交流活动。作为一名工程师,我深感荣幸能够与众多同行和专家一同探讨自动驾驶技术的快速发展 在这次沙龙中,我了解到Apo…

可编程电子负载原理是怎样的

可编程电子负载是一种模拟真实负载的电子设备,它可以模拟各种不同类型和规格的负载,如电阻、电容、电感等。通过调整电子负载的参数,可以实现对电源输出电压、电流、功率等性能指标的精确控制。可编程电子负载广泛应用于电源测试、电池充放电…

基于vue+node.js智慧校园学生办证系统

基于vuenode.js智慧校园学生办证系统 摘要:随着计算机技术和网络技术的飞快发展,它加速了国内信息化建设的进程,信息技术对管理改革产生了深远的影响。为了适应新时代的发展趋势,各行各业都高度重视信息化建设。在教育领域&#…

成为Java开发高手:掌握Spring框架的关键技能-DI

DI相关内容 1.1 setter注入1.1.2 注入引用数据类型1.1.3 注入简单数据类型步骤1:声明属性并提供setter方法步骤2:配置文件中进行注入配置步骤3:运行程序 1.2 构造器注入1.2.2 构造器注入引用数据类型步骤1:删除setter方法并提供构造方法步骤2:配置文件中进行配置构造方式注入步…

4.9 构建onnx结构模型-Equal

前言 构建onnx方式通常有两种: 1、通过代码转换成onnx结构,比如pytorch —> onnx 2、通过onnx 自定义结点,图,生成onnx结构 本文主要是简单学习和使用两种不同onnx结构, 下面以 Equal 结点进行分析 方式 方法一…

北京华联BHGMall“宠粉模式”不断迭代,强体验注互动成行业UP主

在今年双11热度遇冷后,双十二被官宣取消,而这背后本质已经间接印证:传统“电商大促”的模式,已经难以为继。反观线下消费市场,则是以持续恢复和增长成为经济恢复的亮点,从线下客流量的快速回升,…

软考2016年上半年第六题(适配器模式)与手术训练系统项目适配器模式的应用

软考2016年上半年第六题 public class Address {public void street(){System.out.println("a");};public void zip(){};public void city(){}; }package org.example.适配器模式;/*** 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间…

整数和浮点数在内存中的存储​(大小端详解)

目录 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1为什么有大小端?​ 2.2请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序。(10分)-百度笔试题 方法一(char*强制类型转换&#xff09…

疑难杂症 之 关闭模态窗口之后刷新父窗口

疑难杂症 之 关闭模态窗口之后刷新父窗口 1. 模态窗口 与 非模态窗口2. 弹出模态窗口2.1 实现效果2.2 实现代码2.2.1 刷新父窗口2.2.2 完整代码 2.3 参考 3. 其他刷新父窗口(模态窗口页面与父窗口不在同一页面)3.1 实现代码3.1.1 核心代码3.1.2 多层模态…

什么是Amazon Lambda(无服务器计算服务)

Lambda 在高可用性计算基础设施上运行代码,用于执行计算资源的所有管理工作。这包括服务器和操作系统维护、容量调配和弹性伸缩、代码和安全补丁部署以及代码监控和日志记录。您只需要提供代码。 最近亚马逊云服务提供了超多免费的云服务,快来领取免费套…

java版微信小程序商城免费搭建 java版直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销

涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

利用 FormData 实现文件上传、监控网路速度和上传进度(前端原生,后端 koa)

利用 FormData 实现文件上传 基础功能:上传文件 演示如下: 概括流程: 前端:把文件数据获取并 append 到 FormData 对象中后端:通过 ctx.request.files 对象拿到二进制数据,获得 node 暂存的文件路径 前端…

学习Opencv(蝴蝶书/C++)——4.图形和大型数组类型(上)

文章目录 1. cv::Mat类的成员变量1.1 flags1.2 cv::Mat::step2 存储方式,存储位置计算2.1 存储方式2.2 🌈存储位置计算2.2.1 基本计算公式2.2.1 step代码说明2.2.3 内存地址计算代码说明3 创建数据3.0 Mat的构成3.0.1 3.0版本之后的Mat3.0.2 cvMat3.1 构造函数3.2 🌈构造函…

【MySQL】MySQL数据库基础

MySQL数据库基础 一、为什么要有数据库?二、 数据库软件的构成数据库服务器,数据库,表关系主流数据库 三、基本使用1、连接服务器2、服务器管理3、MySQL配置文件4、数据库的简单操作5、数据逻辑存储 四、MySQL架构SQL分类MySQL客户端存储引擎…

Hadoop学习笔记(HDP)-Part.10 创建集群

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

[ 蓝桥杯Web真题 ]-外卖给好评

目录 介绍 准备 目标 效果 规定 思路 解答参考 介绍 外卖是现代生活中必备的一环。收到外卖后,各大平台软件常常会邀请用户在口味,配送速度等多个方面给与评分。在 element-ui 组件中,已经有相应的 Rate 组件,但是已有组件…