#判断,如果str_num里包含非数值的东西,提示重新输入 #方法一 # while True: # try: # str_num = input('input a number:') # num=float(str_num) # print(num) # break #若输入的正确,则退出,错误执行except下面代码 # except: # print('您输入的内容不规范,请重新输入:') #方法二 while True: str_num = input('input a number:') flag=True #假设输入数据没问题 dotCount=0 # str_num_copy=str_num[1:]#这样去掉第一个元素,这个元素可以用'-'替代,就可以输出负数, #但是对于负数来说,'-'只能有一个,所以还是有确定 if str_num[0]=='-': #if str_num.startswith('-'): str_num_copy=str_num[1:] else: str_num_copy=str_num for ch in str_num_copy: if ch>='0' and ch<='9': continue elif ch=='.':#确保一个小数点 dotCount+=1 if dotCount>1: flag=False print('您输入的内容不规范,请重新输入:') break continue else: flag=False print('您输入的内容不规范,请重新输入:') break #若没有这个break,且输入的东西有很多次不符合前两个if判断,则会输出很多次print('您输入的内容不规范,请重新输入:') if flag==True: print(float(str_num)) break