2015-11-07 166 views
-3

我想寫一些代碼,它允許用戶輸入一個單詞,但該單詞中的所有字母都必須是大寫字母。該消息也不能包含空格或標點符號。如何只允許大寫字母輸入到一個變量

+4

你試過了什麼代碼? – 2015-11-07 17:50:51

+0

如果單詞包含非法字符會發生什麼?刪除它們或給用戶一些反饋? – Mark

+0

我在python中編寫它,如果用戶輸入了包含非法字符的消息,應該會打印一條消息,說明消息只能包含大寫字母。並要求他們提供新的輸入。 – user5537402

回答

0

Python字符串支持.isupper().isalpha()這樣:

>>> def upperalpha(s): 
... return s.isupper() and s.isalpha() 
... 
>>> upperalpha('ABC') 
True 
>>> upperalpha('ABc') 
False 
>>> upperalpha('ABC1') 
False 
>>> upperalpha('ABC DEF') 
False 
>>> upperalpha('ABCDEF') 
True 
>>> upperalpha('ABCDEF!') 
False 

一個簡單的輸入迴路可以是:

>>> while True: 
... word = input('Enter a word: ') 
... if word.isupper() and word.isalpha(): 
...  break 
... else: 
...  print('Please enter only uppercase letters, no spaces or punctuation.') 
... 
Enter a word: asdf 
Please enter only uppercase letters, no spaces or punctuation. 
Enter a word: asdf123 
Please enter only uppercase letters, no spaces or punctuation. 
Enter a word: 123 
Please enter only uppercase letters, no spaces or punctuation. 
Enter a word: ABC123 
Please enter only uppercase letters, no spaces or punctuation. 
Enter a word: ABC 123 
Please enter only uppercase letters, no spaces or punctuation. 
Enter a word: ABC DEF 
Please enter only uppercase letters, no spaces or punctuation. 
Enter a word: ABC 
>>> 
+0

對不起,但我完全失去了定義的東西,我會發現它更容易理解,如果它沒有那個...其實不要擔心我改變了一些關於我自己的東西,並去它爲我工作,但非常感謝您的幫助。 – user5537402

+0

@ user5537402,我會做出改變,但習慣它。正如你將會看到的,爲所有語言定義可重複操作的函數並且節省重複許多代碼。 –

+0

好吧,我對編碼非常陌生,現在我只是爲了好玩而努力,但是謝謝你的建議,接下來我會教自己的事情就是功能。 – user5537402

0

簡單的嘗試可能會(對單個單詞不是人數混合) -

inp = raw_input("F:") 

if inp == inp.upper(): 
    print "Hi" 
else: 
    print "please enter Upper case word" 
相關問題