python模拟自动填充(一)

作者:封亚飞 qq:64761294 题目来源于网络,代码自己写的

如果您有更好的方法,期待与您交流。

题目:
我们的需求:输入首字母,输出对应的周几

  • 例如

  • input:M or m

  • output:Monday

问题分析:

  • 1.首先列出以下:

     Monday
     Tuesday
     Wednesday
     Thursday
     Friday
     Saturday
     Sunday
    
  • 2.这样由一个特定输入 输出 特定结果的问题是典型的映射问题,需要用到dict类型,建立一个dict,输入作为key,输出作为value。

     ---首先对输入做字典的key存在性判断,用到字典的 .has_key()方法和分支结构
     ---若存在,则输出对应的value
     ---若不存在,执行重新输入
    
  • 3.对于首字母重复问题的解决办法

     将字典创建为嵌套结构
    

    d={'M':'Monday','T':{'u':'Tuesday','h':'Thursday'},'W':'Wednesday','F':'Friday','S':{'a':'Saturday','u':'Sunday'}}
    然后执行二次输入,用户输入第二位字母再次访问value

  • 4.程序流程图

    python模拟自动填充(一)_第1张图片

代码实现

  • — tyr except异常处理结构实现流程图中的第一次判断

  • —if elif分支结构实现流程图中的第二次判断

  • — s为首次输入

  • — r为二次输入

d={'M':'Monday','T':{'u':'Tuesday','h':'Thursday'},
   'W':'Wednesday','F':'Friday','S':{'a':'Saturday','u':'Sunday'}}
s=input("请输入首字母").upper()
while s:
    try:
        if type(d[s]) == str:
            print(d[s])
            break
        elif type(d[s]) == dict:
            r=input("请输入第二位字母").lower()
            print(d[s][r])
            break
    except:
        print("{:!^30}".format("您的输入有误"))
        s=input("请输入首字母").upper()

你可能感兴趣的:(python常见问题,NCRE-python)