2016-10-08 12 views
0

저는 초보자를위한 파이썬 과정입니다. 최대 6 단어의 입력을 머리 글자로 변환하는 코드를 만들어야합니다.입력 문자가 파이썬에서 주어진 문자와 일치하는지 확인

머리 글자를 만들기 전에 단어에 주어진 집합의 문자 만 포함되어 있는지 확인해야하지만 특수 문자 (õ, ä, ö, ü).

def main(): 

    nr_of_words_limit = 6 
    chars = "abcdefghijklmnopqrstuvwõäöüxyz" 

    def not_allowed_characters_check(text, chars): 
     """This checks if all words in text only include characters from chars""" 

    def acronym(text, chars, nr_of_words_limit): 
     """Creates acronym after checking for not allowed characters""" 

그래서,이 경우 :

text = "Hello World!" 

그냥 텍스트 인해 느낌표로 문자를 사용할 수 없습니다 포함 말할 것입니다.

텍스트의 모든 단어에있는 모든 문자가 그 다음 문자와 일치하면 어떻게 비교할 것입니까?

도움을 주셔서 감사합니다. 정말로 감사드립니다.

답변

1

가장 간단한 방법은 단어의 문자 집합이 set(word).issubset(alphabet)을 사용하는 알파벳의 하위 집합인지 확인하는 것입니다.

alpha_set = set("best") 
print set("test").issubset(alpha_set) 
print set("testa").issubset(alpha_set) 

인쇄 : 예를 들어

True 
False 

Example here

0

당신은 텍스트의 모든 단어가 특정 패턴과 일치하는지 확인하기 위해 regular expressions를 사용할 수 있습니다. 귀하의 경우 패턴은 단어의 모든 문자가 대문자 A-Z은 물론 소문자 a-z (예 가정)과 문자 õäöü)이어야합니다.

정규 표현식을 사용하는 방법을 배우는 것은 초보자에게는 어려운 것처럼 보일 수 있지만 연습이 조금 있으면 매우 유용하고 효율적입니다.

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import re 

def check_allowed_chars(text): 
    """ 
    """ 
    pattern = re.compile('[a-zA-Zõäöü]+$') 
    words = text.split() 
    for word in words: 
     if not pattern.match(word): 
      print('The text contains not allowed characters!') 
      return