Python 취미 도전 유치원 동생 에 게 산수 문제 1000 개 생 성

머리말
아 주머니 는 30 위안 을 써 서 유치원 의 어린 동생 에 게 연습 문 제 를 한 권 사 주 었 는데,안 에는 모두 간단 한 이원 가감 법 이 들 어 있 었 다.나 는 그 말 을 듣 고 놀 라 서'왜 돈 을 써 서 문 제 를 사?"내 가 손가락 을 움 직 이면 천 개 를 만들어 줄 수 있어."
아 주머니 는 2 원 가감 이 너무 간단 하 다 고 생각 하 셔 서 3 원 가감 법의 산수 문제x + y + z; x + y - z; x - y - z; x - y + z를 원 하 십 니 다.동생 이 아직 어 려 서 100 이내 의 가감 법 만 할 줄 알 고 마이너스 가 되 지 않 기 때문에 계산 문 제 는 계산 결 과 는[0, 100]뿐만 아니 라 산식 의 두 분 의 계산 도[0, 100]안에 있어 야 합 니 다.
동생 이 커서 고마워 했 으 면 좋 겠 어,히히~
사고[1,99]에 생 성 된 난수x, y, z는 그들의 계산 결과 가[0, 100]안에 있 고 산식 중의 모든 두 사람의 계산 도[0, 100]안에 있 으 면 문자열 에 저장 하여 답 으로 한다.예 를 들 어"10 + 13 + 9 = 32".문자열 을set에 저장 합 니 다.Pythonset은 무질서 하고 중복 되 지 않 기 때문에 자동 으로 흐 트 러 지고 무 거 워 집 니 다.답 을 파일 에 쓰 고 파일 을 쓸 때 index(문제 번호)를 써 서 결 과 를 지우 고 다른 파일 을 써 서 제목 으로 합 니 다.
방법
1.무 작위 정수 생 성:

import random
x = random.randint(1, 99)	#   [1, 99]    
2.set:

s = set()	#      set()
x = 1
s.add(x)	#  x  s
3.결 과 를 파일 에 저장

text = "Hello world!"
with open(file, 'a') as f:	#        
	#          
	f.seek(0)
    f.truncate()
	#        
    f.write(text)
코드

import random

def fun1(x, y, z):
    s = str(x) + " + " + str(y) + " + " + str(z) + " = " + str(x + y + z)
    return s

def fun2(x, y, z):
    s = str(x) + " + " + str(y) + " - " + str(z) + " = " + str(x + y - z)
    return s

def fun3(x, y, z):
    s = str(x) + " - " + str(y) + " + " + str(z) + " = " + str(x - y + z)
    return s

def fun4(x, y, z):
    s = str(x) + " - " + str(y) + " - " + str(z) + " = " + str(x - y - z)
    return s

def generate(num):
    s = set()
    while len(s) < num:
        x = random.randint(1, 99)
        y = random.randint(1, 99)
        z = random.randint(1, 99)
        if ((x + y >= 0 and x + y <= 100)
                and (y + z >= 0 and y + z <= 100)
                and (x + z >= 0 and x + z <= 100)
                and (x + y + z >= 0 and x + y + z <= 100)):
            s.add(fun1(x, y, z))
        if ((x + y >= 0 and x + y <= 100)
                and (y - z >= 0 and y - z <= 100)
                and (x - z >= 0 and x - z <= 100)
                and (x + y - z >= 0 and x + y - z <= 100)):
            s.add(fun2(x, y, z))
        if ((x - y >= 0 and x - y <= 100)
                and (- y + z >= 0 and - y + z <= 100)
                and (x + z >= 0 and x + z <= 100)
                and (x - y + z >= 0 and x - y + z <= 100)):
            s.add(fun3(x, y, z))
        if ((x - y >= 0 and x - y <= 100)
                and (- y - z >= 0 and - y - z <= 100)
                and (x - z >= 0 and x - z <= 100)
                and (x - y - z >= 0 and x - y - z <= 100)):
            s.add(fun4(x, y, z))
    return s

def save_in_file(answers, answer_file, question_file):
    with open(answer_file, 'a') as f:
        #          
        f.seek(0)
        f.truncate()

        cnt = 1
        for ans in answers:
            text = str(cnt) + ")  " + ans + '
' f.write(text) cnt += 1 with open(question_file, 'a') as f: f.seek(0) f.truncate() cnt = 1 for ans in answers: ques = str(cnt) + ") " + ans[: ans.find('=') + 1] + "
" f.write(ques) cnt += 1 save_in_file(generate(1000), "C:\\Users\\sibyl\\Desktop\\calculation\\answer.txt", "C:\\Users\\sibyl\\Desktop\\calculation\\question.txt")
결과
생 성 된 txt 파일:
答案 题目
레이아웃 된 워드 문서:
答案
题目
파 이 썬 의 취미 도전 에 관 한 이 글 은 어린이 집 동생 에 게 1000 개의 산수 문 제 를 만들어 주 는 글 을 소개 합 니 다.더 많은 파 이 썬 의 산수 문제 생 성 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기