有更好的方法吗?
我希望代码检测数字和特殊字符并打印:
“不允许使用数字”/“不允许使用特殊字符”
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))
答案 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
我们选择数字,取消选择除字母之外的任何字符然后完成工作。