Python排除特殊字符和数字

时间:2018-03-30 17:05:52

标签: python python-3.x

有更好的方法吗?

我希望代码检测数字和特殊字符并打印:

“不允许使用数字”/“不允许使用特殊字符”

while True:
try:
    x = input('Enter an alphabet:')
except ValueError:
    print('sorry i do not understand that')
    continue
if x in ('1', '2','3','4','5','6','7','8','9','0'):
    print('Numbers not allowed')
    continue
else:
    break
if x in ('a', 'e', 'i', 'o', 'u'):
print ('{} is a vowel'.format(x))

elif x in ('A', 'E', 'I', 'O', 'U'):
print ('{} is a vowel in CAPS'.fotmat(x))
else:
print('{} is a consonant'.format(x))

3 个答案:

答案 0 :(得分:1)

一种方法是使用// output // "1 25 32 64 32 6 1 3 1 1 3 1 3 24 1 3 1 3 7 1 3 1 3 1 2 1 3 1 3 1 2 1 3 14 65 100 109 105 110 105 115 116 114 97 116 101 117 114 32 1 3 1 3 1 3 1 3 23 180 71 255 255 255 255 255 1 3 128 1 3 32 1 3 8 4 134 78 132 138 10 144 144 144 116 142 128 1 3 1 2 1 3 1 3 1 2 1 3 4 35 185 48 178 50 153 24 24 16 1 3 1 3 1 3 1 3 11 218 67 12 53 8 58 152 1 3 192 1 3 48 1 3 12 1 3 67 39 66 69 5 72 72 72 58 71 1 3 0 " // notice et the begin -> "1 25 32 64" 库。

这是一些伪代码,假设输入一次只有一个字符:

string

import string x = input('Enter an alphabet:') if x in string.digits: print('Numbers not allowed') elif x not in string.ascii_letters: print('Not a letter') 是一个包含所有大写和小写字母的字符串:

string.ascii_letters

同样,print(string.ascii_letters) #'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 是一个包含所有数字的字符串:

string.digits

答案 1 :(得分:0)

你可以通过几种方式做到这一点,但在我看来,pythonic方法就是这样:

if any(char in string.punctuation for char in x) or any(char.isdigit() for char in x):
    print("nope")

答案 2 :(得分:0)

可能是这段代码完成了工作。

while True:
x = ord(input('Enter an alphabet:')[0])
if x in range(ord('0'), ord('9')):
    print('Numbers not allowed')
    continue
if x not in range(ord('A'), ord('z')):
    print('Symbols not allowed')
    continue
if chr(x) in 'aeiou':
    print('{} is a vowel'.format(chr(x)))
elif chr(x) in 'AEIOU':
    print('{} is a vowel in CAPS'.format(chr(x)))
else:
    print('{} is a consonant'.format(chr(x)))
continue

我们选择数字,取消选择除字母之外的任何字符然后完成工作。