def capital(message):
if message[0] >= 'a' or message[0] <= 'z':
return message[0].upper
for i in message:
if message[i - 1] in [".", "!", "?"] and message[i] != "":
return message[i].upper
elif message[i] == "i" and (message[i - 1] == " " or message[i + 1] in [" ", ".", "!", "?", "/"]):
return message[i].upper
return message
def main():
print(capital("you love you,i love you!mixuebingcheng tian/mimi"))
main()
结果:
<built-in method upper of str object at 0x7f96e6bafc70>
Process finished with exit code 0
目的是要把字符串里符合条件的字母大写,但是为什么这段代码运行出来是这个结果?
你好,请问你是要实现这个效果吗
def capital(message):
new_message = ''
for i in range(len(message)):
if message[i] in ['y', 'i']:
new_message += message[i].upper()
else:
new_message += message[i]
return new_message
def main():
print(capital("you love me,i love you!mixuebingcheng tian/mimi", ))
main()
# You love me,I love You!mIxuebIngcheng tIan/mImI
你return的是message[0].upper,upper是一个函数,所以打印的是这个函数的字符串显示,函数调用必须加括号
但你的算法好像也有问题,怎么能直接return呢