Python骰子程序如何输出完整计算式及结果而非仅显示结果?
解决掷骰子程序输出计算式的方法
核心思路
要输出3+3+5=11这类完整计算式,核心是先保存每一次掷骰子的单独结果,而非直接累加求和。之后用保存的结果拼接成带+的字符串,再关联总和即可。
具体实现方案
Python示例
import random # 获取用户输入 dice_num = int(input("请输入骰子数量(最多6个):")) face_num = int(input("请输入骰子面数:")) # 校验骰子数量上限 if dice_num > 6: print("最多只能输入6个骰子") exit() # 存储单次掷骰结果并计算总和 roll_list = [] total = 0 for _ in range(dice_num): roll = random.randint(1, face_num) roll_list.append(str(roll)) total += roll # 拼接并输出计算式 equation = "+".join(roll_list) + f"={total}" print(equation)
Java示例
import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class DiceRoller { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random(); // 获取用户输入 System.out.print("请输入骰子数量(最多6个):"); int diceNum = scanner.nextInt(); System.out.print("请输入骰子面数:"); int faceNum = scanner.nextInt(); // 校验骰子数量上限 if (diceNum > 6) { System.out.println("最多只能输入6个骰子"); return; } // 存储单次掷骰结果并计算总和 ArrayList<String> rollList = new ArrayList<>(); int total = 0; for (int i = 0; i < diceNum; i++) { int roll = random.nextInt(faceNum) + 1; rollList.add(String.valueOf(roll)); total += roll; } // 拼接并输出计算式 String equation = String.join("+", rollList) + "=" + total; System.out.println(equation); } }
关键注意点
- 必须添加骰子数量校验,确保输入不超过6个的限制
- 把单次掷骰结果转成字符串存储,方便后续用
join方法快速拼接成带+的格式
内容的提问来源于stack exchange,提问作者sabrina
相关产品推荐
相关产品推荐

