2

关于我的个人项目中存在的问题,我有一个简单的问题。我在 python 中创建了一个挂人游戏,以供娱乐,隐藏的单词最初以以下方法呈现给用户;说这个词是你好,它会是'^^^^^',因为每个字符都被'^'替换。现在我正在尝试编写一个函数来计算设置字符串中显示的字符数量,所以说我有 a 和 p 在苹果中猜测,我现在有以下视图,'app^^^',

现在这是我的问题,如果已经显示了超过一半的字符,我想返回一个 true 或 false 布尔语句,所以下面的例子;'app^^^' = true 因为至少显示了 1/2;因此 return = true 但就像'a^^^^^' = false,没有显示 1/2 的字符,

tbh 我没有发布任何东西感觉很糟糕,但我想出了一个如何去做的想法;所以我觉得如果我可以 len(app^^^) 但删除 '^' 的计数,那么如果计数大于没有删除 '^' 的 len(app^^^) 的一半,则返回 true,否则;返回假。我相信它可以工作,但不知道怎么做,再次感谢大家。

4

3 回答 3

4

不计算字母,而是计算^字符:

s = 'app^^^'

if s.count('^') >= len(s) / 2:
    # Half of the characters are `^`s
else :
    # Less than half ...
于 2012-10-19T03:27:42.317 回答
1

实现您提出的解决方案的代码将是:

def is_half_revealed(s):
    return len(s.rstrip('^')) / float(len(s)) * 2 >= 1

尽管您应该考虑重组代码,以便存储“显示多少答案”的数据与显示给用户的字符串分开,而不是直接检查该字符串。

于 2012-10-19T03:33:10.063 回答
0

更通用的解决方案

def percent_solved(s):
    return 100 - s.count("^") * 100 / len(s)

if percent_solved(s) >= 50:
    ...
于 2012-10-19T05:16:19.800 回答