创建一个函数replaceCharAtPos(orig,pos),它接收两个输入参数,一个字符串(orig)和一个正整数(pos)。你知道吗
如果数字是字符串中的一个位置,则函数应返回一个新字符串。新字符串应为原始字符串,但不应使用该位置pos中的原始字符,而应具有位置号本身(如果位置号有1个以上的数字,则该字符应替换为位置号单位部分的数字,例如,如果位置号为12,则为2)。你知道吗
如果数字pos不是原始字符串orig中的有效位置,则返回的字符串应与原始字符串完全相同。你知道吗
应输入和输出的内容示例:
print (replaceCharAtPos("abcd",2))
这将给出输出ab2d,因为数字2对应于字符串的索引位置2(索引从0开始),所以它将替换“abcd”的“c”
def replaceCharAtPos(orig,pos):
if pos >= (len(orig)):
return orig
orig = list(orig)
orig[pos] = str(pos)
return ''.join(orig)
当输入两位数字(如12)时,新字符串应取12的第二位/最后一位,即2。请看下面的代码问题:
print (replaceCharAtPos('abcdefghijklmn',12))
我得到的输出是abcdefghijkl12n
,但应该是abcdefghijkl2n
。如何解决这个问题?我试过把str(pos)
改成str(pos[-1])
,但没用。你知道吗
谢谢
您只需在参数转换后的索引中使用
[-1]
索引,以确保在提供的数字超过1位时,它始终采用最后一位数字。你几乎是对的,但是你做str(pos[-1])
的方法是你试着切片pos
,这是一个integer
,而不是转换的str
。你知道吗相关问题 更多 >
编程相关推荐