在python中合并字符串

时间:2015-10-15 01:21:50

标签: python string concatenation

我正在制作一个刽子手游戏,我需要更新显示正确字母的表格。到目前为止,该程序打印此

Enter a word: hello
[-----] You have 6 guesses left, enter a letter: h
Correct!
[H----] You have 6 guesses left, enter a letter: e
Correct!
[-E---] You have 6 guesses left, enter a letter: l
Correct!
[--LL-] You have 6 guesses left, enter a letter: o
Correct!
[----O] You have 6 guesses left, enter a letter: 

我需要程序做的是组合字符串,例如[H ----] - > [HE ---]等等。我该怎么做?以及当没有更多破折号时结束比赛。

我希望程序看起来像的一个例子是

[H----]
[HE---] 

该程序还必须以随机顺序工作,例如......

[----O]
[-E--O]
[HE--O]
[HELLO]

这是我目前的代码

My code so far

3 个答案:

答案 0 :(得分:1)

只需循环通过字符串进行猜测并显示字母,如果该字母已经猜到,或者显示“_”,以防它没有。

In [127]: s = "Apple"

In [128]: already_guessed = ['p', 'e']

In [129]: '[' + ''.join([letter if letter in already_guessed else '_' for letter in s]) + ']'
Out[129]: '[_pp_e]'

答案 1 :(得分:0)

不使用“ - ”重新计算display_string,而是使用display_string的先前值。注意:由于括号,您需要偏移display_string的索引。

display_string = "[" + "".join([x if x == letter else display_string[i + 1] for i, x in enumerate(word)]) + "]"

答案 2 :(得分:-1)

这是我尝试回答的问题,在您提交代码之前写下了这些内容,所以它可能不是您正在寻找的内容,但它确实有效。

Option Explicit

Sub Right6()
    Const R6LeftCol = "=RIGHT(RC[-1],6)"
    Dim oRng As Range, lRow As Long
    lRow = Cells(Rows.Count, "A").End(xlUp).Row
    Set oRng = Range("B12")
    Range(oRng, Cells(lRow, "B")).FormulaR1C1 = R6LeftCol
    Set oRng = Nothing
End Sub