Python实用小技巧之判断输入是否为汉字/英文/数字
1. 判断输入是否为汉字
定义函数is_chinese
,输入为字符串,该函数通过遍历字符串中的每个字符:
- 如果字符的Unicode编码不在汉字的范围内,说明输入不全是汉字,函数返回False
- 如果遍历完所有字符都在汉字的范围内,说明输入全是汉字,函数返回True
def is_chinese(input_string): for char in input_string: if not ('\u4e00' <= char <= '\u9fff'): return False return True
e.g.
input1 = "中国"input2 = "Hello, 世界"input3 = "1234"print(is_chinese(input1)) # Trueprint(is_chinese(input2)) # Falseprint(is_chinese(input3)) # False
输出
True
False
False
2. 判读是否为英文
方法一:
定义函数is_english
,输入为字符串,该函数通过遍历字符串中的每个字符:
- 如果字符不在英文的范围内,说明输入不全是英文,函数返回False
- 如果遍历完所有字符都在英文的范围内,说明输入全是英文,函数返回True
def is_english(word): for char in word: if not ('a' <= char <= 'z' or 'A' <= char <= 'Z'): return False return True
e.g.
input1 = "中国" input2 = "HelloWord" input3 = "1234" print(is_english(input1)) # False print(is_english(input2)) # True print(is_english(input3)) # False
输出
False
True
False
方法二:
定义函数is_english_regex
,输入为字符串,该函数通过使用正则表达式进行判断:
- 如果字符不全是英文,函数返回False
- 如果字符全是英文,函数返回True
import re def is_english_regex(word): pattern = re.compile(r'^[a-zA-Z]+$') return bool(pattern.match(word))
3. 判断是否为数字
(1)判断输入字符串是否为数字
定义函数is_number
,输入为字符串,通过尝试将其转换为浮点数:
- 如果转换成功,说明输入是数字,函数返回True。
- 如果转换失败,说明输入不是数字,函数返回False。
def is_number(input_string): try: float(input_string) return True except ValueError: return False
e.g.
input1 = "123" input2 = "3.14" input3 = "hello" print(is_number(input1)) # True print(is_number(input2)) # True print(is_number(input3)) # False
输出
True
True
False
(2)判断输入字符串的每个字符是否都为数字
定义函数is_number
,输入为字符串,通过直接调用isdigit
方法,对其进行判断:
- 如果每个字符都是数字,函数返回True。
- 如果存在不是数字的字符,函数返回False。
def is_number(input_string): if input_string.isdigit(): return True return False
e.g.
input1 = "123" input2 = "3.14" input3 = "hello" print(is_number(input1)) # True print(is_number(input2)) # True print(is_number(input3)) # False
输出
True
False
False
总结
到此这篇关于Python实用小技巧之判断输入是否为汉字/英文/数字的文章就介绍到这了,更多相关Python判断输入为汉字/英文/数字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
这篇文章主要介绍了python环境搭建和pycharm的安装配置及汉化(零基础小白版),需要的朋友可以参考下2020-08-08
最新评论