ChatGPT自动生成100以内不进位、不退位加减法python程序

以下为Chat GPT自动生成100以内不进位、不退位加减法python程序的记录,未做改动:

问:

100以内不进位、不退位加减法python程序

答:

以下是一个简单的Python程序,可以实现100以内不进位、不退位的加减法:

 
 

python

import random

def add_subtract():
    a = random.randint(1, 100)
    b = random.randint(1, 100)
    op = random.choice(['+', '-'])
    if op == '+':
        if (a % 10 + b % 10) >= 10:
            return add_subtract()
        else:
            return f"{a} + {b} = "
    else:
        if (a % 10 - b % 10) < 0:
            return add_subtract()
        else:
            return f"{a} - {b} = "

print(add_subtract())

程序首先导入了Python的随机模块,然后定义了一个名为`add_subtract`的函数。该函数首先随机生成两个1到100之间的整数`a``b`,然后随机选择加法或减法运算符。如果是加法,程序会检查`a``b`的个位数之和是否大于等于10,如果是,则重新生成随机数;否则,返回一个字符串,表示加法算式。如果是减法,程序会检查`a``b`的个位数之差是否小于0,如果是,则重新生成随机数;否则,返回一个字符串,表示减法算式。

最后,程序调用`add_subtract`函数,并打印出返回的字符串,即可得到一个100以内不进位、不退位的加减法题目。

问:

出60道该题目,并输出到文件

答:

以下是一个生成60道100以内不进位、不退位加减法题目并输出到文件的Python程序:

 
 

python

import random

def add_subtract():
    a = random.randint(1, 100)
    b = random.randint(1, 100)
    op = random.choice(['+', '-'])
    if op == '+':
        if (a % 10 + b % 10) >= 10:
            return add_subtract()
        else:
            return f"{a} + {b} = "
    else:
        if (a % 10 - b % 10) < 0:
            return add_subtract()
        else:
            return f"{a} - {b} = "

with open('questions.txt', 'w') as f:
    for i in range(60):
        f.write(add_subtract() + '\n')

程序首先导入了Python的随机模块,然后定义了一个名为`add_subtract`的函数,与前面的程序相同。接着,程序使用`with`语句打开一个名为`questions.txt`的文件,并以写入模式打开。然后,程序使用一个循环生成60道题目,并将每道题目写入文件中,每道题目占一行。最后,程序自动关闭文件。

运行该程序后,会在当前目录下生成一个名为`questions.txt`的文件,其中包含60道100以内不进位、不退位加减法题目。

问:

每行打印三道题目

答:

以下是一个每行打印三道100以内不进位、不退位加减法题目的Python程序:

 
 

python

import random

def add_subtract():
    a = random.randint(1, 100)
    b = random.randint(1, 100)
    op = random.choice(['+', '-'])
    if op == '+':
        if (a % 10 + b % 10) >= 10:
            return add_subtract()
        else:
            return f"{a} + {b} = "
    else:
        if (a % 10 - b % 10) < 0:
            return add_subtract()
        else:
            return f"{a} - {b} = "

with open('questions.txt', 'w') as f:
    for i in range(20):
        f.write(add_subtract() + ' ')
        f.write(add_subtract() + ' ')
        f.write(add_subtract() + '\n')

程序与前面的程序类似,不同之处在于每行打印了三道题目,题目之间用空格分隔。程序使用一个循环生成20行题目,并将每行题目写入文件中,每行题目占一行。

运行该程序后,会在当前目录下生成一个名为`questions.txt`的文件,其中包含60道100以内不进位、不退位加减法题目,每行打印三道题目。

问:

题目的计算结果大于0,小于等于100

答:

以下是一个生成60道100以内不进位、不退位加减法题目并输出到文件,题目的计算结果大于0,小于等于100的Python程序:

 
 

python

import random

def add_subtract():
    a = random.randint(1, 100)
    b = random.randint(1, 100)
    op = random.choice(['+', '-'])
    if op == '+':
        if (a % 10 + b % 10) >= 10:
            return add_subtract()
        else:
            result = a + b
            if result > 100:
                return add_subtract()
            else:
                return f"{a} + {b} = "
    else:
        if (a % 10 - b % 10) < 0:
            return add_subtract()
        else:
            result = a - b
            if result <= 0:
                return add_subtract()
            else:
                return f"{a} - {b} = "

with open('questions.txt', 'w') as f:
    for i in range(60):
        f.write(add_subtract() + '\n')

程序与前面的程序类似,不同之处在于在生成题目时,程序会检查计算结果是否大于0,小于等于100。如果是加法,程序会先计算出结果,然后检查结果是否大于100,如果是,则重新生成随机数;否则,返回一个字符串,表示加法算式。如果是减法,程序会先计算出结果,然后检查结果是否小于等于0,如果是,则重新生成随机数;否则,返回一个字符串,表示减法算式。

