Python 3.x输入转小写并拆分报错TypeError,求原因与解决方法
解决输入内容转小写并拆分单词的代码错误
嘿,咱们先捋清楚你代码里的问题,就能明白为啥会报这个错啦:
错误原因拆解
- 调用
input的方式错了:input是Python的内置函数,必须加括号input()才能获取用户输入的字符串,你写的input.split()是在操作函数本身,不是实际的输入内容哦。 join方法的调用搞反了:join是字符串实例的方法,不是str类的方法!比如要把列表拼成字符串,得用一个分隔符(比如空格' ')来调用join,写法是' '.join(列表),而不是反过来把列表传给str.join()。你现在把列表传进去,Python自然会吐槽“我要的是str对象,你给我个list干啥😅”。lower()方法用错了对象:lower()只能处理单个字符串,你直接给str.lower()传一个列表,它肯定处理不了呀。咱们得先拿到字符串,再做小写转换。
正确的实现方案
这里给你两种常用写法,按需选择就行:
方案一:先转小写,再拆分(推荐,更高效)
先把整个输入字符串转成小写,再拆分成单词列表,一步到位:
# 获取输入→转小写→拆分成单词 command_split = input().lower().split() print(command_split)
比如你输入Hi THERE How ARE You,输出就是['hi', 'there', 'how', 'are', 'you']。
方案二:拆分后逐个转小写(适合需要单独处理单词的场景)
如果需要对每个拆分后的单词做额外操作,再统一转小写,可以用列表推导式:
# 先拆分输入,再逐个转小写 command_split = input().split() command_split_lower = [word.lower() for word in command_split] print(command_split_lower)
内容的提问来源于stack exchange,提问作者anotherbeaver
相关产品推荐
相关产品推荐

