查看“︁模块:ExampleMath”︁的源代码
←
模块:ExampleMath
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
管理员
、trusted
您可以查看和复制此页面的源代码。
-- 模块名称:Module:ExampleMath -- 描述:提供各种数学计算功能的Lua模块 -- 作者:示例模块 -- 版本:1.0 local p = {} -- p代表要导出的函数表 -- 内部辅助函数(外部不可直接调用) local function validateNumber(num, paramName) if type(num) ~= 'number' then error(string.format("参数'%s'必须是数字,当前类型是: %s", paramName, type(num)), 2) end return num end -- 计算两个数的和 function p.add(frame) local args = frame.args local a = tonumber(args[1]) or 0 local b = tonumber(args[2]) or 0 return a + b end -- 计算两个数的乘积 function p.multiply(frame) local args = frame.args local a = tonumber(args.a) or tonumber(args[1]) or 1 local b = tonumber(args.b) or tonumber(args[2]) or 1 return a * b end -- 计算平均值 function p.average(frame) local args = frame.args local sum = 0 local count = 0 for key, value in pairs(args) do local num = tonumber(value) if num then sum = sum + num count = count + 1 end end if count == 0 then return "错误:未提供有效数字" end return sum / count end -- 计算阶乘 function p.factorial(frame) local args = frame.args local n = math.floor(tonumber(args[1]) or 0) if n < 0 then return "错误:阶乘不能为负数" elseif n == 0 then return 1 end local result = 1 for i = 1, n do result = result * i end return result end -- 生成数学表格 function p.mathTable(frame) local args = frame.args local start = tonumber(args.start) or 1 local stop = tonumber(args.stop) or 10 local result = '{| class="wikitable"\n' result = result .. '|+ 数学表 (' .. start .. ' 到 ' .. stop .. ')\n' result = result .. '|-\n' result = result .. '! 数字 !! 平方 !! 立方 !! 平方根\n' for i = start, stop do result = result .. '|-\n' result = result .. '| ' .. i .. ' || ' .. (i * i) .. ' || ' .. (i * i * i) .. ' || ' .. string.format("%.2f", math.sqrt(i)) .. '\n' end result = result .. '|}' return result end -- 带有命名参数的计算器 function p.calculator(frame) local args = frame:getParent().args -- 获取父页面的参数 local operation = args.operation or "add" local num1 = tonumber(args.num1) or 0 local num2 = tonumber(args.num2) or 0 local format = args.format or "text" local result if operation == "add" then result = num1 + num2 elseif operation == "subtract" then result = num1 - num2 elseif operation == "multiply" then result = num1 * num2 elseif operation == "divide" then if num2 == 0 then return "错误:除数不能为零" end result = num1 / num2 else return "错误:未知的操作类型" end if format == "html" then return '<div style="border: 1px solid #ccc; padding: 10px; margin: 10px;">' .. '<strong>计算结果:</strong>' .. result .. '</div>' elseif format == "wikitext" then return "'''计算结果:'''" .. result else return "结果: " .. result end end return p -- 必须返回模块函数表
该页面使用的模板:
模块:ExampleMath/doc
(
查看源代码
)
返回
模块:ExampleMath
。
导航菜单
个人工具
创建账号
登录
命名空间
模块
讨论
English
查看
阅读
查看源代码
查看历史
更多
搜索
XX
导航
首页
搜索
异界相关
异界3期装备掉落表
异界2期装备掉落表
时空之门 & 卡勒特指挥部
70史诗 - 武器
兰总远古粉 - 75粉
工具
链入页面
相关更改
页面信息
网页维护
随机页面
最近更改
特殊页面
随机页面
MediaWiki帮助
特殊页面