2013-06-17 4 views
0

이 코드가 있지만 "goodmorning"또는 "morning"을 입력하면 "good morning"이 인쇄되지만 "hello goodmorning"을 입력하면 인쇄되지 않습니다 좋은 아침에 테스트가 인쇄됩니다. 코드 :사용자의 문자열을 확인하십시오 inout

dicmorning = "goodmorning" + "morning" 
string = raw_input("test: ") 
if string in dicmorning: 
    print "good morning" 
else: 
    print "test" 

나는 그냥 입력에서 해당 문자열을 찾아 만들려고 노력하고있어 거기에있는 경우 다음이 "좋은 아침"인쇄합니다. 어떤 도움이라도 대단히 감사합니다.

+0

왜 작동하지 않는지 잘 모르겠 으면 변수를 인쇄 해보십시오. 또한,'string'을 변수 이름으로 사용하지 마십시오. 왜냐하면 그것은 파이썬에서 키워드이기 때문입니다. – 2rs2ts

답변

0

입력 문자열의 각 토큰을 별도로 확인해야합니다. 숫자를 입력 한 경우에도 합리적 효율적인 방법은,

dicmorning = {"goodmorning", "morning"} 
raw_string = raw_input("test: ") 
tokens = raw_string.split() 
if dicmorning.intersection(tokens): 
    print "good morning" 
else: 
    print "test" 
+0

고맙습니다. – user2458048

0

모든 원시 입력 문자열입니다 ... 원하는 토큰 세트를 생성하고 입력 토큰을 교차 할 수 있습니다 (예 : "2" 나는 "dicmorning"좋은 이름 아니라고 말을해야하지만

dicmorning = ["goodmorning", "morning"] 
input_string = raw_input("test: ") 
foundstring = False 
for i in dicmorning: 
    if i in input_string: 
     foundstring = True 
     break 
    else: 
     foundstring = False 
if foundstring: 
    print "good morning" 
else: 
    print "test" 

:)

0

나는 같은 더 많은 것 같아요.

관련 문제