50行python代码写个计算器教程

运算符号

数字运算,求和我们使用了加号 (+)运算符,除此外,还有 减号 (-), 乘号 (*), 除号 (/), 地板除 (//) 或 取余 (%)。

input输入

在python中咱们用input来获取用输入的内容,
默认input只能获取文本,想要转换为数字需要用int函数把字符串转换为字符

输出

我们在python3中用print方法输出

tkinter图形界面

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

基础版本

案例展示

图片
计算器简易版.gif
# 打印标题
print("简易计算器")

# 通过用户输入获取运算的第一个数
num1 = int(input("输入第一个数字: "))
# 通过用户输入获取运算的第二个数
# 默认是字符串需要用int把字符转换为数组
num2 = int(input("输入第二个数字: "))

# 提示用户输入运算符
print("输入运算:1、相加;2、相减;3、相乘;4、相除")

# 获取用户输入的运算符号
choice = input("输入你的选择(1/2/3/4):")

# 如果是1
if choice == '1':
   print(num1,"+",num2,"=", num1+num2)
# 如果2
elif choice == '2':
   print(num1,"-",num2,"=", num1-num2) 
elif choice == '3':
   print(num1,"×",num2,"=", num1*num2) 
elif choice == '4':
   print(num1,"÷",num2,"=", num1/num2)
# 其他都是非法的
else:
   print("非法输入")

特别注意:

  1. input提示输入的时候,用户需要在电脑键盘输入数字
  2. 我们通过用int方法把输入的数字转换为真正的数字(默认是像数字的字符)
  3. 根据choice的不同来选择输出不同的内容
  4. 在程序的世界 除用/ ,乘 用* 来表示

极简版本

图片
极简版本
# 获取用户输入的运算式如:5+5
str = input("请输入你的运算式:")

# eval函数把字符串当代码执行
# print 打印输出执行的结果
print(eval(str))

注意:

  1. input获取的内容为文本
  2. eval 可以把任意的字符串当做python执行

如果需要程序一直都运行我们只需要把代码放入while循环就可

while True:
    str = input("请输入你的运算式:")
    print(eval(str))

注意:

  1. True 的T 字母是大写
  2. str与print函数前面有四个空格,或者一个Tab缩进

计算器(有界面)

图片
计算器.gif
# 导入tkineter库
import tkinter

# 获取一个窗口
window = tkinter.Tk()
# 设置标题
window.title('计算器')
# 设置窗口大小
window.geometry('200x200')

# 输入方法
def add(n):
    # 获取到n1文本框的值
    n1 = inp.get()
    # 清空文本框
    inp.delete(0,len(n1))
    # 插入原来的加上新输入参数n
    inp.insert(0,n1+str(n))

# 执行计算方法
def calc():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    # 把文本框的字符串用eval当代码执行一次,再插入到文本框
    inp.insert(0,str(eval(n1)))

# 清空文本框
def clear():
    n1 = inp.get()  
    inp.delete(0,len(n1))

# 删除最后一个字符
def back():
    n1 = inp.get()  
    inp.delete(len(n1)-1,len(n1))

# 计算绝对值
def ab():
    n1 = inp.get()  
    inp.delete(0,len(n1))
    inp.insert(0,str(eval(n1)*-1))

# 设置一个文本框
inp = tkinter.Entry(window, width=25)
# 在第0行,第0个,合并5列
inp.grid(row=0,column=0,columnspan=5)


# 用for循环 创建 123 456 789 9个按钮
for i in range(0,3):
    for j in range(1,4):
      n = j+i*3
      btn=tkinter.Button(window, text=str(j+i*3),width=5, command=lambda n=n:add(n))
      btn.grid(row=i+2,column=j-1)
# 删除按钮(窗口,宽度,文本,执行命令).grid(1行,0列)
tkinter.Button(window,width=5, text="C", command=clear).grid(row=1,column=0)
tkinter.Button(window,width=5, text="←", command=back).grid(row=1,column=1)
tkinter.Button(window,width=5, text="+/-", command=ab).grid(row=1,column=2)

# 删除按钮(窗口,宽度,文本,背景色,文本颜色,执行命令并传入参数).grid(1行,4列)
tkinter.Button(window,width=5, text="+",bg="#f70",fg="#fff",command=lambda:add("+")).grid(row=1,column=4)
tkinter.Button(window,width=5, text="-", bg="#f70",fg="#fff",command=lambda:add("-")).grid(row=2,column=4)
tkinter.Button(window,width=5, text="×",bg="#f70",fg="#fff",command=lambda:add("*")).grid(row=3,column=4)
tkinter.Button(window,width=5, text="÷",bg="#f70",fg="#fff",command=lambda:add("/")).grid(row=4,column=4)
tkinter.Button(window,width=12,text="0", command=lambda:add("0")).grid(row=5,column=0,columnspan=2)
tkinter.Button(window,width=5,text="=", bg="#f70",fg="#fff",command=calc).grid(row=5,column=4)
tkinter.Button(window,width=5, text=".", command=lambda:add(".")).grid(row=5,column=2)

# 进入消息循环
window.mainloop()

注意

  1. eval 把字符串当python代码执行
  2. len() 方法计算字符串长度
  3. inp.get()获取到文本框的值
  4. inp.delete(start,end)删除文本框的字符从start个删除到end个
  5. inp.insert(start,str)插入文本框字符 从start插入str字符

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/88155.html

(0)
guozi's avatarguozi
上一篇 2024年6月3日 下午4:00
下一篇 2024年6月3日 下午4:02

相关推荐

  • php如何配置虚拟主机

    你是否曾经想过如何在网络行业中搭建一个属于自己的网站?随着互联网的发展,虚拟主机已经成为了许多网站搭建的首选。但是,对于大多数人来说,配置虚拟主机似乎还是一件十分复杂的事情。那么,…

    行业资讯 2024年4月11日
    0
  • 如何利用云服务器搭建网站?(详细步骤)

    互联网时代,网站已经成为了企业、个人展示自身实力和形象的重要窗口。而如何搭建一个高效稳定的网站,是每个想要进入网络世界的人都需要了解的问题。云服务器作为当今最流行的服务器类型,其灵…

    行业资讯 2024年4月12日
    0
  • 微软将朝鲜黑客与新的勒索软件相联系

    微软将其追踪的朝鲜黑客组织 Moonstone Sleet 与 FakePenny 勒索软件攻击联系起来,这些攻击导致了数百万美元的赎金要求。 虽然该威胁组织的策略、技术和程序 (…

    2024年5月30日
    0
  • 如何选择适合的2u服务器功率?

    在当今的网络行业,服务器功率的选择越来越受到重视。随着2u服务器的出现,如何选择适合的功率成为了众多网络从业者关注的焦点。不同于传统的1u服务器,2u服务器在体积和功率上都有所不同…

    行业资讯 2024年4月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注