1. 输出100以内加法题试卷
小姨经常要给她儿子编写练习作业,手动编写速度慢,结果还要人工计算,容易出错不说,效率也很低。使用计算机可以高效出题,自动计算结果,并且没有错误。请编写一个程序,随机出20道100以内加法的计算题,然后输出为不带答案的加法题和带答案的加法题两个部分。如图所示:
示例代码如下:
import random # 因为要随机产生加数 所以肯定要使用到random # 注意: 一般来说我们所说的100以内的加法题是指的结果不超过100 # 这里笔者也硬性规定 加数不能=100 最多为99 # 因为每次进入循环express1和express2都会发生变化 所以要用一个空的字符串每次去拼接不同的表达式 # 这样最后就会把20个表达式都拼接在一起 str1 = "" str2 = "" for i in range(20): # 循环20次 每次生成一道题 num1 = random.randint(0, 99) # 随机产生加数1 num2 = random.randint(0, 99 - num1) # 随机产生加数2 result = num1 + num2 # 结果 # 开始拼接字符串 因为有些加数是有些是2位 有些是1位 所以我们要进行对齐处理 最多2位 不足的以空白填充 num1 = str(num1).ljust(2, " ") num2 = str(num2).ljust(2, " ") # 拼接不带答案的表达式: 74 + 20 = express1 = num1 + " + " + num2 + " = " # 拼接带答案的表达式: 74 + 20 = 94 express2 = num1 + " + " + num2 + " = " + str(result) if i % 2 != 0: str1 += express1 + "\n" str2 += express2 + "\n" else: str1 += express1 + "\t" str2 += express2 + "\t" with open("math.txt", "w", encoding="utf8") as file: file.write(str1) with open("key.txt", "w", encoding="utf8") as file: file.write(str2) print("\033[0;34m20道100以内加法题:") print(str1) print("20道以内加法题(带答案): ") print(str2, end="") print("\033[0m", end="")
2. 输出100以内减法题试卷
根据上面的加法出题程序,请编写一个减法出题程序。随机出20道100以内减法的计算题,计算结果不能出现负数。出题试卷分为不带答案和带答案两个部分,分别输出到屏幕和文件(math.txt和key.txt),如图所示。
示例代码如下:
import random str1 = "" str2 = "" for i in range(20): # 循环20次 每次生成一道题 num1 = random.randint(0, 99) # 随机产生数1 num2 = random.randint(0, 99 - num1) # 随机产生数2 # 因为结果不能出现负数 所以要进行判断 if num1 < num2: num1, num2 = num2, num1 result = num1 - num2 # 被减数num1始终为最大的那个数 num1 = str(num1).ljust(2, " ") num2 = str(num2).ljust(2, " ") express1 = num1 + " - " + num2 + " = " express2 = num1 + " - " + num2 + " = " + str(result).ljust(2, " ") # 这里的结果也进行了左对齐 if i % 2 != 0: str1 += express1 + "\n" str2 += express2 + "\n" else: str1 += express1 + "\t" str2 += express2 + "\t" with open("math.txt", "w", encoding="utf8") as file: file.write(str1) with open("key.txt", "w", encoding="utf8") as file: file.write(str2) print("\033[0;34m20道100以内减法题:") print(str1) print("20道以内减法题(带答案): ") print(str2, end="") print("\033[0m", end="")
3. 输出100以内加减法题试卷
根据以上的加法、减法出题程序,请编写一个`混合加减法出题程序。随机出20道100以内混合加减法的计算题。出题试卷分为不带答案和带答案两个部分,分别输出到屏幕和文件(math.txt和key.txt)。运行效果如图所示。
示例代码如下:
import random str1 = "" str2 = "" for i in range(20): # 循环20次 每次生成一道题 num1 = random.randint(0, 99) # 随机产生数1 num2 = random.randint(0, 99 - num1) # 随机产生数2 symbol = random.choice("+-") # 判断符号是加号 还是减号 if symbol == "+": result = num1 + num2 # 是+号 做加法 else: if num1 < num2: num1, num2 = num2, num1 result = num1 - num2 # 否则做减法 num1 = str(num1).ljust(2, " ") num2 = str(num2).ljust(2, " ") express1 = num1 + " " + symbol + " " + num2 + " = " express2 = num1 + " " + symbol + " " + num2 + " = " + str(result).ljust(2, " ") if i % 2 != 0: str1 += express1 + "\n" str2 += express2 + "\n" else: str1 += express1 + "\t" str2 += express2 + "\t" with open("math.txt", "w", encoding="utf8") as file: file.write(str1) with open("key.txt", "w", encoding="utf8") as file: file.write(str2) print("\033[0;34m20道100以内加减法混合题试卷:") print(str1) print("20道100以内加减法混合题试卷(带答案): ") print(str2, end="") print("\033[0m", end="")
4. 输出乘数100以内的乘法题试卷
请编写一个输出乘数为100以内的乘法题试卷程序。出题数量由用户输入,出题试卷分为不带答案和带答案两个部分,分别输出到屏幕和文件(math.txt和key.txt)。运行效果如图所示。
示例代码如下:
import random str1 = "" str2 = "" num = int(input("请输入需要生成的题目数: 如(30): ").strip()) for i in range(num): # 循环num次 每次生成一道题 num1 = random.randint(0, 99) # 随机产生乘数1 num2 = random.randint(0, 99 - num1) # 随机产生乘数2 result = num1 * num2 # 结果 num1 = str(num1).ljust(2, " ") num2 = str(num2).ljust(2, " ") express1 = num1 + " * " + num2 + " = " express2 = num1 + " * " + num2 + " = " + str(result).ljust(4, " ") # 这里的结果也进行了左对齐 if i % 2 != 0: str1 += express1 + "\n" str2 += express2 + "\n" else: str1 += express1 + "\t" str2 += express2 + "\t" with open("math.txt", "w", encoding="utf8") as file: file.write(str1) with open("key.txt", "w", encoding="utf8") as file: file.write(str2) print(f"\033[0;34m{num}道100以内乘法题试卷:") print(str1) print(f"{num}道100以内乘法题试卷(带答案): ") print(str2, end="") print("\033[0m", end="")
5. 随机输出100以内除法题试卷
请编写一个输出被除数为100以内的除法题试卷程序。题目数量由用户输入,运算结果必须为整数。出题试卷分为不带答案和带答案两个部分,分别输出到屏幕和文件(math.txt和key.txt),运行效果如图所示。
示例代码如下:
import random str1 = "" str2 = "" num = int(input("请输入需要生成的题目数: 如(30): ").strip()) for i in range(num): # 循环num次 每次生成一道题 num1 = random.randint(1, 99) # 随机产生被除数 num2 = random.randint(1, 99 - num1) # 随机产生除数2 注意除数不能为0 # 因为要求最后结果必须是整数 所以要进行判断 if num1 < num2: num1, num2 = num2, num1 # 被除数肯定要比除数大 while num1 % num2 != 0: if num1 < 99: num1 += 1 else: if num2 > 1: num2 -= 1 result = num1 // num2 # 结果 num1 = str(num1).ljust(2, " ") num2 = str(num2).ljust(2, " ") express1 = num1 + " ÷ " + num2 + " = " express2 = num1 + " ÷ " + num2 + " = " + str(result).ljust(2, " ") # 这里的结果也进行了左对齐 if i % 2 != 0: str1 += express1 + "\n" str2 += express2 + "\n" else: str1 += express1 + "\t" str2 += express2 + "\t" with open("math.txt", "w", encoding="utf8") as file: file.write(str1) with open("key.txt", "w", encoding="utf8") as file: file.write(str2) print(f"\033[0;34m{num}道100以内除法题试卷:") print(str1) print(f"{num}道100以内除法题试卷(带答案): ") print(str2, end="") print("\033[0m", end="")
6. 随机输出100以内混合乘除法题
根据以上的乘法、除法出题程序,请编写一个混合乘除法出题程序。题目数量由用户输入,出题试卷分为不带答案和带答案两个部分,分别输出到屏幕和文件(math.txt和key.txt),运行效果如图所示。
示例代码如下:
import random str1 = "" str2 = "" num = int(input("请输入需要生成的题目数: 如(30): ").strip()) for i in range(num): # 循环num次 每次生成一道题 num1 = random.randint(1, 99) # 随机产生数1 num2 = random.randint(1, 99 - num1) # 因为有除数所以都从1开始 symbol = random.choice("*÷") # 判断符号是* 还是÷号 if symbol == "*": result = num1 * num2 # 是*号 做乘法 else: if num1 < num2: num1, num2 = num2, num1 while num1 % num2 != 0: if num1 < 99: num1 += 1 else: if num2 > 1: num2 -= 1 result = num1 // num2 # 否则做除法 num1 = str(num1).ljust(2, " ") num2 = str(num2).ljust(2, " ") express1 = num1 + " " + symbol + " " + num2 + " = " express2 = num1 + " " + symbol + " " + num2 + " = " + str(result).ljust(2, " ") if i % 2 != 0: str1 += express1 + "\n" str2 += express2 + "\n" else: str1 += express1 + "\t" str2 += express2 + "\t" with open("math.txt", "w", encoding="utf8") as file: file.write(str1) with open("key.txt", "w", encoding="utf8") as file: file.write(str2) print("\033[0;34m20道100以内乘除法混合题试卷:") print(str1) print("20道100以内乘除法混合题试卷(带答案): ") print(str2, end="") print("\033[0m", end="")
7. 100以内加减法小测试
在计算机上也可以进行数学计算能力的测试,请编写一个程序,随时出题,随时验证答案。对100以内的加减法随机出题,一题一答,每题20分,答对加5分,答错不记分,总计5道题,共100分。答题结束给出测试分数,具体效果如下图所示。
示例代码如下:
import random print("----------100以内加减法小测试----------\n") score = 0 # 用来记录分数 msg = "当前" for i in range(5): # num1 = random.randint(0, 99) # 随机产生数1 num2 = random.randint(0, 99 - num1) # 随机产生数2 symbol = random.choice("+-") # 判断符号是加号 还是减号 if symbol == "+": result = num1 + num2 # 是+号 做加法 else: if num1 < num2: num1, num2 = num2, num1 result = num1 - num2 # 否则做减法 num1 = str(num1).ljust(2, " ") num2 = str(num2).ljust(2, " ") express1 = num1 + " " + symbol + " " + num2 + " = ?" print(f"第{i + 1}题: {express1}") answer = int(input("请输入你的答案: ").strip()) msg = "最后" if i == 4 else msg if answer == result: score += 5 print(f"你真棒!得5分奖励,{msg}得分:{score}\n") else: print(f"正确答案: {result} 加油! 本次没有得分,{msg}得分: {score}\n")
到此今天的小案例全部结束,小姨再也不用担心宝宝的学习啦,哈哈哈哈~。本次的练习总的来说还是非常简单的,由于笔者写了一天的代码,并且是在半夜完成这篇博文,所以文中可能会出现一些逻辑不严谨或者错误的问题,希望读者可以多多指教与谅解。通过这几天的小案例,读者希望大家能够对Python的基础语法能够有进一步的掌握。最后笔者半夜编写不易,希望大家可以多多支持。
此篇文章转载文,著作权归作者所有,如有侵权联系小编删除
原文地址:https://blog.csdn.net/xw1680/article/details/105336034