用python实现简易计算器

2023-11-03

最近学习了字符串,运算符,条件语句,循环语句,我在想可以用我最近学的东西做什么? 看到运算我就想到了可以做一个简易的计算器.

实现流程

1.定义函数

2.请用户选择运算方法

3.请用户输入要运算的两个数

4.运算出结果

代码实现

定义加减乘除四种函数,在后续的运算中调用这四个函数输出结果.

定义加减乘除四种运算的函数 定义函数要用def 首先定义加法函数add在里面传入参数x,y   返回值X加y 定义subtract减法函数 ,返回值x减y 定义multiply乘法函数,返回值x乘y 定义divide除法函数,返回值x除y.

定义函数:

# 定义函数
def add(x, y):
    """相加"""

    return x + y


def subtract(x, y):
    """相减"""

    return x - y


def multiply(x, y):
    """相乘"""

    return x * y


def divide(x, y):
    """相除"""

    return x / y

创建变量num1,用input函数使用户输入第一个要计算的数字,用int函数将用户输入的值转变成整形. 同样创建变量num2,用input函数使用户输入第二个要计算的数字.

接着用print函数提示用户输入运算运算符.

打印运算 1.相加    2.相减     3.相乘   4.相除

创建变量choice.  用input函数获取用户输入值.

输入值:

print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")

answer = input('是否开始计算(y/n)?')

choice = input("输入你的选择(1/2/3/4):")
        num1 = int(input("输入第一个数字: "))
        num2 = int(input("输入第二个数字: "))

用If条件语句判断用户输入的运算符号.

如果用户输入一,即选择加法运算调用前面定义好的加法函数输出两数相加之合,这里调用加法函数传入参数num1,num2.

如果用户的选择是二,即进行减法运算,调用减法函数,输出两数相减的差.

如果用户选的是三,即进行乘法函数,调用乘法函数输出两数相乘的积.

如果用户选择四则进行除法运算,调用除法函数,输出两数相除的商. 否则打印非法输入.

判断运算:

        if choice == '1':
            print(num1, "+", num2, "=", add(num1, num2))

        elif choice == '2':
            print(num1, "-", num2, "=", subtract(num1, num2))

        elif choice == '3':
            print(num1, "*", num2, "=", multiply(num1, num2))

        elif choice == '4':
            print(num1, "/", num2, "=", divide(num1, num2))

        else:
            print("非法输入,请重新输入")
        print('----------------------------------')
        answer = input('是否继续计算(y/n)?')

全部代码展示:


# 定义函数
def add(x, y):
    """相加"""

    return x + y


def subtract(x, y):
    """相减"""

    return x - y


def multiply(x, y):
    """相乘"""

    return x * y


def divide(x, y):
    """相除"""

    return x / y


# 用户输入
print("选择运算:")
print("1、相加")
print("2、相减")
print("3、相乘")
print("4、相除")

while True:
    answer = input('是否开始计算(y/n)?')
    while answer == 'y':
        choice = input("输入你的选择(1/2/3/4):")
        num1 = int(input("输入第一个数字: "))
        num2 = int(input("输入第二个数字: "))
        if choice == '1':
            print(num1, "+", num2, "=", add(num1, num2))

        elif choice == '2':
            print(num1, "-", num2, "=", subtract(num1, num2))

        elif choice == '3':
            print(num1, "*", num2, "=", multiply(num1, num2))

        elif choice == '4':
            print(num1, "/", num2, "=", divide(num1, num2))

        else:
            print("非法输入,请重新输入")
        print('----------------------------------')
        answer = input('是否继续计算(y/n)?')

    break

