如何检查单词是否在字母范围内开始

时间:2017-07-17 07:18:21

标签: python python-3.x

我有这个简单的程序

quote = input("Enter your name : ")
start=0
space_index=quote.find(" ")
while space_index != -1:
   print(quote[start:space_index]) 

我希望无论出现什么词都应该以 a到g 开头。 我尝试使用导入字符串类并使用他的ascii_lowercase()函数,但我仍然无法弄清楚如何检查单词是否以 a到g 的范围开始。

6 个答案:

答案 0 :(得分:3)

像这样使用startswith()

quote = input("Enter your name : ")
allowed = 'abcdefg'
if any(quote.startswith(x) for x in allowed):
   print('Success!') 

或者,为了使其更加灵活,您可以使用:

import string
start = 'a'
end = 'g'
letters = string.ascii_lowercase
allowed = letters[letters.index(start):letters.index(end)+1]  # abcdefg
quote = input("Enter your name : ")

while not any(quote.startswith(x) for x in allowed):
    quote = input("The name is not valid! Please enter another name: ")
print('Success!')

答案 1 :(得分:2)

re.match:

re.match(r'[A-G, a-g]', yourstringhere)

答案 2 :(得分:1)

使用简单的re模块:

import re
quote = input("Enter your name : ")
matches = [s for s in quote.split() if re.match('^[a-g,A-G]', s)]

您是否注意到此部分[a-g,A-G]? 您可以将其更改为您想要的任何范围,例如[a-z]仅为小写,[a-z,A-Z]表示所有ascii字母,[0-9]表示数字等...

答案 3 :(得分:1)

如果要测试特定范围的字母,可以使用chr()函数获取范围的开头和结束字母的ascii值,并使用>>> def starts_in_range(string, char_range): ... start, end = char_range.split('-') ... ord_char_range = range(ord(start), ord(end) + 1) ... return ord(string[0]) in ord_char_range >>> starts_in_range('globe', 'a-g') True >>> starts_in_range('butter', 'a-g') True >>> starts_in_range('nuts', 'a-g') False >>> starts_in_range('kimmy', 'a-g') False >>> starts_in_range('dumbo', 'a-g') True 获取文本角色的价值ascii vaule:

videojs

答案 4 :(得分:0)

你在string.ascci中关注enaugh的地方,你可以这样做:

import string

a_to_g = string.ascii_lowercase[0:7]

print(a_to_g)
  

[' a',''' c',' d',' e',& #39; f',' g']

quote = input("Enter your name : ")

print(quote[0] in a_to_g) 

print(a_to_g)
  

如果您想要从a到g更多,只需更改string.ascii_lowercase

中的索引即可
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

答案 5 :(得分:0)

您可以使用函数ordchr转换为ascii编号并将编号转换为ascii

quote = input("Enter your name : ")
if qoute[0] in list(map(chr,range(ord('a'),ord('g')+1))):
    #proceed