Python入门 规范英文名字的小函数中的问题?

0
代码1
def transfer(name):
rena= []
for n in name :
n = n.lower()
rena.append(n)
rena[0] = rena[0].upper()
newname = name[0].upper() + name[1:].lower()
return newname
分割线--------
代码2
def transfer(name):
rena= []
for n in name :
n = n.lower()
rena.append(n)
rena[0] = rena[0].upper()
newname = rena[0]+ rena[1:]
#TypeError: cannot concatenate 'str' and 'list' objects
return newname

函数的本意是将输入的英文名字进行规范化处理,进行首字母大写,其他字母小写处理。在代码一中我发现 输入的name 变量可以直接进行 name 循环,切片和进行name[0]取值操作并且可以进行name[0]+name[1:] 的操作。 在代码2中,我先将name的各个字母拆出来放到数组rena[] 中,但进行 rena[0]+rena[1:]操作时报错,报错内容 #TypeError: cannot concatenate 'str' and 'list' objects。我想不太明白是什么原因 name[0]+name[1:] 可以操作,rena[] 不可以。还有在python中 不是list 也可以进行切片和 进行循环吗?
已邀请:
0

ID王大伟 - 人生苦短,我选Python。 2017-08-10 回答

建议提问的代码格式  不要顶格。。

要回复问题请先登录注册