Python中空白字符的定义方式及GUI空白输入的错误提示实现
问题1:Python中如何定义空白字符?
在Python里,空白字符指的是那些看不见但会占据空间的字符,常见的包括:
- 普通空格:直接用
' '表示 - 制表符:
'\t'(就是按Tab键产生的字符) - 换行符:
'\n'(回车换行) - 回车符:
'\r' - 换页符:
'\f' - 垂直制表符:
'\v'
另外,Python的string模块里有个现成的常量string.whitespace,它包含了所有标准的空白字符,你可以这样用:
import string print(string.whitespace) # 输出包含所有空白字符的字符串
如果要判断某个字符是不是空白字符,直接用字符串的isspace()方法就行,比如:
print(' '.isspace()) # 返回True print('a'.isspace()) # 返回False
问题2:处理用户未输入内容的错误提示
咱们先看你给的原代码问题:当用户直接回车或者输入空白时,raw_input()会返回空字符串'',这时候你直接用int('')会抛出ValueError异常,根本走不到后面的else分支,所以错误提示不会触发。
要解决这个问题,咱们得先捕获空白输入的情况,再处理非数字输入的异常,修改后的代码可以这样写:
user_input = raw_input("Enter ") # 先处理空白输入(包括只输入空格的情况) if not user_input.strip(): print "Error: 请输入有效的数值" else: try: h = int(user_input) if h >= 10: print True elif h < 10: print False except ValueError: # 处理输入不是整数的情况 print "Error: 输入不是有效的整数"
我给你拆解下逻辑:
- 先把用户输入存到
user_input里,不着急转成整数 - 用
user_input.strip()去掉输入前后的空白字符,如果处理后是空字符串,说明用户要么直接回车,要么只输入了空格,这时候直接触发错误提示 - 如果输入不是空白,就尝试把它转成整数,用
try-except捕获转换失败的情况(比如用户输入了字母、符号),这时候也触发错误提示 - 转换成功后,再按你的需求判断数值大小,输出True或False
这样不管是空白输入、全空格输入还是非数字输入,都能触发错误提示,正确的数字输入也能正常处理啦~
内容的提问来源于stack exchange,提问作者user9587850
相关产品推荐
相关产品推荐