运行展示:

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用python实现简易计算器 的相关文章

  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 导入错误:没有名为flask.ext.login的模块

    我的flask login 模块有问题 我已经成功安装了flask login模块 另外 从命令提示符我可以轻松运行此脚本 不会出现错误 Python 2 7 r27 82525 Jul 4 2010 07 43 08 MSC v 1500
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 为什么 csv.DictReader 给我一个无属性错误?

    我的 CSV 文件是 200 Service 我放入解释器的代码是 snav csv DictReader open screennavigation csv delimiter print snav fieldnames 200 for
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • 嵌入式Linux开发: 从0开始编译并启动ARM Linux内核(全志)

    引言 最近看见很多小白不会编译Linux内核 自己瞎折腾走了很多弯路 本文章将会以Orange Pi 香橙派 Zero开发板为例 带您成功编译内核并在板子上启动它 准备 您需要一台Ubuntu PC 版本最好在20 04以上 一个可以用的U
  • TCGA数据库详解

    TCGA The cancer genome atlas 癌症基因组图谱 由 National Cancer Institute NCI 美国国家癌症研究所 和 National Human Genome Research Institut
  • C#位运算示例

    在C 中可以对整型运算对象按位进行逻辑运算 按位进行逻辑运算的意义是 依次取被运算对象的每个位 进行逻辑运算 每个位的逻辑运算结果是结果值的每个位 C 支持的位逻辑运算符如表2 9所示 运算符号 意义 运算对象类型 运算结果类型 对象数 实
  • 即将成为史上最具用户体验的Hexo+GitHub Pages搭建博客的教程(持续更新中)

    前言 网上关于Hexo Github Pages搭建博客的教程很多 但是参阅很多博文 都是表达不够清晰 绕来绕去 基于此 我想以一个初来者的角度写一篇尽可能靠谱的教程 方便大家快速搭建好 大致流程 搭建Node js环境 搭建Git环境 搭
  • c++ 习题(1)

    1 输入一个正整数n 计算下式的和求e的值 保留4位小数 e 1 输入输出示例 Input n 10 e 2 7183 if 1 include stdio h double facabular int n int sum 1 i for
  • 如何在C语言循环里实现多线程,如何用C语言实现多线程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Windows操作系统 C语言实现多线程 include include DWORD APIENTRY ThreadOne LPVOID threadArg printf 线程开始啦 参数是 s
  • 买车注意事项

    YETI 2016创行 车 保险 税 上牌 17 2w 其中裸车15 76w GS4 手动豪华 我的手动豪华117500包上牌 交强险 购置税 全车膜 脚垫 侧蹋 行车记录仪 发动机护板 挡泥板 座套 方向盘套 前两次首保免费 10万公里机
  • Git背后的设计理念

    首先要清楚Git版本管理中提交的概念 通过按行对比 line diff 将有差异的部分作为增量补丁 使用git add添加到暂存区里的每一个文件都会由按行对比得到他们的增量补丁 而使用git commit将暂存区里的所有文件的增量补丁合并起
  • 泛型知识点总结

    目录 泛型的概念 泛型的底层实现 什么是类型擦除 Java编译器具体是如何擦除泛型的 对于泛型的理解 泛型的使用注意点 零散知识点1 泛型的使用注意点 零散知识点2 泛型方法 类型变量的限定 泛型的概念 泛型的底层实现 我们知道 Java有
  • Java项目结构的总体理解

    本文简单记录了一下自己对java项目各个层的理解 清理笔记 hhh 新版编辑器既好用又不好用 哎 第一次发布的序号都被打乱了 参考 作者 码农BookSea 原文链接 DAO层和Service层的究极理解 这波我在大气层 码农BookSea
  • doGet与doPost的区别

    在使用表单提交数据到服务器的时候有两张方式可共选择 一个是post一个是get 可在
  • 公有云和私有云的区别

    在现在云计算大行其道的时候 许多的企业都将自己的数据信息进行云迁移 但是面对种类繁多的云服务 企业应该如何选择适合自己的业务呢 首先我们要了解什么是云计算 云计算有几种模式 各种模式的架构原理 什么是云计算云计算将计算作为一种服务交付给用户
  • 浪潮服务器硬盘阵列怎么做,server - 浪潮服务器RAID阵列配置及OS安装

    1 RAID磁盘阵列配置 1 1RAID含义 磁盘阵列 Redundant Arrays of Independent Disks RAID 有 独立磁盘构成的具有冗余能力的阵列 之意 1 2RAID配置作用 将独立磁盘 组合成容量巨大的磁
  • C++:什么是RAII?

    一 什么是RAII RAll Resource Acquisition ls Initialization 是由c 之父Bjarne Stroustrup提出的 中文翻译为资源获取即初始化 使用局部对象来管理资源的技术称为资源获取即初始化
  • vscode优美的主题

    如何给VS Code更换主题 Mac用户 K 然后 T 会显示出所有的主题列表 按上下键可修改主题 P 在输入框中color theme 然后回车 同样也会进入主题列表 Windows用户 Ctrl Shift P 即可进入主题列表 6款精
  • JavaScript WebGL 帧缓冲区对象

    引子 在看 How I built a wind map with WebGL 的时候 里面用到了 framebuffer 就去查了下资料单独尝试了一下 Origin My GitHub 帧缓冲区对象 WebGL 有一个能力是将渲染结果作为
  • 公司的苹果开发者账号续费问题

    最近公司的开发者账号马上要过期了 因此从来没有接触过这个方面的我主动接受了续费这项任务 不接手不知道 一接手才知道问题很多 现在总结一下 以供大家学习 续费通知 临近到期日一个月以内 苹果会向开发者账号绑定的邮箱发送一条邮件 提醒续费 如下
  • BeagleBone Black 学习网址

    https www digikey com eewiki display linuxonarm BeagleBone Black
  • C++ 泛型编程(三) 模版实参推断

    前文回顾 C 泛型编程 一 基本概念 C 泛型编程 二 函数模版 模版实参推断 类型转换 编译器通常不是对实参进行类型转换 而是生成一个新的模版实例 只有有限的几种类型会进行类型转换 可以将一个非 const 对象的引用或者指针传递给一个
  • 用python实现简易计算器

    最近学习了字符串 运算符 条件语句 循环语句 我在想可以用我最近学的东西做什么 看到运算我就想到了可以做一个简易的计算器 实现流程 1 定义函数 2 请用户选择运算方法 3 请用户输入要运算的两个数 4 运算出结果 代码实现 定义加减乘除四