2016-08-25 101 views
-3

嗨,我是编程新手,我试图编写一个代码,将收集来自输入信息,并确定它是否是一个有效的字母表。如果字符是字母输入验证从输入

我以前问过这个问题,但给出的答案只是没有工作,所以我再次问这个问题。请帮助

words = [] 
word = input('Character: ') 
while word: 
if word not in words: 
    words.append(word) 
word = input('Character: ') 
print(''.join(words),'is a a valid alphabetical string.') 

想我选择三个字母,然后我的代码的输出,然后按在第四输入 , 代码将是:

Character:a 
Character:b 
Character:c 
Character: 
abc is a valid alphabetical string. 

我想要添加到这个代码,以便当我输入字母表中不是 的字符时,代码将执行类似的操作。

Character:a 
Character:b 
Character:c 
Character:4 
4 is not in the alphabet. 

这正是我希望我的输出是。

enter image description here

+0

我已经表明了我所 – cars

+0

增加了一个回答你刚才的问题。这个应该被标记为重复。 – Karin

回答

0

如果你看一下串类,我认为你会发现它有一些变量,你会发现有用的。

from string import letters 
word = raw_input("Character: ") 
words = [] 
while word and word in letters: 
    if word not in words: 
    words.append(word) 
    word = raw_input('Character: ') 

我没有在这台电脑上的Python,但我认为你会发现这块代码的作品。此外,字符串类还有其他几个变量,包括数字,标点符号,可打印等。

+0

我在哪里可以将此代码放在我的代码 – cars

+1

好友中,这与您的代码完全匹配。你应该能够找出把这个放在哪里。我想我没有列印声明。就这样。 – bravosierra99

+0

你的问题是如何验证字符是字母,而不是如何为你写整个问题。我已经给你回答你的问题。你应该能够从这里弄清楚。 – bravosierra99

0

您可以使用string.isalpha()函数来查找输入是否为字母。

>>> 'a'.isalpha() 
True  <-- as 'a' is alphabet 
>>> 'A'.isalpha() 
True  <-- as 'A' is also alphabet 
>>> ''.isalpha() 
False  <-- empty string 
>>> '1'.isalpha() 
False  <-- number 
------------------------- 
>>> 'ab'.isalpha() 
True  <-- False, since 'ab' is alphabetic string 

# NOTE: If you want to restrict user to enter only one char at time, 
# you may add additional condition to check len(my_input) == 1 
>>> len('ab') == 1 and 'ab'.isalpha() 
False 

为了得到用户的输入,你可以这样做:

  • 使用raw_input

    x = raw_input() # Value of x will always be string

  • 使用input

    x = input() # Value depends on the type of value

    x = str(x) if x else None # Convert to str type. In case of enter with value set as None

+0

我试过isalpha,你必须输入字符串 – cars

+0

'raw_input()'返回所有字符串 –

+0

我的程序说错误原始输入没有定义 – cars