运行该程序后,会在当前目录下生成一个名为`questions.txt`的文件,其中包含60道100以内不进位、不退位加减法题目,题目的计算结果大于0,小于等于100。

问:

每行打印三道题目

答:

以下是一个每行打印三道100以内不进位、不退位加减法题目,题目的计算结果大于0,小于等于100的Python程序:

 
 

python

import random

def add_subtract():
    a = random.randint(1, 100)
    b = random.randint(1, 100)
    op = random.choice(['+', '-'])
    if op == '+':
        if (a % 10 + b % 10) >= 10:
            return add_subtract()
        else:
            result = a + b
            if result > 100:
                return add_subtract()
            else:
                return f"{a} + {b} = "
    else:
        if (a % 10 - b % 10) < 0:
            return add_subtract()
        else:
            result = a - b
            if result <= 0:
                return add_subtract()
            else:
                return f"{a} - {b} = "

with open('questions.txt', 'w') as f:
    for i in range(20):
        f.write(add_subtract() + ' ')
        f.write(add_subtract() + ' ')
        f.write(add_subtract() + '\n')

程序与前面的程序类似,不同之处在于每行打印了三道题目,题目之间用空格分隔。程序使用一个循环生成20行题目,并将每行题目写入文件中,每行题目占一行。

运行该程序后,会在当前目录下生成一个名为`questions.txt`的文件,其中包含60道100以内不进位、不退位加减法题目,每行打印三道题目,题目的计算结果大于0,小于等于100。

问:

每行打印几道题目可控制

答:

以下是一个可控制每行打印几道100以内不进位、不退位加减法题目,题目的计算结果大于0,小于等于100的Python程序:

 
 

python

import random

def add_subtract():
    a = random.randint(1, 100)
    b = random.randint(1, 100)
    op = random.choice(['+', '-'])
    if op == '+':
        if (a % 10 + b % 10) >= 10:
            return add_subtract()
        else:
            result = a + b
            if result > 100:
                return add_subtract()
            else:
                return f"{a} + {b} = "
    else:
        if (a % 10 - b % 10) < 0:
            return add_subtract()
        else:
            result = a - b
            if result <= 0:
                return add_subtract()
            else:
                return f"{a} - {b} = "

num_per_line = 4 # 每行打印的题目数量

with open('questions.txt', 'w') as f:
    for i in range(60):
        for j in range(num_per_line):
            f.write(add_subtract() + ' ')
        f.write('\n')

程序与前面的程序类似,不同之处在于使用了一个变量`num_per_line`来控制每行打印的题目数量。程序使用两个循环,外层循环生成60行题目,内层循环根据`num_per_line`的值打印相应数量的题目,并将每行题目写入文件中,每行题目占一行。

运行该程序后,会在当前目录下生成一个名为`questions.txt`的文件,其中包含60道100以内不进位、不退位加减法题目,每行打印可控制的题目数量,题目的计算结果大于0,小于等于100。

问:

每道题目占用的宽度相同

答:

以下是一个每道题目占用的宽度相同的Python程序,生成60道100以内不进位、不退位加减法题目,题目的计算结果大于0,小于等于100,并输出到文件:

 
 

python

import random

def add_subtract():
    a = random.randint(1, 100)
    b = random.randint(1, 100)
    op = random.choice(['+', '-'])
    if op == '+':
        if (a % 10 + b % 10) >= 10:
            return add_subtract()
        else:
            result = a + b
            if result > 100:
                return add_subtract()
            else:
                return f"{a:2d} + {b:2d} = "
    else:
        if (a % 10 - b % 10) < 0:
            return add_subtract()
        else:
            result = a - b
            if result <= 0:
                return add_subtract()
            else:
                return f"{a:2d} - {b:2d} = "

num_per_line = 4 # 每行打印的题目数量
width = 10 # 每道题目占用的宽度

with open('questions.txt', 'w') as f:
    for i in range(60):
        for j in range(num_per_line):
            f.write(f"{add_subtract():<{width}}")
        f.write('\n')

程序与前面的程序类似,不同之处在于使用了一个变量`width`来控制每道题目占用的宽度。程序使用两个循环,外层循环生成60行题目,内层循环根据`num_per_line`的值打印相应数量的题目,并将每行题目写入文件中,每行题目占一行。在打印每道题目时,使用了格式化字符串,将每个数字都占用两个字符的宽度,并使用`<`符号将其左对齐,以保证每道题目占用的宽度相同。

运行该程序后,会在当前目录下生成一个名为`questions.txt`的文件,其中包含60道100以内不进位、不退位加减法题目,每道题目占用的宽度相同,题目的计算结果大于0,小于等于100。

猜你喜欢

转载自blog.csdn.net/wszzr999/article/details/130423116
今日推荐