2015-09-14 2 views
2
for letter in message: 
    if letter.isalpha(letter)==True: 
     positions = [(alphabet.find(m), alphabet.find(n)) for m, n in message] 

Это код, который у меня есть до сих пор, но он дает мне ошибку.Как получить цикл for, чтобы проверить, содержит ли вход буквы

Traceback (most recent call last): 
    File "C:\Users\new\Desktop\python\Part 2.py", line 28, in <module> 
    if letter.isalpha(letter)==True: 
AttributeError: 'tuple' object has no attribute 'isalpha' 

Я в основном пытаюсь получить так, чтобы он занимал только часть позиции кода, если первая часть верна.

+5

Что такое 'message'? – Daniel

+0

вы тестируете 'isalpha()' на кортеже, попробуйте следующее: 'if letter [0] .isalpha() и letter [1] .isalpha():' –

+0

что такое массаж? можете ли вы дать ввод? –

ответ

0

Возможно, вы хотите alphabet position от message tuple. Итак, вы можете использовать Сводка по спискам. Как:

positions = [(alphabet.find(m), alphabet.find(n)) for m, n in message if m.isalpha() and n.isalpha()] 

Вы можете попробовать это:

for letter in message: 
    if letter[0].isalpha() and letter[1].isalpha(): 
     positions = [(alphabet.find(m), alphabet.find(n)) for m, n in message] 

Вы также можете попробовать это:

for letter1, letter2 in message: 
     if letter1.isalpha() and letter2.isalpha(): 
      positions = [(alphabet.find(m), alphabet.find(n)) for m, n in message] 
Смежные вопросы