2016-06-19 2 views
-1

Так что, программируя часть моей домашней работы, я решил включить проверку в свою программу. Однако, добавляя в подтверждение с помощью команды .isalpha(), при наличии предложения с буквами в ней, я получаю сообщение об ошибке при вводе чисел. Извините, не могу отобразить всю мою программу, но я включил тестовую кровать кода, которую я запрограммировал, чтобы проверить, работает ли команда .isalpha(), для проверки того, введены ли только буквы алфавита. Тестовые данные введены = один из нескольких примеров тестированияPython, isalpha() возвращает неверный stament при использовании букв?

word = input("enter a word") 
if word.isalpha(): 
    print("Word accepted") 
else: 
    print("Invalid letters only") 
+0

Что такое ваш вклад? –

+0

Трудно ответить, если вы не сообщите нам, что вы ввели для 'word' –

+0

Введенные тестовые данные = пример тестирования один из нескольких – stackoverflow1

ответ

2

Если ввести более одного слова, есть не-буквенные символы в вашем входе (пробелы в случае ввода "testing example one of several"). Это приводит к ошибке isalpha.

Кроме того, ваше сообщение об ошибке вводит в заблуждение - достаточно одного символа без альфа, чтобы вызвать ошибку, а не только «недопустимые буквы».

In [1]: "Hello".isalpha() 
Out[1]: True 

In [2]: "Hello Hello".isalpha() 
Out[2]: False 

In [3]: "Lotsoflettersandonedigit1".isalpha() 
Out[3]: False 

Если вы хотите, чтобы пробелы в вашем входе, а также (но не знаки препинания или цифр или других небуквенный символов), вы могли бы сделать

if all(s.isalpha() for s in word.split()): 
Смежные вопросы