본문 바로가기
파이썬

파이썬 How can I randomly choose a maths operator and ask recurring maths questions with it?

by º기록 2020. 12. 6.
반응형

무작위 가져 오기와 관련하여 실행하는 데 문제가있는 간단한 수학 작업이 있습니다. 아이디어는 무작위로 생성 된 10 개의 질문으로 구성된 퀴즈가 있다는 것입니다. random.randint 함수를 사용하여 (0,12) 범위의 숫자를 얻었습니다. [ '+', '-', '*', '/']에 문제가있는 임의 연산자를 선택하는 다음 비트입니다.

나는 학교에서 더 정교한 코딩을 가지고 있지만, 이것이 내가 필요한 것은 무작위로 질문을 만들고 질문하는 능력과 주어진 대답이 올바른지 결정하기 위해 스스로 대답 할 수있는 능력입니다. 내 코드는 다음과 같습니다.

import random

ops = ['+', '-', '*', '/']
num1 = random.randint(0,12)
num2 = random.randint(0,10)
operation = random.choice(ops)

print(num1)
print(num2)
print(operation)

maths = num1, operation, num2

print(maths)

지금 당장은 내 출력이 약간 엉망입니다. 예를 들면 :

3
6
*
(3, '*', 6)

분명히 (3, '*', 6)에서 답을 결정할 수 없습니다. 이 작업을 다른 프로그램에서 서브 루틴으로 전환 할 것이지만 먼저 작동해야합니다!

잘하지 못했다면 용서 해주세요. 이것은 제가 학교에서 남긴 과제를 재빨리 재현 한 것이었고, 저는 제한된 지식으로 이것에 상당히 새롭습니다. 미리 감사드립니다!

 

해결 방법

 

파이썬에는 수학식이 포함 된 문자열을 평가하는 eval ()이라는 함수가 있습니다.

import random

ops = ['+', '-', '*', '/']
num1 = random.randint(0,12)
num2 = random.randint(0,10)
operation = random.choice(ops)

print(num1)
print(num2)
print(operation)

maths = eval(str(num1) + operation + str(num2))

print(maths)

함수가 문자열 '4 * 2', '3 + 1'등과 같은 것을 예상하기 때문에 숫자를 문자열로 변환해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/26260950

 

 

반응형

댓글