1.1 四则运算(project)

本文介绍了如何使用Python实现整数和浮点数的四则运算,包括基本运算、输出格式控制、用户输入处理以及随机出题功能的代码示例。通过逐步提升难度,展示了从基础到复杂场景的编程实践。
摘要由CSDN通过智能技术生成

目录

第1关:整数四则运算

实验目的

相关知识

1.数值运算

2.输出格式控制

实验要求

测试说明

代码

第2关:浮点类型四则运算

任务描述

代码

第3关:用户输入数值和符号

任务描述

测试说明

代码

第4关:随机出题的四则运算

任务描述

测试说明

代码


第1关:整数四则运算

实验目的

编写一个能计算整数四则运算及格式化输出的小程序。

相关知识

1.数值运算

Python 可以方便的实现计算器的功能。数学意义上的加、减、乘、除在 Python 中分别以符号“+-*/”表示。

计算两个非零整数的和差积商:

整数1 + 整数2 = 和 整数1 - 整数2 = 差 整数1 * 整数2 = 积 整数1 / 整数2 = 商

整数四则运算示例:

4 行中按顺序输出两个数的加、减、乘、除的计算结果:

代码示例:

  1. a = 5
  2. b = 10
  3. # 输出计算结果
  4. print(a + b)
  5. print(a - b)
  6. print(a * b)
  7. print(a / b)
2.输出格式控制

输出a + b = c 代码示例 2

  1. a = 5
  2. b = 10
  3. c = a + b # c = 15
  4. # 注意观察下面不同输出方法的结果的区别
  5. # 输出用逗号分隔的多个对象,输出的多个对象间用空格分开
  6. print('a+b=', c) # a+b= 15,等号前有一个空格
  7. # 字符串'a + b ='中的空格原样输出
  8. print('a + b =', c) # a + b = 15,输出两个对象,默认空格分隔
  9. # 用sep可以指定分隔符,消除空格
  10. print('a + b = ', c, sep='') # a + b = 15,用空字符串分隔,消除空格
  11. # 用sep可以指定分隔符,消除空格
  12. print(a, '+', b, '=', c) # a + b = 15,用空字符串分隔,消除空格
  13. # 建议用str.format()方法输出控制格式(推荐)
  14. print('{} + {} = {}'.format(a, b, c)) # 5 + 10 = 15
  15. # 或用f-string方法输出控制格式(强烈推荐)
  16. print(f'{a} + {b} = {c}') # 5 + 10 = 15
  17. # 或用f-string方法输出控制格式(强烈推荐)
  18. print(f'{a} + {b} = {a + b}') # 5 + 10 = 15
  19. # 观察下面语句与前一条的区别
  20. print(f'{a} - {b} = {a - b}') # 5 - 10 = -5

实验要求

根据提示,在右侧编辑器补充代码,完成在两行中输入两个非零整数的四则运算。

测试说明

平台会对你编写的代码进行测试:

测试输入: 1 2

预期输出: 1 + 2 = 3 1 - 2 = -1 1 * 2 = 2 1 / 2 = 0.5

 

代码

"""
试编程实现分两行输入两个非零整数,并在4 行中按顺序输出两个数的加、减、乘、除的计算结果。
要求输出与如下示例格式相同,符号前后各有一个空格。
"""

#输入整数变量a和b,定义输入函数,类型转换
##############Begin##################
a =int(input())
b =int(input())
##############End####################

#a和b之间进行四则运算并输出
##############Begin##################
print(f'{a} + {b} = {a + b}')
print(f'{a} - {b} = {a - b}')
print(f'{a} * {b} = {a * b}')
print(f'{a} / {b} = {a / b}')



第2关:浮点类型四则运算

任务描述

