Python 3.x 用chr和ord大写每个单词
首先,我必须从用户那里接收一个字符串。函数将使引入的字符串对象大写。它将使单词以大写字母开头,其余所有字符都以小写字母开头。以下是我所做的:Python 3.x 用chr和ord大写每个单词,python-3.x,letter,capitalize,chr,ord,Python 3.x,Letter,Capitalize,Chr,Ord,首先,我必须从用户那里接收一个字符串。函数将使引入的字符串对象大写。它将使单词以大写字母开头,其余所有字符都以小写字母开头。以下是我所做的: 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:
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)
ssplit=s.split()
对于s.split()中的z:
如果作战需求文件(z[0])<65或作战需求文件(z[0])>90:
l=(chr(ord(z[0])-32))
新=l+ssplit[1:]
打印(新)
其他:
印刷品
我看不出我做错了什么。有很多python方法可以轻松解决这个问题。例如,
str.title()。如果要确保所有其他字符都是小写的,可以先执行str.lower()
,然后执行str.title()
s='你好吗'
s、 下()
s、 大写()
#s=‘你好’
有许多python方法可以轻松解决这一问题。例如,str.title()。如果要确保所有其他字符都是小写的,可以先执行str.lower()
,然后执行str.title()
s='你好吗'
s、 下()
s、 大写()
#s=‘你好’
使用@Pyer建议的str.title()
,这很好。如果您需要使用chr
和ord
您应该正确使用变量-请参阅代码中的注释:
按照@Pyer的建议使用str.title()。如果您需要使用chr
和ord
您应该正确使用变量-请参阅代码中的注释:
它通过打印内容来帮助检查变量状态:例如,print(ssplit)
将显示它是一个列表,而print(l)
将打印一个字符串。不能将字符串和列表连接起来。它可以通过打印内容来检查变量状态:例如,print(ssplit)
将显示它是一个列表,而print(l)
将打印一个字符串。你不能将字符串和列表连接起来。它完全解决了我的问题,非常感谢。但这是我无法理解的;尽管字母的大小写是混合的,例如,即使我们在运行程序时编写程序,我们也会得到“编程”。我的意思是,在哪一行我们把其他字母改小了?@Ch nowhere-它只会更正第一个字母,其余的字母“照原样”处理-如果你需要将所有其他字母的大小写降低,你也必须更正任何非小写字母-或者简单地做:ssplit=s.lower().split()
所以你只有小写字母开头,它完全解决了我的问题,非常感谢。但这是我无法理解的;尽管字母的大小写是混合的,例如,即使我们在运行程序时编写程序,我们也会得到“编程”。我的意思是,在哪一行我们把其他的字母变小了?@Ch nowhere-它只会纠正第一个字母,其余的字母“照原样”取-如果你需要将所有其他字母的大小写降低,你也必须纠正任何非小写的字母-或者简单地做:ssplit=s.lower().split()
所以你只有小写字母开始
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