Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 用chr和ord大写每个单词_Python 3.x_Letter_Capitalize_Chr_Ord - Fatal编程技术网

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