目前,我正在执行一项任务,但目前我被困住了,下面是我编写的代码:
string = input('please enter a string: ')
s = []
def sentenceCapitalize(string):
strn = string.split('. ') #convert to a list
for x in strn:
y = x[0].upper()
y += x[1:].lower()
s.append(y)
print('.'.join(s))
sentenceCapitalize(string) 它只得到结果作为一个列表和句号消失。
意外产出:

预期产出:
你好。我叫乔。您的名字是什么?
书中的问题是:
编写一个带有函数的程序,该函数接受字符串作为参数,并返回字符串的副本,其中每个句子的第一个字符都是大写的。例如,如果参数是“hello”。我叫乔。你叫什么名字?“函数应该返回字符串“Hello”。我叫乔。你叫什么名字?“程序应该让用户输入一个字符串,然后将它传递给函数。应该显示修改过的字符串。
你能解决这个问题吗?谢谢。
发布于 2020-12-28 07:49:25
代码中的三个主要错误是:
split的基础是。),但是当连接回join by ('.')时,您将丢失空白。,和.。在regex中,您传递由|分隔的两个选项,对于点的情况,您需要在'‘开始’之前添加。它本身就是正则表达式中的一个运算符。更多关于正则表达式的信息试试这个:
string = input('please enter a string: ')
s = []
import re
def sentenceCapitalize(string):
strn = re.split(',|\.', string) #convert to a list
for x in strn:
y = x[0].upper()
y += x[1:]
s.append(y)
print('.'.join(s))
sentenceCapitalize(string) 发布于 2020-12-28 07:45:46
一句话解决方案:
print('. '.join([st[0].upper() + st[1:] for st in string.split('. ')]))https://stackoverflow.com/questions/65474201
复制相似问题