经常会有要求用户输入整数的计算需求,但用户未必一定输入整数。为了提高用户体验,编写getlnput()函数处理这样的情况。请补充如下代码,如果用户输入整数,则直接输出整数并退出,如果用户输入的不是整数,则要求用户重新输入,直至用户输入整数为止。 def g

admin2019-08-30  41

问题 经常会有要求用户输入整数的计算需求,但用户未必一定输入整数。为了提高用户体验,编写getlnput()函数处理这样的情况。请补充如下代码,如果用户输入整数,则直接输出整数并退出,如果用户输入的不是整数,则要求用户重新输入,直至用户输入整数为止。
def getlnput():
   #可以是多行代码
return   #只能是单行代码
print(getInput())

选项

答案def getInput(): try: txt=input(’’请输入整数:’’) while eval(txt)!=int(txt): txt=input(’’请输入整数:’’) except: return getInput() return eval(txt) print(getInput())

解析 这是一个简单应用题,用来确保从用户处获得整数输入。
    对用户输入合规性判断需要使用异常处理,采用保留字try—except,基本流程是:在try部分获得用户输入,并判断用户输入是否为整数,如果不是,循环获取用户输入,如果出现异常,再次调用本函数。
    由于input()函数返回字符串类型,在判断字符串是否为整数时,需要使用eval()函数。鉴于输入可能为任意字符,调用eval()函数可能产生异常。例如,用户输入abc,input()函数返回’’abc’’,经过eval()函数返回abc,则可能报错,需要异常处理。
    判断一个字符串txt是否为整数样式字符串,可以采用eval(txt)==int(txt)来实现,采用eval()函数去掉其两侧字符,与通过int()函数转换的结果相比,只有txt为整数值字符串时,结果才能一致。
综上,该问题参考代码如下:
def getlnput():
try:
txt=input(’’请输入整数:’’)
while eval(txt)!=int(txt):
txt=input(’’请输入整数:’’)
except:
return getInput()
return eval(txt)
print(getInput())
转载请注明原文地址:https://kaotiyun.com/show/JX6p777K
0

最新回复(0)