以下是一个简单的实现:

import random

# 运算符列表
operators = ["+", "-", "*", "/"]

# 生成随机整数
def random_integer():
    return str(random.randint(0, 9))

# 生成随机中缀表达式
def random_expression():
    # 随机生成两个操作数
    left = random_integer()
    right = random_integer()
    # 随机生成一个运算符
    op = random.choice(operators)
    # 随机生成括号的位置
    if random.random() < 0.5:
        return "(" + left + op + right + ")"
    else:
        return left + op + right

# 生成含两个以上运算符的中缀表达式
def generate_expression():
    # 随机生成一个操作数
    left = random_integer()
    # 随机生成一个运算符
    op = random.choice(operators)
    # 随机生成一个中缀表达式
    right = random_expression()
    # 随机生成括号的位置
    if random.random() < 0.5:
        return "(" + left + op + right + ")"
    else:
        return left + op + right

# 生成5个中缀表达式
for i in range(5):
    print(random_expression())

输出:

(5-9)
(6+8)
(0-0)
(3/7)
(3+3)

需要注意的是,这个实现中生成的表达式可能会有多余的括号,比如 (3+(4+5))。如果需要去除多余的括号,可以使用逆波兰表达式或者表达式树来处理。

采用Python函数随机生成含两个以上运算符的中缀表达式含括号例如4+5*82

原文地址: https://www.cveoy.top/t/topic/ba3J 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录