2013-08-13 4 views
-3

을 길이 요구 사항입니다 :파이썬 오류 - 이름은 여기

이 이름은 시간을 확인하는 프로그램을 작성하라. 프로그램은 사용자로부터 입력으로 이름을 가져야합니다. 이름이 3 개 이하의 문자가있는 경우

, 프로그램은 다음과 같이 작동합니다 :

이 당신의 이름을 입력 : 린
안녕 린, 당신은 짧은 이름을 가지고있다. 이름이 4 사이의 8 문자 (포함)가있는 경우

, 프로그램은 다음과 같이 작동합니다 :

이 당신의 이름을 입력 : 지미
안녕 지미, 당신을 만나서 반갑습니다. 이름이 8 개 이상의 문자가있는 경우

그렇지 않으면, 프로그램은 다음과 같이 작동합니다 :

당신의 이름을 입력 : Yaasmeena

안녕 Yaasmeena을, 당신은 긴 이름을 가지고있다.

여기 내 시도이다 그러나 그것은 항상 "안녕 XXXXXXX는 좋은 당신을 만나서"를 반환 이름의 길이가

name = input('Enter your name: ') 

if len(name) <= 3: 
    print ('Hi',name, ', you have a short name.') 
elif len(name) >= 3: 
    print ('Hi',name, ', nice to meet you.') 
elif len(name) > 8: 
    print ('Hi',name, ', you have a long name.') 
+4

마지막 질문에 대한 의견을 읽었습니까? 당신의 대답은 거기에 있습니다. – nneonneo

+0

해결 이름 = 입력 ('이름을 입력 :') 경우 렌 (이름) <= 3 : 인쇄 ('안녕하세요', 이름, '., 당신은 짧은 이름이') ELIF는 len (이름) > 8 : 인쇄 ('안녕', 이름, ', 긴 이름이 있습니다.') elif len (이름)> = 4 : 인쇄 ('안녕하세요', 이름, ', 만나서 반가워요') – user2677100

답변

0
name = input('Enter your name: ') 

if len(name) <= 3: 
    print ('Hi',name, ', you have a short name.') 
elif 8 >= len(name) >= 4: 
    print ('Hi',name, ', nice to meet you.') 
elif len(name) > 8: 
    print ('Hi',name, ', you have a long name.') 
+2

중간 상태를 '4 <= len (name) <= 8'이라고 쓰면 조금 더 명확 해집니다. – nneonneo

+0

그것의 'elif' 진술서에서, 당신은 그 수표의 양쪽 끝이 필요하지 않습니다. 'elif len (name) <- = 8'을 실행하면됩니다 (더 짧은 이름은 첫 번째'if'가 잡을 것입니다). 마지막 블록에서 조건을 삭제하고 'else'만 'elif'로 만들 수도 있습니다. – Blckknght

2

3가 왜 먼저 경계를 확인하지 않는다>의 경우?

name = input('Enter your name: ') 

if len(name) <= 3: 
    r = 'you have a short name.' 
elif len(name) > 8: 
    r = 'you have a long name.' 
else: 
    r = 'nice to meet you.' 

prins 'Hi {}, {}'.format(name, r)