Python 3.x 尝试转换每个x';将第th个字符转换为大写
所以基本上我的家庭作业包括制作一个程序,要求输入一个字符串和一个整数“x”。“x”基本上是这个程序的步骤。首先,它将整个字符串转换为小写,然后字符串的每个“x”字符必须转换为大写。所以如果我输入“Hello World”,我的整数是1。输出为“hElLo wOrLd”。顺便说一下,我是python新手 这就是我现在得到的,我基本上陷入了尝试100件事情的循环中:Python 3.x 尝试转换每个x';将第th个字符转换为大写,python-3.x,Python 3.x,所以基本上我的家庭作业包括制作一个程序,要求输入一个字符串和一个整数“x”。“x”基本上是这个程序的步骤。首先,它将整个字符串转换为小写,然后字符串的每个“x”字符必须转换为大写。所以如果我输入“Hello World”,我的整数是1。输出为“hElLo wOrLd”。顺便说一下,我是python新手 这就是我现在得到的,我基本上陷入了尝试100件事情的循环中: s = input('Input a string: ') g = input('Input an integer: ') s = s
s = input('Input a string: ')
g = input('Input an integer: ')
s = s.lower() #converts the whole string ofc
s = list(s)
range1 = s[::g]
range1 = range1.upper()
print(s)
首先,将
g
转换为int
,因为input
返回str
,不能用str
对列表进行切片,而且,s[::g]
(应该是s[g::g+1]
)是s
的独立子列表,并且它没有对s
的引用,因此,将其分配到range1
并对其进行修改不会修改s
,还有一点需要注意的是,s[::g]
是一个列表,您应该在其元素上调用str.upper
,而不是在其本身上,您可以使用map
实现以下目的:
s = list(input('Input a string: ').lower())
g = int(input('Input an integer: '))
s[g::g + 1] = map(str.upper, s[g::g + 1])
s = ''.join(s)
print(s)
输入:
Input a string: Hello World
Input an integer: 1
输出:
hElLo wOrLd
不是每个第一个字符都意味着所有的大写字母吗?谢谢你,先生!回答得很快。