关于我个人项目中存在的问题,我有一个简单的问题。 我有一个悬挂式的人游戏我在python中创建的乐趣和隐藏的单词最初呈现 用户采用以下方法;说这个词是你好,它会是'^^^^^',就像每个人一样 字符由'^'替换。现在我试着编写一个计算设置字符串中显示的字符数量的函数,所以说我有一个,并且猜到了苹果,我现在有了以下视图,'app ^^^',
现在继承我的问题,如果有超过一半的字符显示如下,我想返回一个真或假的布尔语句; 'app ^^^'= true,因为显示至少1/2;因此return = true 但是,'a ^^^^^'= false,而不是显示1/2的字符,
我感觉很糟糕没有张贴任何东西,但我想出了如何做到这一点; 所以我觉得如果我可以len(app ^^^)但删除'^'的计数然后如果计数大于len的一半(app ^^^)没有删除'^',返回true,否则;返回false。我相信它可以工作,但不知道该怎么做,再次感谢你们。
答案 0 :(得分:4)
不计算字母数,而是计算^
个字符:
s = 'app^^^'
if s.count('^') >= len(s) / 2:
# Half of the characters are `^`s
else :
# Less than half ...
答案 1 :(得分:1)
实现您提出的解决方案的代码是:
def is_half_revealed(s):
return len(s.rstrip('^')) / float(len(s)) * 2 >= 1
虽然您应该考虑重构代码,以便存储“显示答案的数量”的数据与显示给用户的字符串是分开的,而不是直接检查该字符串。
答案 2 :(得分:0)
更通用的解决方案
def percent_solved(s):
return 100 - s.count("^") * 100 / len(s)
if percent_solved(s) >= 50:
...