【Python 实例】面向对象 | 请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一个字母一样则继续判断第二个字母

题目:

请输入一周中某天的名称的第一个字母来判断以下是星期几,如果第一个字母一样则继续判断第二个字母

解答:

 """
请输入一周中某天的名称的第一个字母来判断以下是星期几,
如果第一个字母一样则继续判断第二个字母
"""
class Date:
def __init__(self,zi_mu):
self.zi_mu = zi_mu # 初始化属性 zi_mu
self.di_yi = ["M","T","W","T","F","S","S"] # 第一个字母
self.di_er = ["o","u","e","h","r","a","u"] # 第二个字母
self.quan = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
"""三个列表组成矩阵,根据下标定位需查询的元素""" def cha_xun_1(self): # 第一次查询
ji_suan_xia_biao = 0 # 可忽略
da_xie = self.zi_mu.upper() # 将输入的字符串中的小写字母转换为大写字母
ci_shu = self.di_yi.count(da_xie) # 统计该字符串在列表 self.di_yi 出现的次数
if ci_shu == 1: # 根据出现的次数判断是否进行二次查询,元素出现次数等于一,停止查询
xia_biao = self.di_yi.index(da_xie) # 获取元素的下标(索引值)
print("查询结果:",self.quan[xia_biao]) # 根据下标定位需查询的元素
elif ci_shu > 1: # 根据出现的次数判断是否进行二次查询,元素出现次数大于一,进行第二次查询
print("满足查询条件的有 %d 个:" % (ci_shu))
for x in self.di_yi: # 可忽略
ji_suan_xia_biao += 1 # 可忽略
if da_xie == x: # 可忽略
print(self.quan[ji_suan_xia_biao-1]) # 可忽略
print("进行第二次查询")
self.cha_xun_2() # 调用方法 cha_xun_2()
else:
print("无法判断") def cha_xun_2(self): # 第二次查询
self.zi_mu = input("请输入第二个字母:") # 补充查询条件
xia_biao = self.di_er.index(self.zi_mu) # 获取元素的下标(索引值)
print("查询结果:",self.quan[xia_biao]) # 根据下标定位需查询的元素 shu_ru = input("请输入第一个字母:")
day=Date(shu_ru) # 实例化类
day.cha_xun_1() # 调用类方法

运行结果:

D:***\python3.exe D:***/10-8-课后练习-日期字母判断.py
请输入第一个字母:t
满足查询条件的有 2 个:
Tuesday
Thursday
进行第二次查询
请输入第二个字母:h
查询结果: Thursday 进程完成,退出码 0
D:***\python3.exe D:***/10-8-课后练习-日期字母判断.py
请输入第一个字母:f
查询结果: Friday 进程完成,退出码 0

  

05-11 21:48