修改字符串的值
string是一种不可变的数据类型,尝试修改string的值,python会报错:
“TypeError: ‘str’ object does not support item assignment”
把字符串的某一位大小写变换
Python为string对象提供了转换大小写的方法:upper() 和 lower()。还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及所有单词首字母大写,其余小写的title()方法。
#!/usr/bin/python
# coding=utf-8
st = 'hEllO pyTHon'
print (st.upper())
print (st.lower())
print (st.title())
print (st.capitalize())
输出结果:
HELLO PYTHON
hello python
Hello Python
Hello python
但是要把字符串的某一位进行大小写变换,要注意string本身是不可变数据类型
如:实现首字母大写,其他小写
输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’, ‘Bart’]
# -*- coding:utf-8 -*-
def normalize(name):
name.lower()
name[0] = name[0].upper()
return name
L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
'''
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回'''
print(L2)
上面代码会报错:TypeError: ‘str’ object does not support item assignment
修改:
# -*- coding:utf-8 -*-
def normalize(name):
name.lower()
newname = name[0].upper()+ name[1:]
#string本身是不可改变的对象,但是生成了一个新的对象
return newname
L1 = ['adam', 'LISA', 'barT']
L2 = list(map(normalize, L1))
'''
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回'''
print(L2)
把字符串中某些特定的字符大小写变换
如:大写语句中每个元音字母
- 使用列表作为临时变量,然后使用join()把列表转字符串
# /usr/bin/python
# -*- coding:utf-8 -*-
L1 = ['a','e','i','o','u']
L2 = 'hello world'
L = []
for i in L2 :
if i in L1:
i = i.upper()
L.append(i)
else:
L.append(i)
L = ''.join(L) #列表转字符串
print(L)
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
- 或者直接使用字符串作为中间变量
owel = ['a','e','i','o','u']
s = 'hello world'
s2 = ''
for i in s:
if i in owel:
s2 = s2 + i.capitalize()
else:
s2 = s2 +i
print(s2)