为了账号安全,请及时绑定邮箱和手机立即绑定

输入输入后如何重复输入?

输入输入后如何重复输入?

慕慕森 2021-03-23 17:14:19
我编写了一个函数,其中包含一个缩写的星期几到该天的全名的字典。当我输入缩写时,我得到了正确的输出日,但是为了尝试另一个缩写,我必须重新输入该函数。我有:def weekday()    day = input('Enter day abbreviation ' )    days = {'Mo':'Monday','Tu':'Tuesday',            'we':'Wednesday', 'Th':'Thursday',            'Fr':'Friday', 'Sa':'Saturday','Su':Sunday'}    while day in days:        print(days.get(day))我的问题是,它一遍又一遍地打印全日名称,而我希望它打印全日名称,然后再次打印“输入日缩写”。它看起来应该像这样:>>>weekday():Enter day abbreviation: TuTuesdayEnter day abbreviation: SuSundayEnter day abbreviation:...相反,我得到:>>>weekday():Enter day abbreviation: TuTuesdayTuesdayTuesdayTuesdayTuesday... # it continues without stopping我知道这是一个非常简单的解决方案,但我无法弄清楚。
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

您永远不会重读“ day”,因此“ day of day”始终是正确的,并且会无休止地执行。


def weekday()

    day = input('Enter day abbreviation ' )

    days = {'Mo':'Monday','Tu':'Tuesday',

            'we':'Wednesday', 'Th':'Thursday',

            'Fr':'Friday', 'Sa':'Saturday','Su':'Sunday'}

    while day in days:

        print(days.get(day))

        day = input('Enter day abbreviation ' )


查看完整回答
反对 回复 2021-03-31
?
绝地无双

TA贡献1946条经验 获得超4个赞

days = {'Mo':'Monday','Tu':'Tuesday',

        'we':'Wednesday', 'Th':'Thursday',

        'Fr':'Friday', 'Sa':'Saturday','Su':'Sunday'}

while True:

    day = input('Enter day abbreviation ' )

    if day in days:

        print (days[day])

    else:

        break

输出:


$ python3 so.py

Enter day abbreviation Mo

Monday

Enter day abbreviation Tu

Tuesday

Enter day abbreviation we

Wednesday

Enter day abbreviation foo

另一种使用方式dict.get:


days = {'Mo':'Monday','Tu':'Tuesday',

        'we':'Wednesday', 'Th':'Thursday',

        'Fr':'Friday', 'Sa':'Saturday','Su':'Sunday'}

obj = object()                             #returns a unique object

day = input('Enter day abbreviation ' )

while days.get(day,obj) != obj:

    print (days[day])

    day = input('Enter day abbreviation ' )


查看完整回答
反对 回复 2021-03-31
?
青春有我

TA贡献1784条经验 获得超8个赞

您想在每次迭代中再次获取输入:


while True:

        day = input('Enter day abbreviation ' )

        acquired_day = days.get(day)

        if acquired_day is None: break

        print(acquired_day)


查看完整回答
反对 回复 2021-03-31
  • 3 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信