【问题标题】:Program that takes a string with multiple words and capitalizes the first letter of each word (Python 3.x)接受一个包含多个单词的字符串并将每个单词的首字母大写的程序(Python 3.x)
【发布时间】:2019-10-15 06:51:07
【问题描述】:

我尝试制作一个程序,该程序接受一个包含多个单词的字符串并将每个单词的首字母大写。


我最终得到了以下程序:

string = input('Enter line:')
length = len(string)
string2 = ''
for i in range(0, length):
    if i == 0:
        string2 += string[0].upper()
        continue
    elif string[i] == ' ':
        string2 += string[i]
        string2 += string[i+1].upper()
        continue
    elif string[i] != ' ':
        if string2[i].upper() is True:  # I feel like there is something wrong with this line
            continue
        else:
            string2 += string[i]
print(string2)

输出:

Enter line:hey my
Hey Mmy

我的程序有什么问题?您能指出错误以便我尝试修复它吗?

【问题讨论】:

    标签: python-3.x string


    【解决方案1】:

    点击空格并处理断字后,您需要跳过接下来的 2 个字符。使用 while 循环更简单。

    while i < len(string):
        if i == 0:
            string2 += string[0].upper()
            i += 1
            continue
        elif string[i] == ' ':
            string2 += string[i]
            string2 += string[i+1].upper()
            i += 2
            continue
        elif string[i] != ' ':
            string2 += string[i]
            i += 1
    print(string2)
    

    但是,有一种更短、更 Python 的方式来实现相同的结果:

    string = 'hey my'
    
    retval = ' '.join(x.title() for x in string.split())
    
    print(retval)
    

    【讨论】:

      【解决方案2】:

      试试这 3 行。

      string = input('Enter line:')
      strings = map(lambda x: x.capitalize(), string.split())
      print(' '.join(strings))
      

      【讨论】:

        【解决方案3】:
        str=input("enter sentence:")
        x=""
        y=str.split()
        for i in y:
            x+=i.capitalize()+ " "
        print("resultant string:",x)
        

        【讨论】:

        • 请对您的代码进行一些解释
        【解决方案4】:

        请参阅.. 在该行中将其更改为 string[i] instread of string2[i]

        【讨论】:

          猜你喜欢
          • 2021-09-07
          • 1970-01-01
          • 2015-11-10
          • 2011-09-15
          • 2020-08-30
          • 2014-06-19
          • 1970-01-01
          相关资源
          最近更新 更多