0

首先,我必须从用户那里收到一个字符串。该函数将大写引入的字符串对象。它会使单词以大写字符开头,所有剩余的字符都小写。这是我所做的:

ssplit = s.split()
for z in s.split():
    if ord(z[0]) < 65 or ord(z[0])>90:
        l=(chr(ord(z[0])-32))
        new = l + ssplit[1:]
        print(new)
    else:
        print(s)

我看不出我做错了什么。

4

2 回答 2

1

有许多 python 方法可以为您轻松解决这个问题。例如,str.title()将大写给定字符串中每个单词的开头。如果你想确保所有其他都是小写,你可以先做str.lower(),然后str.title().

s = 'helLO how ARE YoU'
s.lower()
s.capitalize()
# s = 'Hello How Are You'
于 2019-12-07T21:18:35.933 回答
1

str.title()按照@Pyer 的建议使用很好。如果您需要使用chr并且ord应该正确设置变量 - 请参阅代码中的注释

s = "this is a demo text"
ssplit = s.split()

# I dislike magic numbers, simply get them here:
small_a = ord("a") # 97
small_z = ord("z")

cap_a = ord("A")   # 65

delta = small_a - cap_a

for z in ssplit :  # use ssplit here - you created it explicitly
    if small_a <= ord(z[0]) <= small_z:
        l = chr(ord(z[0])-delta)
        new = l + z[1:]            # need z here - not ssplit[1:]
        print(new) 
    else:
        print(s)

输出:

This
Is
A
Demo
Text
于 2019-12-07T21:20:37.820 回答