【发布时间】:2021-10-31 20:54:45
【问题描述】:
我正在尝试制作刽子手游戏的一个版本。
我设置了单词字符串,用 + 替换元音,用 - 替换其余的,依此类推。
当我需要替换字符串中的字符时,问题就来了:
我阅读了许多关于 python 字符串替换的问题,最接近我需要的似乎是string = string[:index] + char + [index+1:]。问题是索引变得完全随机:
示例
字:stuck
格式:- - + - -
如果我发送 c:
它发现索引是 3 所以字符串应该是 string[:3] + char + string[4:]
导致- - + c -
相反,发生的是:
- c + - -
这个字符串是从索引 2 开始的吗?
代码:
交换功能
def swapChar(position, tstring, char):
print("/////////")
print(position)
print(tstring). # note 1
print(char)
print("////////")
print(tstring[0 : (position+2)] + " NEWCHAR " + tstring[(position+3):]) # note 2
first = tstring[:position-1]
print("First: " + first)
second = tstring [position+1:]
print("Second: " + second)
string = first + char + second # note 3
return string
注意 1:打印此信息以检查获取到函数的值是否正确,并且确实正确
/////////
3
- - + - -
c
////////
注意 2:即使将 2 与索引相加也会导致错误的位置
- - NEWCHAR - -
注意3:我也尝试过拆分拆分,但没有成功。
此外,有时我注意到选择第二个字符可能会在字符串中添加一个位置(例如,卡住,如果我输入 u,它可能会变成 - u c + - - 等等(我得到了一些单词喜欢+ - e m p i r e - + - +,完成它们))。
要么字符串拆分是随机进行的,要么我不知道它是如何完成的,我会说后者更有可能。
奖励示例日志:
Chosen Word: ruth
Letter: r
Letter: u
Letter: t
Letter: h
[ MESSAGE ] {{ /device/write }} "h"
Equivalence: r = h
Equivalence: u = h
Equivalence: t = h
Equivalence: h = h
/////////
3
- + - -
h
////////
First: -
Second: - -
- h - -
如果您需要任何其他信息,请询问
【问题讨论】:
-
你认为空格也是字符吗?字符串似乎在所有字符之间都有空格,因此在考虑索引时它们也算在内。
-
我现在真的很笨
-
@MiquelEscobar 如果您想将其发布为答案,我会接受它
-
哈哈哈哈这发生在我们所有人身上;)
-
@MiquelEscobar 在过去 3 个小时里我一直在尝试解决这个问题,答案是“空格”哈哈哈哈哈哈