分两行输入两个非零浮点数,并在 4 行中按顺序输出两个数的加、减、乘、除的计算式和计算结果。计算结果用str.format()方法保留小数点后 3位数字。输出格式如下,每个符号前后各保留一个空格。用户输入矩形的长和宽,计算其面积并输出。
  1. 浮点数1 `+` 浮点数2 = 和
  2. 浮点数1 `-` 浮点数2 = 差
  3. 浮点数1 `*` 浮点数2 = 积
  4. 浮点数1 `/` 浮点数2 = 商

代码

'''
试编程实现分两行输入两个非零浮点数,并在4 行中按顺序输出两个数的加、减、乘、除的计算式和计算结果。计算结果str.format()方法保留小数点后3位数字。要求输出与如下示例格式相同,符号前后各有一个空格。
'''

#输入浮点型变量a和b,定义输入函数
#############Begin##############
# 输入第一个浮点数
num1 = float(input())
num2 = float(input())
#############End################

#a和b之间进行四则运算并输出
#############Begin################
addition = num1 + num2
print('{} + {} = {:.3f}'.format(num1, num2, addition))


subtraction = num1 - num2
print('{} - {} = {:.3f}'.format(num1, num2, subtraction))


multiplication = num1 * num2
print('{} * {} = {:.3f}'.format(num1, num2, multiplication))


division = num1 / num2
print('{} / {} = {:.3f}'.format(num1, num2, division))

#############End################

第3关:用户输入数值和符号

任务描述

根据提示,在右侧编辑器补充代码,完善一个根据用户输入的数值和符号进行四则运算的小程序。

测试说明

平台会对你编写的代码进行测试:

测试输入: 请输入一个整数:10 请再输入一个整数:6 请输入运算符号*

预期输出: 10*6=60

代码

a = int(input('请输入一个整数:'))    # 输入字符串'10',转整数10
b = int(input('请再输入一个整数:'))  # 输入字符串'6',转整数6
sign = input('请输入运算符号')
###################Begin##################################
# eval()函数把字符串f"{a}{sign}{b}"转为计算表达式
# 字符串里包含引号时,内部引号与边界应用不同的引号
# 用户输入数值和符号
result = eval(f"{a}{sign}{b}")   # eval()函数把字符串f"{a}{sign}{b}"转为计算表达式
print(f'{a}{sign}{b}={result}')


###################End##################################

第4关:随机出题的四则运算

根据提示,在右侧编辑器补充代码,完善一个能随机出题进行四则运算的小程序。

任务描述

测试说明

平台会对你编写的代码进行测试:

测试输入:

  1. 1
  2. 4
  3. 7

预期输出:

  1. 请输入出题数量:请输入参与计算的最大数字:4+3=恭喜你,回答正确
  2. 答对1题,正确率为100.0%

代码

import random
random.seed(0)
def calculator(n, maximum):
    """随机产生n道正整数四则运算的题目,用户输入计算结果,
    判断输入正确与否,并统计正确率。题目保证减法不出现负数."""
    correct = 0
    for i in range(n):  # 循环n次,每次产生一个新问题
        b = random.randint(0, maximum)  # 随机产生一个maximum以内整数
        a = random.randint(b, maximum)  # 随机产生一个b到maximum以内整数,避免减法出现负数
        sign = random.choice('+-*/')    # 随机获取一个运算符号
        #################Begin##############################
        if sign == '+':
            result = a + b
        elif sign == '-':
            result = a - b
        elif sign == '*':
            result = a * b
        else:
            result = a / b

        # 输出题目并接收用户答案
        print(f'{a}{sign}{b}=',end='')
        user_answer = int(input())

        # 判断用户答案是否正确
        if user_answer == result:
            print('恭喜你,回答正确')
            correct += 1
        else:
            print('回答错误,你要加油哦!')




        #################End##############################
    print(f'答对{correct}题,正确率为{correct / n * 100}%')

if __name__ == '__main__':
    num = int(input('请输入出题数量:'))
    m = int(input('请输入参与计算的最大数字:'))
    calculator(num, m)

开始你的任务吧,祝你成功!

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏随枫散尽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值