将字符串中的True值转换为Int

时间:2016-05-16 17:02:33

标签: python string python-3.x type-conversion

list = ['JACOBIS','LIMANIS','FOXTROT']
word = input('enter a word in the list')
generatedword = (random.choice(list))

程序运行时可能的方案, 如果用户输入FOXTROT但单词是JACOBIS:

print("Your word contains 1/7 correct characters")

可能的解决方案:

if word == generatedword:
    print ("your word contains 7/7 correct characters")

在这种情况下,操作是否合适?例如:

print ("your word contains", len(str(generatedword)), "/7")

print ("your word contains", len(str(word)) in generatedword, "/7")

1 个答案:

答案 0 :(得分:2)

首先,in不是函数,它是成员资格检查操作的运算符。

其次,您无法使用in,因为您可能会有hello这样的词和he这样的词,而he就在hello但是字符的长度不一样。

相反,您可以使用set.intersection()来查找常见字符:

>>> a = "FOXTROT"
>>> b = "JACOBIS"

>>> len(set(a).intersection(b))
1

但请注意,您需要将此值除以set(b)的长度,以便处理具有重复字符的字词。

由于此方法将根据唯一字符给出计数,如果您希望获得2以下示例的交集,则可以使用str.count()sum()函数,如下所示:

>>> a = 'FOXTROT'
>>> 
>>> b = 'JACOBIS' 

>>> sum(a.count(i) for i in set(b))
2

这将为您提供第一个字符串中第二个字符串中所有字符数的总和。