首页 > 解决方案 > Python - 为未指定的输入创建通用函数

问题描述

如果用户键入除 1-5 以外的任何内容,我希望能够让该程序打印出类似“对不起,我无法识别该输入”的答案。

import time
rating=input()
if rating == '1':
    time.sleep(.5)
    print('Well, you mustve just had a bad day.')
if rating =='2':
    time.sleep(.5)
    print('Second to last means I wasnt even the best at losing...')
if rating =='3':
    time.sleep(.5)
    print('Atleast thats almost passing.')
if rating =='4':
    time.sleep(.5)
    print('Im offended.')
if rating =='5':
    time.sleep(.5)
    print('Well yeah, obviously.')

标签: python

解决方案


使用if,如果输入是除 1, 2, 3, 4, 5 以外的任何值,elif代码中的 将打印您想要显示的消息。下面的代码也将阻止检查所有其他数字,因为. 在您的代码中,您正在检查 5 个 if 语句中的所有数字。elseelseelif

import time
rating=input()
if rating == '1':
    time.sleep(.5)
    print('Well, you mustve just had a bad day.')
elif rating =='2':
    time.sleep(.5)
    print('Second to last means I wasnt even the best at losing...')
elif rating =='3':
    time.sleep(.5)
    print('Atleast thats almost passing.')
elif rating =='4':
    time.sleep(.5)
    print('Im offended.')
elif rating =='5':
    time.sleep(.5)
    print('Well yeah, obviously.')
else:
    print ('Sorry I dont recognize that input')

再次询问用户,直到输入正确的数字(根据您在下面的评论)

while rating:
    if rating == '1':
        time.sleep(.5)
        print('Well, you mustve just had a bad day.')
        break
    elif rating =='2':
        time.sleep(.5)
        print('Second to last means I wasnt even the best at losing...')
        break
    elif rating =='3':
        time.sleep(.5)
        print('Atleast thats almost passing.')
        break
    elif rating =='4':
        time.sleep(.5)
        print('Im offended.')
        break
    elif rating =='5':
        time.sleep(.5)
        print('Well yeah, obviously.')
        break
    else:
        print ('Sorry I dont recognize that input. Enter the rating again.')
        rating=input()
        continue

输出(第二种情况)

6
Sorry I dont recognize that input. Enter the rating again.
6
Sorry I dont recognize that input. Enter the rating again.
5
Well yeah, obviously.

推荐阅读