2014-07-13 3 views
0

여기 아마추어 파이썬 ... 간단한 인사말 프로그램을 만들고 있습니다. 다음 기능에서 사용자는 성별을 입력해야합니다. 사용자가 남성의 경우 M을 입력하거나 여성의 경우 F를 입력 할 수 있도록 간단하게 만듭니다. 나는 그것이 다음 M 또는 F에서이다 수행 할 작업을Python 3.4 - 간단한 인사말 프로그램

def genderFunction(firstName, fullName): 
    print("%s, what is your gender?"%firstName) 
    choice = input("Enter 'M' for Male or 'F' for Female\n") 

는 '성'이라는 새로운 변수를 생성하고 하나가 남성 또는 여성합니다 그래서 나는 다음과 같은 코드를 사용했습니다. 나는 M/F 입력에서 이것을 어떻게하는지 확신 할 수 없다. 누구든지 도와 줄 수 있습니까? 나는이 물건을 처음 접한다는 것을 기억하십시오.

def genderFunction(firstName, fullName): 
    print("%s, what is your gender?"%firstName) 
    choice = input("Enter 'M' for Male or 'F' for Female\n") 
    if(choice.upper() == "M"): 
     gender = Male 

는 그러나 나는 그렇지 않을 것 알고있는이를 좋아하지 않았다, 그러나 그것은 시도 가치가 있었다 :이 작업을 수행하여 그것을 시도.

미리 감사드립니다. :)

+0

** Male ** 및 ** Female ** 유형의 별도 * 클래스 * 개체를 원하십니까? – khampson

+0

@KenHampson 느린 응답을 드려 죄송합니다. 해결책은 이미 발견되었지만 게시물을 읽는 데 시간을내어 주셔서 감사합니다! – PythonBoy69

+0

물론, 문제 없습니다. – khampson

답변

1

이 두 가지 문제는 여기에 있습니다 : 따옴표로 묶어야 할

  1. Male 필요 그것이 string literal가되도록 :

    gender = "Male" 
    

    그렇지 않으면 Male이기 때문에하는 NameError가 발생합니다 정의되지 않았습니다.

  2. 입력 genderInput의 이름을 지정했기 때문에 choice 이름은 정의되지 않았습니다. 여기

는 코드가 있어야한다 무엇 :

def genderFunction(firstName, fullName): 
    print("%s, what is your gender?"%firstName) 
    genderInput = input("Enter 'M' for Male or 'F' for Female\n").upper() 
    if genderInput == "M": 
     gender = "Male" 
    elif genderInput == "F": 
     gender= "Female" 

당신은 내가 입력을 얻는 줄의 끝에 str.upper라는 것을 너무 알 수 있습니다. 이렇게하면 if 문당 한 번 호출하지 않아도됩니다.

+0

내 어리석은 실수를 깨달았습니다. 나는 이미 질문을 할 때 여기에있는 사람들 중 한 명을 만들었습니다. 나는 아마 12시에 코딩을 시도해서는 안된다. ... 내 오류를 지적 해 주셔서 대단히 감사합니다! 또한 genderInput과 관련하여 드래프트에서 수행 한 작업을 인식 한 후에 선택 항목으로 변경했지만 업데이트 된 버전을 복사하는 대신 초안 버전을 복사했습니다. :) – PythonBoy69

0

대신 choice = input("Enter 'M' for Male or 'F' for Female\n)을하고 당신은과 같이, 즉시 성으로 넣을 수 있습니다 : gender = input("Enter 'M' for Male or 'F' for Female\n)

을 당신, 당신은 같은 것을 할 수있는 사용하기 쉬운 경우, 예를 들어 남성을 확인하려면 :

if gender == 'M': 
    #do stuff here 

gender으로 전화하는 것이 중요하지 않은 경우 원할 경우 choice으로 남겨 둘 수 있습니다. gender으로 설정하면 쉽게 읽고 이해할 수 있습니다.