设为首页 加入收藏

TOP

初识Python,第一个小程序,判断电话号码
2017-10-10 08:28:51 】 浏览:1455
Tags:初识 Python 一个 程序 判断 电话号码
  • 编写代码的一般步骤
    • 明确需求
    • 理解需求
    • 对问题进行概括
    • 编写代码
    • 测试调试代码
  • 需求
    • 输入一串字符串 'Call me at 415-555-1011 tomorrow. 415-555-9999 is my office.'
    • 把电话号码(415-555-1011,415-555-9999)提取出来
  • 判断电话号码究竟是什么格式,考虑一下它的规律:只有数字和‘-’两种字符,而且第三位和第七位一定是‘-’,这个时候考虑用数据驱动方式来写;
  • 代码如下
     1 #coding:utf-8
     2 #__author__ = 'Diva'
     3 
     4 PHONE_NUMBER_SIZE = 12  # 定义全局变量,电话号码的长度
     5 
     6 def is_digital(ch):     # 判断是否是数字
     7     if ord(ch) >= ord('0') and ord(ch) <= ord('9'):
     8         return True
     9     return False
    10 
    11 def is_special(ch):     # 判断是否是‘-’
    12     if ord(ch) == ord('-'):
    13         return True
    14     return False
    15 
    16 def is_phone_number_check(chars):   # 判断格式
    17     if len(chars) != PHONE_NUMBER_SIZE:
    18         return False
    19 
    20     for i in range(PHONE_NUMBER_SIZE):
    21         if not is_digital(chars[i]) and not is_special(chars[i]):   # 不是数字或者‘-’的退出
    22             return False
    23         if (i == 3 or i == 7) and not is_special(chars[i]):     # 第三位和第七位不是‘-’的退出
    24             return False
    25         if (i != 3 and i != 7) and not is_digital(chars[i]):    # 排除第三和第七,如果不是数字退出
    26             return False
    27     return True
    28 
    29 def split_phone_number(message):    #  筛选出号码,进行判断
    30     for n in range(len(message)):
    31         chars = message[n:n + PHONE_NUMBER_SIZE]
    32         if is_phone_number_check(chars):
    33             print('找到电话号码为:' + chars)
    34     print('Done.')
    35 
    36 if __name__ == '__main__':
    37     message = 'Call me at 415-555-1011 tomorrow. 415-555-9999  is my office.'
    38     split_phone_number(message)

    # 最好是用户什么都不需要做,只要把参数传进去就好了;函数本来就有隐藏实现的作用:main 函数里只要把 message 传进去就可以知道结果
  • 测试结果
  •  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python爬虫scrapy框架——人工识.. 下一篇python爬虫scrapy框架——人工识..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目