首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >想知道如何为语句大写编写python代码

问想知道如何为语句大写编写python代码
EN

Stack Overflow用户
提问于 2020-12-28 07:24:28
回答 2查看 430关注 0票数 0

目前,我正在执行一项任务,但目前我被困住了,下面是我编写的代码:

代码语言:javascript
复制
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”。我叫乔。你叫什么名字?“程序应该让用户输入一个字符串,然后将它传递给函数。应该显示修改过的字符串。

你能解决这个问题吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-28 07:49:25

代码中的三个主要错误是:

  • 你把句子的其余部分转换成小写,例如乔就变成了乔。
  • 你split的基础是。),但是当连接回join by ('.')时,您将丢失空白。
  • 您需要一个regex拆分,以同时考虑,和.。在regex中,您传递由|分隔的两个选项,对于点的情况,您需要在'‘开始’之前添加。它本身就是正则表达式中的一个运算符。更多关于正则表达式的信息

试试这个:

代码语言:javascript
复制
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)  
票数 0
EN

Stack Overflow用户

发布于 2020-12-28 07:45:46

一句话解决方案:

代码语言:javascript
复制
print('. '.join([st[0].upper() + st[1:] for st in string.split('. ')]))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65474201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档