2017-10-10 11 views
0

그래서 문자열 내에서 글자를 찾고 그것들을 발견했는지에 따라 행동을 취하려고합니다. 지금까지 나는 이것을 가지고있다 :파이썬 2.7의 대문자 옵션에 대한 용어들

name = easygui.enterbox("What is your name?"); 
term1 = 'i' 
term2 = 'a' 
position1 = name.find(term1) 
position2 = name.find(term2) 
if(position1 != -1 and position2 != -1 and position1 < position2): 
    easygui.msgbox("Congratulations! You recieve a $3000 bonus.") 
    bonus = True 

... 잘 작동한다. 내 질문은 어떻게하면 대문자 "I"와 "A"를 찾을 수 있도록 (가능한 한 간단하게) 수정할 수 있으며 "i"및 "a"와 동일한 작업을 수행하여 보너스?

EDIT : "ia", "Ia", "IA"또는 "iA"가 포함 된 이름의 조합처럼 두 문자를 동시에 검색하려고합니다. 문자가 반드시 다음 문자 일 필요는 없습니다 서로에게, 그 특별한 순서로).

답변

1

name 콘텐츠를 소문자로 변환 할 수 있습니다. name = name.lower()은 항상 소문자 만 포함됩니다.

문자열이 같은 문자가 포함 된 경우 당신은 확인할 수 있습니다

if term1 in name and term2 in name and name.find(term1) < name.find(term2): 
    ... 
+0

'name [term1] ritiek

+0

네 말이 맞아. 지적 해 주셔서 고맙습니다. – Vinny

0

찾을 수 없어 (용어 1 또는 위 (용어 1))의 논리 "또는"찾을 수 없습니다로 ("용어 1 또는 대문자 용어 1"). 문자가 존재인지 아닌지 그냥 찾을 경우

, 다음과 같이 할 수 있습니다

발견 = name.find (term1.upper()) = - 1 name.find (용어 1을!)! = - 1

두 경우 중 하나라도 존재하면 True를 반환합니다.