如何检查我的表是否有特定的字母

时间:2015-10-01 14:17:06

标签: python python-3.x

我们有一个表,我们应该检查它是否有用户给出的字母,所以我写了一个小代码,适用于一个列表但是当我为表运行它时它给了我假。

table = [['*', '*', '*', '*', '*'],
         ['*', '*', '*', '*', '*'],
         ['*', '*', '*', '*', '*'],
         ['*', '*', '*', '*', '*'],
         ['*', '*', '*', '*', '*']]

def print_table():
  for row in range(5):
    for col in range(5):
        print(table[row][col],end="")
    print("")
def table_has_letter(letter):
  if (letter in table):
    print('true')
  else:
    print("false")
table_has_letter("'*'")

我尝试将一个变量附加到print_table()并尝试在代码中使用该变量来查找该字母,但它说“NoneType的参数不可迭代”。提前谢谢。

3 个答案:

答案 0 :(得分:1)

您的表中有列表,因此您需要遍历表中的每个元素以检查字母:

def table_has_letter(letter):
    for element in table:
        if letter in element:
            return True
    return False
print (table_has_letter('*')) # not "'*'"

答案 1 :(得分:1)

table = [['*', '*', '*', '*', '*'],
        ['*', '*', '*', '*', '*'],
        ['*', '*', '*', '*', '*'],
        ['*', '*', '*', '*', '*'],
        ['*', '*', '*', '*', '*']]

def print_table():
    print('\n'.join(['\t'.join(x) for x in table]))

def table_has_letter(letter):
    return any(letter in x for x in table)

print(table_has_letter('*'))

答案 2 :(得分:0)

您实际上在代码中犯了两个逻辑错误: 1)您正在尝试检查表列表中的字母,但不检查表列表的实际行,因此您没有在那里获得True。 2)您正试图检查' *'不是*两者都是不同的东西,因为python。 以下是我的table_has_letter()方法的修改代码

    def table_has_letter(letter):
        for rows in table:    
            if (letter in rows):
                return True 
        return False
    print table_has_letter("*")