python字符类型判断以及转换

1. 判断字符类型

s为一个字符串:
s.isalnum() 判断字符串否是数字字母
s.isalpha() 判断字符串是否为纯字母
s.isdigit() 判断字符串是否为纯数字
s.islower() 判断字符串中字母是否为纯小写字母(字符串中可以包含数字,返回为True)
s.isupper() 判断字符串中字母是否为纯大写字母(字符串中可以包含数字,返回为True)
s.isspace() 判断字符是否为空格,其中换行符(\n)、回车符(\r)、换页符(\f)均返回True
s.istitle() 判断字符串为纯字母,第一个字母是否为大写字母

s = "Life is short. I use python"
s_new = ''
count_upper = 0
count_lower = 0
count_digit = 0
count_space = 0
count_other = 0
print('原始数据:%s\n'%s)
for x in s:
	if(x.isupper()):
		count_upper += 1
	elif(x.islower()):
		x=x.upper()
		count_lower += 1
	elif(x.isdigit()):
		count_digit = count_digit + 1
	elif(x.isspace()):
		count_space = count_space + 1
	else:
		count_other = count_other + 1
	s_new = s_new + str(x)
#	print(x,end ="")
print("大写字母:{}个\n小写字母:{}\n数字个数:{}\n空格个数:{}\n其他个数:{}".format(count_upper,count_lower,count_digit,count_space,count_other))
print('\n大写数据:%s'%s_new)

print("\n## 判断首字符")
## 判断首字符
print('Abc'.istitle())## 是否是大写
print('abc'.istitle())
print('Abc'.isalpha())## 是否是字母
print('_bc'.isalpha())
## 判断字符串
print('##判断字符串')
print('mmdd22'.isalnum()) ## 是否是数字 或 字母
print('mm222222'.isdigit()) ## 是否是纯数字

在这里插入图片描述

2. 字符串转化

string = "you are a good man"

print(string.upper())          # 把所有字符中的小写字母转换成大写字母
print(string.lower())          # 把所有字符中的大写字母转换成小写字母
print(string.capitalize())     # 把第一个字母转化为大写字母,其余小写
print(string.title())          # 把每个单词的第一个字母转化为大写,其余小写

在这里插入图片描述

Python 中,可以很方便地对字符串中的字符进行判断是否为数字。常用的有以下几个方法: ### 方法一:使用 `str.isdigit()` 方法 `isdigit()` 是字符串的一个内置方法,用于检测字符串是否只由数字组成(注意,这里的“数字”仅指阿拉伯数字)。如果字符串全是数字并且非空,则返回 True;否则返回 False。 #### 示例代码: ```python s1 = "123" s2 = "abc123" s3 = "123.456" # 包含小数点 s4 = "-123" print(s1.isdigit()) # 输出: True print(s2.isdigit()) # 输出: False print(s3.isdigit()) # 输出: False print(s4.isdigit()) # 输出: False ``` --- ### 方法二:使用正则表达式 (`re` 模块) 对于更为复杂的场景(如允许负号或小数点),我们可以借助正则表达式的强大功能来匹配符合条件的模式。 #### 示例代码: ```python import re def is_number_regex(string): pattern = r'^[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?$' return bool(re.match(pattern, string)) # 测试用例 strings = ["123", "-123", "+123", "123.456", ".456", "1e-10", "abc"] for s in strings: print(f"'{s}' 是否为数字: {is_number_regex(s)}") ``` 上述例子涵盖了带符号、浮点数以及科学计数法的情况。 --- ### 方法三:尝试转换为数值类型 通过将字符串强制转化为数值类型(例如 float 或 int 类型)也是一种可行的办法。若能成功转化而不抛出异常,说明该串确实代表了一个有效的数。 #### 示例代码: ```python def is_number_try_except(s): try: float(s) # Try to convert it into a floating-point number. return True except ValueError: return False # 测试用例 test_strings = ['1', 'a', '-1.23', '+infinity'] results = [is_number_try_except(x) for x in test_strings] print(results) # 结果应该是 [True, False, True, False] ``` 这种方法简单直接,在很多实际应用场合下足够用了。不过需要注意的是,“NaN” 和 “Infinity” 这样的特殊值可能会被视为合法数字。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值