먼저 국어, 영어, 수학, 과학 점수가 한 줄에 입력되므로 input에서 split을 사용한 뒤 변수 네 개에 저장해주면 됩니다(변수는 이하 korean, english, mathematics, science). 이때 input().split()의 결과는 문자열이므로 map에 int를 사용하여 정수로 변환해줍니다.
평균 점수를 구할 때는 모든 값을 더한 뒤 값의 개수로 나눠주면 됩니다. 따라서 (korean + english + mathematics + science) // 4와 같이 값을 더한 뒤 과목 개수 4로 나눠줍니다. 단, 덧셈보다 나눗셈이 먼저 계산되지 않도록 덧셈 부분은 괄호로 묶어줍니다. 그리고 평균 점수가 정수로 계산될 수 있도록 버림 나눗셈 연산자 //를 사용하거나 계산 부분을 모두 int로 묶어줍니다.
계산식을 작성했다면 결과를 확인할 수 있도록 print로 출력해줍니다.
무슨말인지 모르겠습니다..
안내문자열이있을때는
korean,english,mathematics,science = map(int, input('문자열:').split())
문자열: 83 92 87 90
(korean+english+mathematics+science)//4
88
korean,english,mathematics,science = map(int, input().split())
korean english mathematics science = 83 92 87 90
이것두 안되구요..
문의한 코드로 잘 됩니다.
IDLE에서 직접 테스트해보세요.
심사문제는 텍스트 일치로 판별하므로 문자열을 출력하지 않을 때는 input().split()을 씁니다.
문의한 코드를 복사해서 붙여 넣어서 테스트했습니다.
잘 됩니다.
IDLE은 결과를 바로 알려줍니다. 코드를 이것저것 테스트해보기에 좋습니다.
방금
korean,english,mathematics,science = map(int, input().split())
83 92 87 90
이렇게 쳐봤는데 잘되네요..
저는 '문자열을 쓰면안된다' 라는 문구를 보고
korean,english,mathematics,science = map(int, input().split())
korean english mathematics science = 83 92 87 90
이렇게 작성해서 안된것같은데,
문자열이 있고 없고의 차이가 무엇인지 알려주실수있을까요>>> input('숫자 4개를 입력하세요:').split()
숫자 4개를 입력하세요:1 2 3 4
['1', '2', '3', '4']
input에 문구를 넣어서 안내 메시지를 출력할 수 있습니다.
단, 심사에서는 숫자만 입력 받으니 input 함수에 문자열을 쓰면 안 된다는 설명입니다.
심사문제에 '참고'에 설명한 부분입니다. 읽어보고 IDLE에서 실습해보면 이해가 될 겁니다.
일단 답변해주신글은 잘읽었습니다! 이해됬네요~
유닛6의 내용을 찬찬히 읽다가 문득 생각나서 적어봅니다.문자열을 쓰지않고, input의 명령어를 쓰면,
그것이 출력된지 않된지 알수없으니까,
'문자열' = 파이썬 프롬프트>>> 의 역할을 하므로 출력의 여부를
알수있다.. 맞나요
IDLE에서는 해당 코드의 실행이 완료되면 >>> 프롬프트가 표시됩니다.
print 함수로 출력하면 출력한 이후에 >>> 프롬프트가 표시되고,
input 함수로 입력을 받으면 입력이 끝난 이후에 >>> 프롬프트가 표시됩니다. 만약, 이 과정에 오류가 있으면 오류 메시지가 표시됩니다.
제 글의 의도가 제대로 전달되지 못했나보군요
다시 짧게 작성해보겠습니다.
input 명령어의기능=파이썬프롬프트>>>
맞는지 아닌지만 알려주세요
input 함수의 기능과 파이썬 프롬프트 >>>는 아무 상관이 없습니다.
질문이 어떤 의도인지 모르겠습니다.
input 함수는 문자열을 있는 그대로 입력 받을 뿐입니다. 숫자도 문자열로 저장되므로 int, float 함수로 적절하게 변환을 수행해야 합니다.
파이썬 프롬프트 >>>에서 입력되는 문자열은 '파이썬 코드로 해석'됩니다. 문자열로 저장되지 않습니다.
도움이 되길 바랍니다.
(절대 시비걸려는 목적이아니구, 아직 찝찝해서
올리겠습니다 ㅠㅠ)
이글을 보시구, 아직 의도를 파악하시지 못하셨으면
제가 글쓰는방법부터 배워야겠습니다..ㅜ
1.
korean,english,mathematics,science = map(int, input('문자열:').split())
문자열: 83 92 87 90
2.
korean,english,mathematics,science = map(int, input().split())
83 92 87 90
1번식처럼 굳이 input함수에 '문자열'을 넣어서
표현한이유가 궁금합니다...
문자열을 굳이 넣지않아도 1.2번의 결과는 동일한데
굳이 문자열을 넣어서 표현하는 이유가 뭐죠?
input 함수에서 문자열을 출력하는 이유는 사용자와의 커뮤니케이션을 위해서입니다. 명령 프롬프트에서 문자로 상호작용하는 인터페이스를 CLI(Command Line Interface, 명령 줄 인터페이스)라고 합니다.
예를 들어 리눅스에서 가장 흔하게 보는 로그인 화면입니다.
login as: 같은 안내 메시지가 없으면 ID를 넣으라는 것인지 사용자는 알 수 없으니까요.
id = input('login as:')
이런 식으로 코드를 작성하게 됩니다.
파이썬으로 간단하게 체질량지수 계산기를 만든다면
다음을 bmi.py로 저장하세요.
weight = float(input('몸무게(kg)를 입력하세요: '))
height = float(input('키(cm)를 입력하세요: '))
height_meter = height / 100.0;
bmi = weight / (height_meter * height_meter)
print(f'당신의 체질량 지수는 {bmi:.2f}입니다')
몸무게(kg)를 입력하세요: 60.5
키(cm)를 입력하세요: 162.1
당신의 체질량 지수는 23.02입니다