1.字符串的编码
问题一:能不能像C语言那样用 ch = ch +32 来把大写的字符编程小写的?
可以的,如下所示:
s = chr(ord(s) - 32)
先用ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符
python使用UTF-8编码模式。不过可能是因为在python中字符不用int类型,不像C语言那样,所以大小写转化时不能直接相加减,而是要用ord()和chr()两个函数转化一下。
2.字符串和list的转化
字符串是不是一个list,能不能像操作list一样操作它?
字符串可以当成是一个list,不过在这之前要做一下简单的变换,比如
str = 'hello'
str[0] = 'A'
print(str[0])
报错,信息为
TypeError: 'str' object does not support item assignment
因此更改代码:
str = 'sdfsfsfsf'
str = list(str)
str[0] = 'A'
print(str[0])
把str转化成一个list,这个时候就再报错了。
看下图:
['A', 'd', 'a', 'm'] 是 字符串'Adam'的list形式,'LISA'是正常的str形式。
list如何转化成str?
str = ''.join(str)
结果变成
发现了吧,和刚刚不一样吧。
其实就是一个空字符串用join函数加上了一个list类型的对象。
如果是
str = '*****'.join(str)
结果为
最后
写这篇文章的原因是今天再看廖雪峰python的map/reduce教程,其中一道作业就是:
利用map()
函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT']
,输出:['Adam', 'Lisa', 'Bart']
:
完整代码如下:
def lowercase2uppercase(str):
if str[0]>='a' and str[0]<='z':
str = list(str)
str[0] = chr(ord(str[0]) - 32)
str = ''.join(str)
print('str' + str[0])
pass
return str
L1 = ['adam', 'LISA', 'barT']
result = list(map(lowercase2uppercase,L1))
print(result)