单词识别--课后程序(Python程序开发案例教程-黑马程序员编著-第5章-课后作业)

实例1:单词识别

周一到周日的英文依次为:Monday、Tuesday、Wednesday、Thusday、Friday、Saturday和Sunday,这些单词的首字母基本都不相同,在这7个单词的范围之内,通过第一或前两个字母即可判断对应的是哪个单词。

本实例要求编写程序,实现根据第一或前两个字母输出Monday、Tuesday、Wednesday、Thusday、Friday、Saturday和Sunday之中完整单词的功能。

实例目标

  1. 熟练地创建字典
  2. 熟练地通过键访问字典中的值

实例分析

本实例的完整单词包含7个,它们分别是Monday、Tuesday、Wednesday、Thusday、Friday、Saturday和Sunday。其中,Monday、Wednesday、Friday可根据用户输入的首字母判断, Tuesday和Thusday、Saturday和Sunday需根据用户连续输入两次字母才能进一步判断,具体规则如下:

(1)若用户第一次输入的字母为 “m”、“w”和“f”,则直接返回“Monday”、“ Wednesday”和“Friday”;

(2)若用户第一次输入“t”,需要再输入第2个字母进行判断,输入“h”返回“Thusday”,输入“u”返回“Tuesday”;

(3)若用户第一次输入“s”,需要再输入第2个字母进行判断,输入“a”返回“Saturday”,输入“u”返回“Sunday”;

(4)若用户第一次输入其它字母,则提示用户“请输入正确的字母”。

从以上分析可知,第一个或第二个字母可以作为获取完整单词的键,因此这里可以创建一个包含7个键值对的字典,其中,键“m”、“w”和“f”对应的值为“Monday”、“Wednesday”和“Friday”,则键“t”和“s”对应的值是字典{'h': 'thursday', 'u': 'tuesday'}和{'a': 'saturday', 'u': 'sunday'}。

代码实现

tues_or_thurs = {'h': 'Thursday', 'u': 'Tuesday'}

weekend = {'a': 'Saturday', 'u': 'Sunday'}

week = {'t': tues_or_thurs, 's': weekend,

         'm': 'Monday', 'w': 'Wednesday',

         'f': 'Friday'}

first_char = input('请输入第一位字母:').lower().strip()

if first_char in ['a', 't', 's', 'm', 'w', 'f']:

    if week[first_char] == tues_or_thurs or week[first_char] == weekend:

        second_char = input('请输入第二位字母:').lower().strip()

        if second_char in ['u', 'h', 'a']:

            print(week[first_char][second_char])

        else:

            print('请输入正确字母')

    else:

        print(week[first_char])

else:

    print('请输入正确的字母')

以上代码首先创建了3个字典tues_or_thurs、weekend和week,其中,字典week定义了首字母对应的单词或字典,然后接收了用户输入的第一位字母first_char,最后使用if-else语句处理了不同的情况:若用户输入的第一位字母first_char存在于['a', 't', 's', 'm', 'w', 'f']中,则需要做进一步的处理:

(1)将first_char作为键获取字典week中对应的值,若值不是一个字典,则直接返回其对应的值;若值是一个字典,则要求用户输入第2个字母second_char。

(2) 若用户输入的second_char存在于['u', 'h', 'a']中,则获取字典tues_or_thurs或weekend中对应的值,否则提示用户“请输入正确的字母”。

代码测试

运行程序,在控制台输入“f”之后的结果如下所示:

请输入第一位字母:f

friday

运行程序,在控制台输入“t”、“h”之后的结果如下所示:

请输入第一位字母:t

请输入第二位字母:h

thursday

运行程序,在控制台输入“j”(输入不是星期的首字母)之后的结果如下所示:

请输入第一位字母:j

请输入正确的字母

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaozhima-dun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值