python入门教程NO.8用python写个存款利息计算器

合集下载

Python编程基础与应用 简单四则运算计算器[3页]

Python编程基础与应用 简单四则运算计算器[3页]

简单四则运算计算器【案例描述】使用面向对象编程思想,编写一个简单的四则运算器。

可以通过数值的输入,进行整数四则运算,并且能够反复运算,直至输入退出信息为止。

【案例分析】1)按要求设计一个计算器类,包含四个运算方法。

2)为了使程序可以反复运算,直到选择退出为止,可以使用while循环语句实现。

3)开始运行时,需要用户输入两个需要计算的数,和输入需要运算的法则。

4)创建一个计算器对象,根据运算的法则调用对象中相应的方法,完成计算任务。

它用到的技术点有以下几方面:定义计算器类,定义类的方法和属性。

通过选择判断结构选择对象对应的方法执行运算。

【实施步骤】新建Python文件“computer.py”,输入以下代码。

class Computer:one=0two=0op=''result=0#构造函数def __init__(self,sone,stwo):self.one=soneself.two=stwo#定义加法def addone(self):result=one+tworeturn result#定义减法def minus(self):result = one - tworeturn result#定义乘法def multiply(self):result = one * tworeturn result#定义除法def division(self):result = one / tworeturn result#实例化类,调用它进行计算print("本程序是一个简易的四则运算计数器.")flag = Truewhile flag:one = int(input("请输入第一个数:"))two = int(input("请输入第二个数:"))operation = input("请输入要执行的四则运算(+-*/):")cp=Computer(one,two)if operation == '+':print(cp.addone())elif operation == '-':print(cp.minus())elif operation == '*' or operation == 'x':print(cp.multiply())elif operation == '/' or operation == '÷':print(cp.division())else:print("输入有误!")while True:Continue = input("是否继续?y/n:")if Continue == 'y':breakelif Continue == 'n':while_condition = Falsebreakelse:print("输入有误,请重新输入!")【调试结果】可以直接在文件夹路径中双击“computer.py”文件,即可调用,输入需要运算的两个数以及运算符号后,程序会自动进行计算,效果如图1所示。

软件代做:利用Python编写一个行业专用的小计算器

软件代做:利用Python编写一个行业专用的小计算器

软件代做:利⽤Python编写⼀个⾏业专⽤的⼩计算器前⾔:本⽂讲述的是如何利⽤python编程制作⼀个适⽤于指定⾏业的计算器,⽅便计算结果,涵盖的知识点由Python编写GUI界⾯程序,利⽤爬⾍采集实时的汇率数据,将Python⽂件打包成可以单独运⾏的exe⽂件。

⾸先,分析我们的需求,编写⼀个适⽤于指定⾏业的计算器,这⾥我们⽤到的计算公式很简单,就是淘宝提供的⾦⽯定价公式,如下图所⽰淘宝定价计算器这⾥可以看到这个计算公式还是蛮简单的,对于Python来说也就是⼀⾏代码的事,那么我们就开始着⼿写代码,⾸先搭建我们的页⾯布局,这⾥我们采⽤的是tkinter,这个框架在画GUI⽅⾯还是很简单⽅便的,⾸先给⼤家展⽰下我的最终布局,如下图所⽰最终样式其实也不是很好看,不过我已经尽我所能去美化了,其实功能很简单,就是⼏个输⼊框,两个按钮,点击计算按钮,获取输⼊框中的值,通过Python代码计算结果,最后将计算结果写⼊指定的输⼊框中,关于tkinter的组件介绍,可以⾃⾏百度,我这⾥就直接上代码了class Application():def __init__(self):super().__init__()self.createUI()def createUI(self):self.ft = tf.Font(family='微软雅⿊', size=18,weight=tf.BOLD)self.ft1 = tf.Font(family='微软雅⿊', size=12)self.fm = tk.Frame(self)bel = bel(self.fm,text="计算结果:",font=self.ft)bel.pack(side=tk.LEFT)self.fm_new1 = tk.Frame(self.fm)bel0 = bel(self.fm_new1,text="⼈民币:",font=self.ft1)bel0.pack(side=tk.LEFT)self.entry0 = tk.Entry(self.fm_new1,font=self.ft1)self.entry0.pack(side=tk.LEFT)bel11 = bel(self.fm_new1,text="美元:",font=self.ft1)bel11.pack(side=tk.LEFT)self.entry11 = tk.Entry(self.fm_new1,font=self.ft1)self.entry11.pack(side=tk.LEFT)self.fm_new1.pack(side=tk.TOP,padx=5, pady=10)self.fm_new2 = tk.Frame(self.fm)bel12 = bel(self.fm_new2,text="新加坡币:",font=self.ft1)bel12.pack(side=tk.LEFT)self.entry12 = tk.Entry(self.fm_new2,font=self.ft1)self.entry12.pack(side=tk.LEFT)bel13 = bel(self.fm_new2,text="⽇元:",font=self.ft1)bel13.pack(side=tk.LEFT)self.entry13 = tk.Entry(self.fm_new2,font=self.ft1)self.entry13.pack(side=tk.LEFT)self.fm_new2.pack(side=tk.TOP,padx=5, pady=10)self.fm.pack(side=tk.TOP,padx=5, pady=10)self.fm1 = tk.Frame(self)bel1 = bel(self.fm1,text="⾦重:",font=self.ft1)bel1.pack(side=tk.LEFT,padx=10, pady=10)self.entry1 = tk.Entry(self.fm1,font=self.ft1)self.entry1.pack(side=tk.LEFT,padx=5, pady=10)bel10 = bel(self.fm1,text="浮动⽐率:",font=self.ft1)bel10.pack(side=tk.LEFT,padx=10, pady=10)self.entry10 = tk.Entry(self.fm1,font=self.ft1)self.entry10.pack(side=tk.LEFT,anchor=tk.W,padx=5, pady=10)self.fm1.pack(side=tk.TOP,padx=5, pady=5)self.fm2 = tk.Frame(self)bel2 = bel(self.fm2,text="⾦价:",font=self.ft1)bel2.pack(side=tk.LEFT,padx=10, pady=10)self.entry2 = tk.Entry(self.fm2,font=self.ft1)self.entry2.pack(side=tk.LEFT,padx=5, pady=10)be3 = bel(self.fm2,text="14K/18K:",font=self.ft1)be3.pack(side=tk.LEFT,padx=10, pady=10)self.entry3 = tk.Entry(self.fm2,font=self.ft1)self.entry3.pack(side=tk.LEFT,padx=5, pady=10)self.fm2.pack(side=tk.TOP,padx=5, pady=5)self.fm3 = tk.Frame(self)bel4 = bel(self.fm3,text="主⽯重:",font=self.ft1)bel4.pack(side=tk.LEFT,padx=10, pady=10)self.entry4 = tk.Entry(self.fm3,font=self.ft1)self.entry4.pack(side=tk.LEFT,padx=5, pady=10)bel5 = bel(self.fm3,text="价格:",font=self.ft1)bel5.pack(side=tk.LEFT,padx=10, pady=10)self.entry5 = tk.Entry(self.fm3,font=self.ft1)self.entry5.pack(side=tk.LEFT,padx=5, pady=10)self.fm3.pack(side=tk.TOP,padx=5, pady=5)self.fm4 = tk.Frame(self)bel6 = bel(self.fm4,text="副⽯重:",font=self.ft1)bel6.pack(side=tk.LEFT,padx=10, pady=10)self.entry6 = tk.Entry(self.fm4,font=self.ft1)self.entry6.pack(side=tk.LEFT,padx=5, pady=10)be7 = bel(self.fm4,text="价格:",font=self.ft1)be7.pack(side=tk.LEFT,padx=10, pady=10)self.entry7 = tk.Entry(self.fm4,font=self.ft1)self.entry7.pack(side=tk.LEFT,padx=5, pady=10)self.fm4.pack(side=tk.TOP,padx=5, pady=5)self.fm5 = tk.Frame(self)bel8 = bel(self.fm5,text="⼯费:",font=self.ft1)bel8.pack(side=tk.LEFT,padx=10, pady=10)self.entry8 = tk.Entry(self.fm5,font=self.ft1)self.entry8.pack(side=tk.LEFT,padx=5, pady=10)be9 = bel(self.fm5,text="设计费:",font=self.ft1)be9.pack(side=tk.LEFT,padx=5, pady=10)self.entry9 = tk.Entry(self.fm5,font=self.ft1)self.entry9.pack(side=tk.LEFT,padx=10, pady=10)self.fm5.pack(side=tk.TOP,padx=5, pady=5)self.fm6 = tk.Frame(self)self.selectButton = tk.Button(self.fm6, text="重置", command=self.selectFile,font=self.ft1)self.selectButton.pack(side=tk.LEFT,padx=10, pady=10)self.startButton = tk.Button(self.fm6, text="计算", command=lambda :self.thread_it(self.startAction),font=self.ft1)self.startButton.pack(side=tk.LEFT,padx=10, pady=10)self.fm6.pack(side=tk.TOP,padx=5, pady=5)self.title("我的计算器")#窗⼝⼤⼩width ,height= 600, 500#窗⼝居中显⽰self.geometry('%dx%d+%d+%d' % (width,height,(self.winfo_screenwidth() - width ) / 2, (self.winfo_screenheight() - height) / 2))#窗⼝最⼤值self.maxsize(600, 500)#窗⼝最⼩值self.minsize(300,200)self.entry0.insert('end',0)self.entry1.insert('end',0)self.entry2.insert('end',0)self.entry3.insert('end',0)self.entry4.insert('end',0)self.entry5.insert('end',0)self.entry6.insert('end',0)self.entry7.insert('end',0)self.entry8.insert('end',150)self.entry9.insert('end',50)self.entry10.insert('end',1.25)self.entry11.insert('end',0)self.entry12.insert('end',0)self.entry13.insert('end',0)说实话这段代码写的很随意,变量命名很随意,因为很多都是重复的东西,这⾥⼤致讲⼀下,⾸先是创建定义⼀个类继承⾃tkinter,这就相当于整个对象就是⼀个窗体了,之后就在这个窗体中进⾏布局,这⾥我们采⽤的是pack布局,说⽩了就是浮动布局,就是按照⼀⾏或者⼀列依次排列组件,这⾥就是利⽤Frame组件⽣成了⼏⾏的布局,然后在每个Frame⾥排列我们的标签和输⼊框,其中包含的⼀些细节就是组件的字体,组件之间的间距之类,完成了布局这⼀步之后,我们需要给按钮绑定事件,就是点击按钮触发什么操作,这⾥我们有两个按钮。

[Python]等额本息房贷计算器

[Python]等额本息房贷计算器

[Python]等额本息房贷计算器等额本息还款法:每⽉⽉供额=〔贷款本⾦×⽉利率×(1+⽉利率)^还款⽉数〕÷〔(1+⽉利率)^还款⽉数-1〕每⽉应还利息=贷款本⾦×⽉利率×〔(1+⽉利率)^还款⽉数-(1+⽉利率)^(还款⽉序号-1)〕÷〔(1+⽉利率)^还款⽉数-1〕每⽉应还本⾦=贷款本⾦×⽉利率×(1+⽉利率)^(还款⽉序号-1)÷〔(1+⽉利率)^还款⽉数-1〕总利息=还款⽉数×每⽉⽉供额-贷款本⾦⽐如贷款200万,年贷款利率4.9%,贷款期限30年根据等额本息,算出每个⽉还贷10614.53,贷款200万,还了182.12万的利息第⼀个⽉还的10614.53中,8166.67还的是利息,2447.87还的是本⾦第⼆⽉还了8156.67的利息,2457.86的本⾦以此类推运⾏结果代码如下def monthlyPayment(principal, year_rate, year_duration):monthly_rate = year_rate / (12 * 100) # convert 4.9 to 0.049 and monthly interest ratemonth_amounts = year_duration * 12# 每⽉⽉供monthly_payment = (principal * monthly_rate * (1 + monthly_rate) ** month_amounts) / ((1 + monthly_rate) ** month_amounts - 1)#总利息total_interest_payable = monthly_payment * month_amounts - principalprint('-----------------------------------')print ('Total interest payable is %.2f ' % total_interest_payable)for i in range (1, month_amounts + 1):#每⽉应还利息monthly_interest_payable = principal * monthly_rate * ((1 + monthly_rate) ** month_amounts - (1 + monthly_rate) ** (i - 1 ))/ ((1 + monthly_rate) ** month_amounts -1) #每⽉应还本⾦monthly_principal_payable = principal * monthly_rate * (1 + monthly_rate) ** (i - 1)/ ((1 + monthly_rate) ** month_amounts -1)#每⽉利息占⽐monthly_interest_percentage = monthly_interest_payable * 100 / monthly_paymentprint('-----------------------------------')print ('%dth monthly payment is : %.2f (Interest: %.2f and Principal: %.2f)' % (i, monthly_payment,monthly_interest_payable,monthly_principal_payable))print('%dth month interest percentage is %.2f %%' % (i,monthly_interest_percentage))returnif__name__ == '__main__':principal = int(input('Please input your loan amounts:'))year_rate = float(input('Please input Year Debt Interest Rate:(such as 4.9,it means 4.9%)'))year_duration = int(input('Please input Debt Year Duration:'))monthlyPayment(principal, year_rate, year_duration)根据等额本息法公式可以计算出每⽉还款,具体每⽉还款⾥⾯,多少是利息,多少是本⾦,除了⽤之前的公式,还可以⽤下⾯的⽅法考虑还是⽤上⾯的例⼦,贷款200万,年贷款利率4.9%,贷款期限30年,等额本息每个⽉需还贷10614.53第⼀个⽉房贷⾥还的利息是2,000,000×(4.9%/12)= 8166.67得出第⼀个房贷还的本⾦是 10614.53 - 8166.67 = 2447.87剩余总本⾦为2,000,000-2447.87 = 1,997,552.13---------------------------------------------------------------------第⼆个⽉房贷需要还的利息为:剩余总本⾦×⽉利息:1,997,552.13 ×(4.9%/12) = 8156.67第⼆个⽉房贷还的本⾦是10614.53 - 8156.67 = 2457.86剩余总本⾦为1,997,552.131-2457.87 = 1,995,094.26----------------------------------------------------------------------第三个⽉房贷需要还的利息为:为剩余总本⾦×⽉利息:1,995,094.26 ×(4.9%/12) = 8146.63第三个⽉房贷还的本⾦是10614.53 - 8146.63 = 2467.89剩余总本⾦为1,995,094.26-2467.89= 1,992,626.37以此类推。

计算器的python代码

计算器的python代码

计算器的python代码摘要:1.计算器的Python 代码概述2.Python 计算器的实现方法3.Python 计算器的具体代码示例4.Python 计算器的应用场景正文:1.计算器的Python 代码概述Python 是一种流行的高级编程语言,以其简洁的语法和强大的功能而闻名。

Python 被广泛用于各种应用程序的开发,包括计算器。

计算器的Python 代码指的是用Python 编写的实现计算器功能的程序代码。

2.Python 计算器的实现方法Python 计算器的实现方法有很多,可以使用Python 的内置函数,也可以使用自定义函数。

Python 计算器可以实现加减乘除等基本运算,也可以实现更复杂的数学运算,如三角函数、对数函数等。

3.Python 计算器的具体代码示例下面是一个简单的Python 计算器的代码示例:```pythondef add(x, y):return x + ydef subtract(x, y):return x - ydef multiply(x, y):return x * ydef divide(x, y):return x / yprint("请选择操作:")print("1.加法")print("2.减法")print("3.乘法")print("4.除法")choice = input("请输入操作对应的数字:")um1 = float(input("请输入第一个数字:"))um2 = float(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("输入错误,请输入正确的操作对应的数字")```4.Python 计算器的应用场景Python 计算器可以应用于各种场景,如在线计算器、编程教学、自动化测试等。

Python之实现一个简易计算器

Python之实现一个简易计算器

Python之实现⼀个简易计算器⾃⼰动⼿写计算器⼀、功能分析 ⽤户输⼊⼀个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式⾥⾯除了包含空格、'+'、'-'、'*'、'/'和括号再⽆其他特殊符号,然后⾃⼰动⼿写代码解析其中的表达式,实现加减乘除,最后得出的结果与真实的计算机所算的结果必须⼀致。

⼆、所需的知识点字符串的处理正则表达式的运⽤函数递归三、程序实现流程分析1. ⽤正则表达式处理字符串,只提取其中的数字和运算符,并转换成列表2. 编写⼀个函数,处理没有括号的基本运算的基本表达式3. 再写⼀个函数递归处理带有括号的函数,先计算最内部括号中的表达式, 然后将最内部的括号替换为计算后的结果, 在递归外部⼀层的,最后返回的就是所需的结果四、具体实现过程1.正则表达式处理⽤户输⼊字符串 这⾥我不会讲正则表达式具体的⽤法,要将的话都可以讲⼀本书了,我只讲本⽂⽤到的正则表达式。

根据需求,我们需要提取出⽤户输⼊字符串中的数字和运算符到⼀个列表中,⽽空格将会被忽略掉,假设⽤户输⼊的表达式是 expression,我们可以写出下⾯的代码:1 2 3 4import reexpression='(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4)'l=re.findall('([\d\.]+|/|-|\+|\*)',expression)print(l) #['100', '+', '40', '*', '5', '/', '2', '-', '3', '*', '2', '*', '2', '/', '4', '+', '9', '*', '3', '+', '4', '-', '4', '-', '4'] ⾸先我们先看⼀下 findall 的⽤法,findall可以匹配所有符合规律的内容,返回包含结果的列表。

计算器的python代码

计算器的python代码

计算器的python代码摘要:1.计算器概述2.Python实现计算器的基本功能3.进阶功能拓展4.代码实例与解释正文:计算器是日常生活中广泛使用的工具,其功能包括加、减、乘、除等基本运算。

随着编程语言的普及,许多人开始用Python编写计算器。

本文将介绍如何用Python实现一个简单的计算器,并对其进行功能拓展。

一、计算器概述计算器作为一种数学工具,其基本功能包括进行加、减、乘、除等运算。

在Python中,我们可以通过编写代码实现这些功能。

二、Python实现计算器的基本功能1.输入与输出我们可以使用Python的input()函数接收用户输入的两个数值,然后使用print()函数输出计算结果。

```pythonum1 = float(input("请输入第一个数字:"))um2 = float(input("请输入第二个数字:"))operation = input("请输入运算符(+、-、*、/):")if operation == "+":result = num1 + num2elif operation == "-":result = num1 - num2elif operation == "*":result = num1 * num2elif operation == "/":result = num1 / num2else:print("无效的运算符")print(f"计算结果为:{result}")```2.运算符重载我们可以为Python的自定义函数添加运算符重载,使得用户可以使用更简洁的方式进行计算。

```pythondef add(x, y):return x + ydef subtract(x, y):return x - ydef multiply(x, y):return x * ydef divide(x, y):if y == 0:return "除数不能为0"return x / yprint(add(3, 4)) # 输出:7print(subtract(10, 5)) # 输出:5print(multiply(2, 3)) # 输出:6print(divide(12, 6)) # 输出:2```三、进阶功能拓展1.支持括号我们可以通过解析输入的运算式,判断是否包含括号,并对其进行优先级处理。

最新存款利息计算器源码程序

最新存款利息计算器源码程序

上传一个个人存款利息计算器的jsp源代码,经过调试可以正常使用了,php的空间即可。

界面如下,网络预览百度搜索。

尊重知识版权,请勿随便转载,请注明出处。

附录2 个人存款计算器 jsp源代码<%@page language="java"pageEncoding="GBK"%><!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title>个人存款计算器</title><link href="../Styles/styles.css;pvf21b76d3545dc298"rel="Stylesheet" type="text/css"/><script language="javascript">function perSaving(){var amount=document.per_form.amountTextBox.valuevar yrate=document.per_form.yRateTextBox.valuevar term=document.per_form.termTextBox.valueif (amount==""){ alert("请输入存款金额!")document.per_form.amountTextBox.focus()window.event.returnValue = false;return}if (yrate==""){alert("请输入年利率或选择期限种类!")document.per_form.yRateTextBox.focus()window.event.returnValue = false;return}if (term==""){alert("请输入存期!")document.per_form.termTextBox.focus()window.event.returnValue = false;return}if(isNaN(amount)){alert("请输入数字!")document.per_form.amountTextBox.focus()window.event.returnValue = false;return}if(isNaN(yrate)){alert("请输入数字!")document.per_form.yRateTextBox.focus()window.event.returnValue = false;return}if(isNaN(term)){alert("请输入数字!")document.per_form.termTextBox.focus()window.event.returnValue = false;return}var taxrate=0.00;var interest=amount*yrate*term*0.01/12var tax=taxrate*amount*yrate*term*0.01/12var result=amount*(1+(1-taxrate)*yrate*term*0.01/12)interest=Math.round(interest*100)interest=interest/100interest=interest+""document.per_form.interestTextBox.value=interesttax=Math.round(tax*100)tax=tax/100tax=tax+""document.per_form.taxTextBox.value=taxresult=Math.round(result*100)result=result/100result=result+""document.per_form.resultTextBox.value=resultwindow.event.returnValue = false;}</script><script language="javascript">function checkTerm(){var during=document.per_form.duringDropDownlist.valuevar currencyDropDownList=document.per_form.currencyDropDownList.valueif(currencyDropDownList=="人民币"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.5000";}if(during=="通知存款一天"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.9500"; }if(during=="通知存款七天"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="1.4900"; }if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="3.1000"; }if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="3.3000"; }if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="3.5000"; }if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="4.4000"; }if(during=="整存整取三年"){document.per_form.termTextBox.value ="36";document.per_form.yRateTextBox.value="5.0000"; }if(during=="整存整取五年"){document.per_form.termTextBox.value ="60";document.per_form.yRateTextBox.value="5.5000"; }if(during=="零存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="3.1000"; }if(during=="零存整取三年"){document.per_form.termTextBox.value ="36";document.per_form.yRateTextBox.value="3.3000"; }if(during=="零存整取五年"){document.per_form.termTextBox.value ="60";document.per_form.yRateTextBox.value="3.5000"; }if(during=="整存零取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="3.1000"; }if(during=="整存零取三年"){document.per_form.termTextBox.value ="36";document.per_form.yRateTextBox.value="3.3000"; }if(during=="整存零取五年"){document.per_form.termTextBox.value ="60";document.per_form.yRateTextBox.value="3.5000"; }if(during=="零存零取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="3.1000";}if(during=="零存零取三年"){document.per_form.termTextBox.value ="36";document.per_form.yRateTextBox.value="3.3000";}if(during=="零存零取五年"){document.per_form.termTextBox.value ="60";document.per_form.yRateTextBox.value="3.5000";}if(during=="存本取息一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="3.1000";}if(during=="存本取息三年"){document.per_form.termTextBox.value ="36";document.per_form.yRateTextBox.value="3.3000";}if(during=="存本取息五年"){document.per_form.termTextBox.value ="60";document.per_form.yRateTextBox.value="3.5000";}}if(currencyDropDownList=="美元"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.1000";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.2500";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="0.5000";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="0.7500";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="1.2500";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="1.2500";}}if(currencyDropDownList=="英镑"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.1250";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.2180";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="0.8050";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="0.9760";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="1.0760";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="1.0760";}}if(currencyDropDownList=="欧元"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.1000";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.7500";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="1.0000";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="1.1250";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="1.2500";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="1.3125";}}if(currencyDropDownList=="日元"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.0001";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="0.0100";}}if(currencyDropDownList=="港币"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.0200";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.1500";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="0.4000";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="0.5000";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="0.8000";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="1.1000";}}if(currencyDropDownList=="加拿大元"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.0400";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.2165";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="0.3915";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="0.5100";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="0.7315";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="0.7315";}}if(currencyDropDownList=="瑞士法郎"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.0001";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="0.0100";}}if(currencyDropDownList=="澳大利亚元"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.2375";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="1.2400";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="1.3875";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="1.5075";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="1.5750";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="1.5750";}}if(currencyDropDownList=="新加坡元"){if(during=="活期"){document.per_form.termTextBox.value ="";document.per_form.yRateTextBox.value="0.0001";}if(during=="整存整取一个月"){document.per_form.termTextBox.value ="01";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取三个月"){document.per_form.termTextBox.value ="03";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取半年"){document.per_form.termTextBox.value ="06";document.per_form.yRateTextBox.value="0.7500";}if(during=="整存整取一年"){document.per_form.termTextBox.value ="12";document.per_form.yRateTextBox.value="0.0100";}if(during=="整存整取二年"){document.per_form.termTextBox.value ="24";document.per_form.yRateTextBox.value="0.0100";}}}</script></head><body><form name="per_form"method="post"action="xxx_check.jsp"id="per_form"><div><table class="black"cellSpacing="0"cellPadding="0"width="723" border="0"><tr><td vAlign="top"height="366"><table cellSpacing="0"cellPadding="0"width="100%"align="middle"borderColorDark="#ffffff"borderColorLight="#cccccc"border="1"><tr bgColor="#e0e0e0"><td colSpan="4"height="30"><div class="20"align="center"><font color="#cc0000"><strong>个人存款计算器</strong></font></div></td></tr><tr><td align="center"valign="top"><br><table cellSpacing="0"bgColor="#ffffff"borderColorDark="#ffffff"cellPadding="3"width="80%"borderColorLight="darkgray"border="1"><tr><td align="right"><span class="content">币种</span></td><td align="left"><select name="currencyDropDownList" onchange="on_currencyDropDownList_selected()"id="currencyDropDownList"> <option selected="selected"value="人民币">人民币</option><option value="美元">美元</option><option value="英镑">英镑</option><option value="欧元">欧元</option><option value="日元">日元</option><option value="港币">港币</option><option value="加拿大元">加拿大元</option><option value="瑞士法郎">瑞士法郎</option><option value="澳大利亚元">澳大利亚元</option><option value="新加坡元">新加坡元</option></select></td></tr><tr><td align="right"><span class="content">期限种类</span></td><td align="left"><select name="duringDropDownlist" onchange="javascript:checkTerm();"id="duringDropDownlist"> <option selected="selected"value="请选择期限种类">请选择期限种类</option> <option value="活期">活期</option><option value="通知存款一天">通知存款一天</option><option value="通知存款七天">通知存款七天</option><option value="整存整取三个月">整存整取三个月</option><option value="整存整取半年">整存整取半年</option><option value="整存整取一年">整存整取一年</option><option value="整存整取二年">整存整取二年</option><option value="整存整取三年">整存整取三年</option><option value="整存整取五年">整存整取五年</option><option value="零存整取一年">零存整取一年</option><option value="零存整取三年">零存整取三年</option><option value="零存整取五年">零存整取五年</option><option value="整存零取一年">整存零取一年</option><option value="整存零取三年">整存零取三年</option><option value="整存零取五年">整存零取五年</option><option value="存本取息一年">存本取息一年</option><option value="存本取息三年">存本取息三年</option><option value="存本取息五年">存本取息五年</option></select></td></tr><tr><td align="right"><span class="content">存款金额</span></td><td align="left"><input name="amountTextBox"type="text"id="amountTextBox"style="width:130px;"/><spanclass="content">元</span></td></tr><tr><td align="right"><span class="content">年利率</span></td><td align="left"><input name="yRateTextBox"type="text"id="yRateTextBox"style="color:#404040;width:130px;"/><span class="content">(%)</span></td></tr><tr><td align="right"><span class="content">存期</span></td><td align="left"><input name="termTextBox"type="text"id="termTextBox"style="width:130px;"/><span class="content">月</span></td></tr><tr bgColor="#e0e0e0"><td align="right"><span class="content">利息</span></td><td align="left"><input name="interestTextBox"type="text"readonly="readonly"id="interestTextBox"style="width:130px;" /><span class="content">元</span></td></tr><tr bgColor="#e0e0e0"><td align="right"><span class="content">扣除利息税</span></td><td align="left"><input name="taxTextBox"type="text"readonly="readonly"id="taxTextBox"style="width:130px;"/><span class="content">元</span></td></tr><tr bgColor="#e0e0e0"><td align="right"><span class="content">本息合计(税后)</span></td><td align="left"><input name="resultTextBox"type="text"readonly="readonly"id="resultTextBox"style="width:130px;" /><span class="content">元</span><input type="image"name="calculateImageButton" id="calculateImageButton"src="../images/calculator_button.gif"alt="计算"align="bottom"onclick="javascript:perSaving();"style="height:21px;border-width:0px;"/></td></tr></table><br></td></tr></table></td></tr></table><P></P></div></form><script type="text/javascript"><!--var data = {};data['人民币'] = ['活期','通知存款一天','通知存款七天', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年', '整存整取三年', '整存整取五年', '零存整取一年', '零存整取三年', '零存整取五年','整存零取一年', '整存零取三年', '整存零取五年', '存本取息一年', '存本取息三年', '存本取息五年' ];data['美元'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['英镑'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['欧元'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['日元'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['港币'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['加拿大元'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['瑞士法郎'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['澳大利亚元'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];data['新加坡元'] = ['活期', '整存整取一个月', '整存整取三个月','整存整取半年','整存整取一年','整存整取二年'];var currencyDropDownList=document.getElementById('currencyDropDownList');var duringDropDownlist = document.getElementById('duringDropDownlist'); function on_currencyDropDownList_selected(){var children = data[currencyDropDownList.value];duringDropDownlist.innerHTML = '';var str = '';for(var i in children){var c = children[i];var opt = document.createElement("option");opt.value = c;opt.innerHTML = c;duringDropDownlist.appendChild(opt);}}//--></script></body></html>。

Python实现简单的四则运算计算器

Python实现简单的四则运算计算器

Python实现简单的四则运算计算器⼀、算法1、算法的主要思想就是将⼀个中缀表达式(Infix expression)转换成便于处理的后缀表达式(Postfix expression),然后借助于栈这个简单的数据结构,计算出表达式的结果。

2、关于如何讲普通的表达式转换成后缀表达式,以及如何处理后缀表达式并计算出结果的具体算法描述不在此叙述了,书上有详细的说明。

⼆、简易计算器使⽤说明使⽤该计算器类的简单⽰例如下:# usagec = Calculator()print('result: {:f}'.formart(c.get_result('1.11+2.22-3.33*4.44/5.55')))# output:result: 0.666000测试案例为了对这个计算器进⾏有效地检验,设计了⼏组测试案例,测试结果如下:Test No.1: (1.11) = 1.110000Test No.2: 1.11+2.22-3.33*4.44/5.55 = 0.666000Test No.3: 1.11+(2.22-3.33)*4.44/5.55 = 0.222000Test No.4: 1.11+(2.22-3.33)*(4.44+5.55)/6.66 = -0.555000Test No.5: 1.11*((2.22-3.33)*(4.44+5.55))/(6.66+7.77) = -0.852992Test No.6: (1.11+2.22)*(3.33+4.44)/5.55*6.66 = 31.048920Test No.7: (1.11-2.22)/(3.33+4.44)/5.55*(6.66+7.77)/(8.88) = -0.041828Test No.8: Error: (1.11+2.22)*(3.33+4.44: missing ")", please check your expressionTest No.9: Error: (1.11+2.22)*3.33/0+(34-45): divisor cannot be zeroTest No.10: Error: 12+89^7: invalid character: ^实现代码栈的实现栈实际上就是⼀个被限制操作的表,所有的操作只能在栈的顶端(⼊栈、出栈等),以下是使⽤Python代码实现的简单的栈:class Stack(object):"""The structure of a Stack.The user don't have to know the definition."""def __init__(self):self.__container = list()def __is_empty(self):"""Test if the stack is empty or not:return: True or False"""return len(self.__container) == 0def push(self, element):"""Add a new element to the stack:param element: the element you want to add:return: None"""self.__container.append(element)def top(self):"""Get the top element of the stack:return: top element"""if self.__is_empty():return Nonereturn self.__container[-1]def pop(self):"""Remove the top element of the stack:return: None or the top element of the stack"""return None if self.__is_empty() else self.__container.pop()def clear(self):"""We'll make an empty stack:return: self"""self.__container.clear()return self计算器类的实现在计算器类中,我们将表达式的合法性验证单独放在⼀个函数中完成,但是实际上如果需要,也可以直接放在中缀表达式转后缀表达式的函数中实现,这样只需要⼀次遍历表达式即可同时完成验证和转换⼯作。

用python实现一个简单计算器(完整DEMO)

用python实现一个简单计算器(完整DEMO)

⽤python实现⼀个简单计算器(完整DEMO)⼀、功能⽬标⽤户输⼊⼀个类似 1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2)) 这样的表达式,假设表达式⾥⾯除了包含空格、'+'、'-'、'*'、'/'和括号再⽆其他特殊符号,然后⾃⼰动⼿写代码解析其中的表达式,实现加减乘除,最后得出的结果与真实的计算机所算的结果必须⼀致。

⼆、解题思路1、为了分开运算符和数字,因此把输⼊的字符串格式转换为列表的格式进⾏处理,这样⼦就可以按位进⾏处理了2、实现功能的核⼼点在于括号、乘除、加减的优先级排序,因此我们先想办法⼀层⼀层的去括号,即从最⾥层的括号开始计算,然后去掉第⼀层括号,然后⼀直继续这个过程,最后得到⼀个没有括号的列表,再进⾏计算得出结果3、去括号⽅式:最内层的括号内的表达式就可以当做⼀个⽆括号表达式,通过先运算出乘除,再运算出加减得出整个括号内的值,⽤这个结果值整体替换括号内的内容即实现了去⼀层括号,然后通过递归去除所有的括号4、去除乘除号⽅式:见 remove_multiplication_division(eq) 函数部分5、去除加减号⽅式:见 remove_plus_minus(eq) 函数部分三、函数说明1、主函数def caculator(eq):format_list = eq_format(eq) # 把字符串变成格式化列表形式s_eq = simplify(format_list) # 去括号,得到⽆括号的⼀个格式化列表ans = calculate(s_eq) # 计算最终结果if len(ans) == 2: # 判断最终结果为正数还是负数ans = -float(ans[1])else:ans = float(ans[0])return ans2、eq_format( )函数def eq_format(eq):''':param eq: 输⼊的算式字符串:return: 格式化以后的列表,如['60','+','7','*','8']'''format_list = re.findall('[\d\.]+|\(|\+|\-|\*|\/|\)',eq)return format_list2.1 这个函数的作⽤是把输⼊的算式通过re模块,⽤正则表达式把算术符号和数字分开。

Python入门教程超详细1小时学会Python

Python入门教程超详细1小时学会Python

实用标准Python 入门教程超详细1小时学会Python为什么使用Python假设我们有这么一项任务: 简单测试局域网中的电脑是否连通. 这些电脑的ip 范围从192.168.0.101 到 192.168.0.200.思路 : 用 shell编程.(Linux通常是bash而Windows是批处理脚本). 例如 , 在 Windo ws 上用 ping ip的命令依次测试各个机器并得到控制台输出. 由于 ping 通的时候控制台文本通常是 "Reply from ... "而不通的时候文本是"time out ... " ,所以,在结果中进行字符串查找 , 即可知道该机器是否连通.实现 :Java 代码如下 :String cmd="cmd.exe ping";String ipprefix="192.168.10.";int begin=101;int end=200;Process p=null ;for ( int i=begin;i<end;i++){p= Runtime.getRuntime().exec(cmd+i);String line= null ;BufferedReader reader= new BufferedReader( new InputStreamReader(p.getInputStream()));while ((line= reader.readLine())!= null ){//Handling line, may logs it.}reader.close();p.destroy();}这段代码运行得很好, 问题是为了运行这段代码, 你还需要做一些额外的工作. 这些额外的工作包括:1.编写一个类文件2.编写一个 main 方法3.将之编译成字节代码4. 由于字节代码不能直接运行, 你需要再写个小小的bat 或者 bash 脚本来运行 .当然 , 用 C/C++同样能完成这项工作. 但 C/C++不是跨平台语言. 在这个足够简单的例子中也许看不出C/C++和 Java 实现的区别 , 但在一些更为复杂的场景, 比如要将连通与否的信息记录到网络数据库. 由于 Linux 和 Windows的网络接口实现方式不同, 你不得不写两个函数的版本 . 用 Java 就没有这样的顾虑.同样的工作用Python 实现如下 :import subprocesscmd="cmd.exe"begin=101end=200while begin<end:p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)p.stdin.write("ping192.168.1."+str(begin)+"\n")p.stdin.close()p.wait()print"execution result:%s"%p.stdout.read()对比 Java,Python的实现更为简洁, 你编写的时间更快. 你不需要写main 函数 , 并且这个程序保存之后可以直接运行. 另外 , 和 Java 一样 ,Python也是跨平台的.有经验的C/Java 程序员可能会争论说用C/Java 写会比 Python 写得快 . 这个观点见仁见智 . 我的想法是当你同时掌握Java 和 Python 之后 , 你会发现用Python 写这类程序的速度会比 Java 快上许多 . 例如操作本地文件时你仅需要一行代码而不需要Java 的许多流包装类.各种语言有其天然的适合的应用范围 . 用 Python 处理一些简短程序类似与操作系统的交互编程工作最省时省力 .Python 应用场合足够简单的任务, 例如一些 shell编程.如果你喜欢用Python 设计大型商业网站或者设计复杂的游戏, 悉听尊便 .2快速入门2.1 Hello world安装完 Python 之后 ( 我本机的版本是 2.5.4),打开IDLE(Python GUI) ,该程序是Python 语言解释器 , 你写的语句能够立即运行. 我们写下一句著名的程序语句:print"Hello,world!"并按回车 . 你就能看到这句被K&R引入到程序世界的名言.在解释器中选择"File"--"New Window"或快捷键Ctrl+N ,打开一个新的编辑器.写下如下语句 :print"Hello,world!"raw_input("Press enter key to close this window");保存为 a.py 文件 . 按 F5, 你就可以看到程序的运行结果了. 这是 Python 的第二种运行方式 .找到你保存的 a.py 文件 , 双击 . 也可以看到程序结果.Python的程序能够直接运行,对比 Java, 这是一个优势.2.2国际化支持我们换一种方式来问候世界. 新建一个编辑器并写如下代码:print" 欢迎来到奥运中国!"raw_input("Press enter key to close this window");在你保存代码的时候,Python会提示你是否改变文件的字符集, 结果如下 :# -*- coding: cp936 -*-print" 欢迎来到奥运中国!"raw_input("Press enter key to close this window");将该字符集改为我们更熟悉的形式:# -*- coding: GBK -*-print" 欢迎来到奥运中国!" #使用中文的例子raw_input("Press enter key to close this window");程序一样运行良好.2.3方便易用的计算器用微软附带的计算器来计数实在太麻烦了. 打开 Python 解释器 , 直接进行计算 :a=100.0b=201.1c=2343print(a+b+c)/c2.4字符串,ASCII和UNICODE可以如下打印出预定义输出格式的字符串:print"""Usage: thingy[OPTIONS]-h Display this usage m essage -H hostname Hostname to connect to"""字符串是怎么访问的?请看这个例子:word="abcdefg"a=word[2]print"a is:"+ab=word[1:3]print"b is:"+b # index 1 and 2 elements of word.c=word[:2]print"c is:"+c # index0 and 1 elements of word.d=word[0:]print"d is:"+d # All elements of word.e=word[:2]+word[2:]print"e is:"+e # All elements of word.f=word[-1]print"f is:"+f# The last elements of word.g=word[-4:-2]print"g is:"+g # index 3 and 4 elements of word.h=word[-2:]print"h is:"+h # The last two elements.i=word[:-2]print"i is:"+i# Everything except the last two characters l=len(word)print"Length of word is:"+ str(l)请注意 ASCII 和 UNICODE字符串的区别 :print"Input your Chinese name:"s=raw_input("Press enter to be continued");print"Your name is:"+s;l=len(s)print"Length of your Chinese name in asc codes is:"+str(l);a=unicode(s,"GBK")l=len(a)print"I'm sorry we should use unicode char!Characters number of your Chinese \ name in unicode is :"+str(l);2.5使用List类似 Java 里的 List,这是一种方便易用的数据类型:word=['a','b','c','d','e','f','g']a=word[2]print"a is:"+ab=word[1:3]print"b is:"print b # index 1 and 2 elements of word.c=word[:2]print"c is:"print c # index0 and 1 elements of word.d=word[0:]print"d is:"print d # All elements of word.e=word[:2]+word[2:]print"e is:"print e# All elements of word.f=word[-1]print"f is:"print f#The last elements of word.g=word[-4:-2]print"g is:"print g#index3and4elements of word.h=word[-2:]print"h is:"print h#The last two elements.i=word[:-2]print"i is:"print i#Everything except the last two characters l=len(word)print"Length of word is:"+ str(l)print"Adds new element"word.append('h')print word2.6条件和循环语句# Multi-way decisionx=int (raw_input("Please enter an integer:"))if x<0:x=0print"Negative changed to zero"elif x==0:else :print"More"#Loops Lista = ['cat','window','defenestrate']for x in a:print x, len(x)2.7如何定义函数#Define and invoke function.def sum(a,b):return a+bfunc= sumr=func(5,6)print r#Defines function with default argument def add(a,b=2):return a+br=add(1)print rr=add(1,5)print r并且 , 介绍一个方便好用的函数:# The range()functiona =range(5,10)print aa = range(-2,-7)print aa = range(-7,-2)print aa = range(-2,-11,-3)# The 3rd parameter stands for stepprint a2.8文件I/Ospath="D:/download/baa.txt"f=open(spath,"w")#Opens file for writing.Creates this file doesn't exist.f.write("First line 1.\n")f.writelines("First line 2.")f.close()f=open(spath,"r")#Opens file for readingfor line in f:print linef.close()2.9异常处理s=raw_input("Input your age:")if s=="":raise Exception("Input must no be empty.")try :i= int (s)except ValueError:print"Could not convert data to an integer."except:print"Unknown exception!"else : # It is useful for code that must be executed if the try clause does n ot raise an exceptionprint"You are %d" % i,"years old"finally : # Clean up actionprint"Goodbye!"2.10类和继承class Base:def __init__(self):self.data=[]def add(self,x):self.data.append(x)def addtwice(self,x):self.add(x)self.add(x)# Child extends Baseclass Child(Base):def plus(self,a,b):return a+boChild=Child()oChild.add("str1")print oChild.dataprint oChild.plus(2,3)2.11包机制每一个 .py 文件称为一个module,module之间可以互相导入. 请参看以下例子:# a.pydef add_func(a,b):return a+b# b.pyfrom a import add_func# Also can be : import aprint"Import add_func from module a"print"Result of 1plus2is:"print add_func(1,2)#If using"import a" ,then here should be "a.add_fun c"module 可以定义在包里面.Python定义包的方式稍微有点古怪, 假设我们有一个 par ent文件夹 , 该文件夹有一个child子文件夹 .child中有一个 module a.py .如何让 Pytho n 知道这个文件层次结构?很简单 , 每个目录都放一个名为_init_.py的文件 . 该文件内容可以为空 . 这个层次结构如下所示:parent--__init_.py--child--__init_.py--a.pyb.py那么 Python 如何找到我们定义的module?在标准包 sys 中,path属性记录了Python 的包路径 . 你可以将之打印出来:import sysprint sys.path通常我们可以将module 的包路径放到环境变量PYTHONPATH中, 该环境变量会自动添加到 sys.path属性.另一种方便的方法是编程中直接指定我们的module 路径到 sys.path 中:import syssys.path.append('D:\\download')from parent.child.a import add_funcprint sys.pathprint"Import add_func from module a"print"Result of 1 plus 2is:"print add_func(1,2)总结你会发现这个教程相当的简单. 许多Python特性在代码中以隐含方式提出, 这些特性包括 :Python不需要显式声明数据类型, 关键字说明 , 字符串函数的解释等等. 我认为一个熟练的程序员应该对这些概念相当了解, 这样在你挤出宝贵的一小时阅读这篇短短的教程之后, 你能够通过已有知识的迁移类比尽快熟悉Python, 然后尽快能用它开始编程.当然 ,1 小时学会 Python 颇有哗众取宠之嫌. 确切的说 , 编程语言包括语法和标准库.语法相当于武术招式, 而标准库应用实践经验则类似于内功, 需要长期锻炼.Python学习了原因 ), 在开篇我们看到了 Python 如何调用 Windows cmd的例子 , 以后我会尽量写上各标准库的用法和一些应用技巧 , 让大家真正掌握 Python.但不管怎样 , 至少你现在会用Python代替繁琐的批处理写程序了. 希望那些真的能在一小时内读完本文并开始使用Python 的程序员会喜欢这篇小文章, 谢谢 !。

第1单元 一个万能计算器-Python开发案例教程-张基温-清华大学出版社

第1单元 一个万能计算器-Python开发案例教程-张基温-清华大学出版社
返 回
1.1.2 回显与print()
• 在交互模式下,键入一个表达式,就会返 回该表达式的值,是不需要使用输出指令 的输出操作。严格地说,这种“输出”称 为“回显”(echo)。回显使用简便,但 往往会受某些限制。在正式情况下, Python输出使用的输出指令是内置函数 print()。
返 回
1.1.2 回显与print()
返 回
1.1.3 Python表达式计算规则
• 在一般程序设计语言中,表达式的计算规则 由一下3条决定。
(1)优先级(precedence)不同时,高优先级 的操作符先与数据对象结合。 (2)优先级相同时,按照结合性(associativity) 进行。 (3)利用圆括号分组可以超越Python的优先级 规则。 • 算术表达式是对象、变量和算术操作符的有
结合 方向 右先
左先
返 回
1.1 简单算术计算
说明:
(1)注意Python中的算术操作符与普通数学中的算术 操作符有所不同,例如用“*”表示乘。
(2)在Python3中,有两种除法:真除(/)和floor (地板)除(//)。
真除也称浮点除,即无论是对两个整数相除,还是对 对带小数的数相除,结果都要保持小数部分。
>>> 3,5,8 (3, 5, 8) >>> print(3,5,8) 358
可以看出:回显与print()的输出在多数情况
下略有差别,但基本一致。但在后面将会看 到用print()可以进行输出格式控制,而回显 无法实现这个功能。
返 回
1.1.3 Python表达式计算规则
• 表达式是对象、变量和操作符按照一定规 则的排列,目的是求值。在一个表达式中, 可能不包含操作符,也可能包含一个操作 符或包含多个操作符。当一个表达式中包 含有多个操作符时,就有一个那个操作符 先与数据对象结合的问题。这就称为表达 式的计算规则。

计算存款复利的python代码

计算存款复利的python代码

计算存款复利的python代码下面是计算存款复利的Python代码,其中需要输入本金、年利率、存款时间等参数。

pythonCopy code
# 定义计算复利函数def compound_interest(principal, rate, time): result = principal * (1 + rate)**time return result # 输入本金、年利率和存款时间 principal = float(input("请输入本金:")) rate = float(input("请输入年利率:")) time = float(input("请输入存款时间(年):")) # 调用复利函数,计算复利金额compound_interest_amount = compound_interest(principal, rate, time) # 输出复利金额print("在", time, "年后,以", rate*100, "% 的年利率,本金为", principal, "元的存款复利后的总金额为:", round(compound_interest_amount, 2), "元。

")
其中,input() 函数用于接收用户输入的数据,float() 函数将用户输入的字符串转换成浮点数类型。

round() 函数用于对复利金额保留两位小数。

1。

python--房贷计算小工具

python--房贷计算小工具

python--房贷计算⼩⼯具看了下房贷等额本⾦和等额本息的算法,因此写了个计算房贷的⼩⼯具,⽅便⾃⼰计算lone_pay.py#!/usr/bin/env python# _*_ coding: UTF-8 _*_"""=================================================@Project -> File : lone_pay.py@IDE : PyCharm@Author : zihan@Date : 2022/2/16 19:57@Desc :================================================="""def main():capital = 1050000 # 贷款本⾦105万year_rate = 0.049 # 年利率4.9%years = 30 # 贷款年限month_rate = year_rate / 12 # ⽉利率months = years * 12 # 还款⽉数# 贷款等额本息print("开始等额本息计算: ")month_pay_money = (capital * month_rate * (1 + month_rate) ** months) / ((1 + month_rate) ** months - 1)total_pay_money = month_pay_money *monthsprint("每⽉应还款⾦额为:", month_pay_money)print("累积应还款总额为:", total_pay_money)# 贷款等额本⾦print("")print("开始等额本⾦计算: ")month_pay_capital_standard = capital / 360 # 每⽉还款本⾦total_pay_money = 0for i in range(months):month_pay_interest = (capital - i * month_pay_capital_standard) * month_rate # 每⽉还款利息month_pay_capital = month_pay_interest + month_pay_capital_standard # 每⽉应还款额 = 每⽉还款本⾦ + 每⽉还款利息 descip = "第{}⽉应还款额为: ".format(i + 1)print(descip, month_pay_capital)total_pay_money = total_pay_money + month_pay_capitalprint(total_pay_money)print("累积应还款总额为:", total_pay_money)if__name__ == '__main__':main()等额本⾦还款总额会⽐等额本息少。

信息技术作业如何利用Python编写一个简单的计算器程序

信息技术作业如何利用Python编写一个简单的计算器程序

信息技术作业如何利用Python编写一个简单的计算器程序计算器程序是信息技术领域中非常基础的部分之一。

通过Python编写一个简单的计算器程序,可以加深对编程语言的理解,并提升解决问题的能力。

本文将介绍如何使用Python编写一个简单的计算器程序。

一、程序设计思路在开始编写计算器程序之前,我们需要明确程序的设计思路。

一个简单的计算器程序需要具备以下功能:1. 用户输入数字和运算符进行计算;2. 程序对输入的表达式进行解析和计算;3. 返回计算结果。

基于以上思路,我们可以着手开始编程。

二、编程步骤1. 定义函数在Python中,我们可以使用函数来实现计算器程序。

首先,我们需要定义一个函数来进行数学运算。

例如,我们可以定义一个名为calculate的函数来接收用户输入的表达式,并返回计算结果。

2. 获取用户输入接下来,我们需要获取用户输入的表达式。

在Python中,可以使用input()函数来获取用户的输入。

在获取用户输入后,我们可以将其作为参数传递给calculate函数进行计算。

3. 解析表达式在开始计算之前,我们需要对用户输入的表达式进行解析。

这里可以使用字符串的拆分和切片操作来实现。

通过拆分用户输入的表达式,我们可以得到运算符和数字。

然后,我们可以将这些数字和运算符进行计算。

4. 计算结果在解析表达式后,我们可以根据运算符来进行计算。

例如,如果用户输入的运算符是"+",则我们可以将前后两个数字相加。

通过依次处理每个运算符和数字,我们可以得到最终的计算结果。

5. 输出结果最后,我们将计算结果作为函数的返回值并将其打印出来。

这样,用户就可以看到计算器程序的运算结果了。

三、示例代码下面是一个简单的计算器程序示例代码:```pythondef calculate(expression):# 解析表达式operator = ''number = []for char in expression:if char.isdigit():number.append(char)else:operator = charbreaknum1 = int(''.join(number))num2 = int(expression[len(number) + 1:]) # 计算结果if operator == '+':return num1 + num2elif operator == '-':return num1 - num2elif operator == '*':return num1 * num2elif operator == '/':return num1 / num2# 获取用户输入exp = input("请输入一个简单的四则运算表达式(例如2+3):") # 调用计算函数并输出结果result = calculate(exp)print("计算结果为:", result)```四、运行结果当我们运行上述示例代码,并输入表达式"2+3"时,程序将会输出计算结果"5"。

52周存钱法python编程

52周存钱法python编程

52周存钱法是一种通过每周递增存储的方法,能够帮助人们有效地积累一笔可观的存款。

而Python编程是一种流行的编程语言,广泛应用于数据处理、全球信息湾开发、人工智能等领域。

本文将探讨如何利用Python编程实现52周存钱法,以及其中涉及的相关知识和技巧。

一、52周存钱法简介52周存钱法是一种逐渐递增存储的方式,即第一周存1元,第二周存2元,第三周存3元,依此类推,直到第52周存52元。

这样一年下来,你将能够存储的总金额为$1378。

二、Python编程实现为了实现52周存钱法,我们可以利用Python编程来计算每周存储的金额,并累加到总金额。

下面是一个简单的Python程序实现:```total_amount = 0for week in range(1, 53):total_amount += weekprint("Total amount saved in 52 weeks: $", total_amount)```在这个程序中,我们先定义了一个变量`total_amount`来保存总金额,然后使用`for`循环来遍历52周并累加每周存储的金额,最后输出总金额。

三、Python编程技巧除了简单的累加计算,我们还可以利用Python编程来实现更多功能,比如动态输入存储金额、输出每周存储的金额等。

下面是一个更加完整的Python程序实现:```total_amount = 0for week in range(1, 53):amount = int(input("Enter the amount for week " + str(week) + ": $"))total_amount += amountprint("Amount saved for week " + str(week) + ": $" +str(amount))print("Total amount saved in 52 weeks: $", total_amount)```在这个程序中,我们使用`int(input())`函数来动态输入每周存储的金额,并输出每周存储的金额。

用Python代码写的计算器

用Python代码写的计算器

⽤Python代码写的计算器1.极限压缩版import re, functoolsdef cal(formula):while re.search('(?:\d+\.?\d+|\d+)[+\-*/]', formula):while re.search('[*/]', formula): formula = re.sub('(?:\d+\.?\d+|\d+)[*/](?:\d+\.?\d+|\d+)', str(functools.reduce(lambda i, j: float(i) * float(j), re.search('(?:\d+\.?\d+|\d+)[*/](?:\d+\.?\d+|\d+)', formula).group().split( if re.search('(?:\d+\.?\d+|\d+)[+\-]', formula): formula = re.sub('-?(?:\d+\.?\d+|\d+)[+\-](?:\d+\.?\d+|\d+)', str(functools.reduce(lambda i, j: float(i) + float(j), re.search('-?(?:\d+\.?\d+|\d+)[+\-](?:\d+\.?\d+|\d+)', formula).gro return formulaformula = '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'while re.search('\([^\(\)]+\)', formula):formula = re.sub('\([^\(\)]+\)', cal(re.search('\([^\(\)]+\)', re.sub('\s', '', formula)).group()).strip('()'), formula, 1)while re.search('[+\-*/]-', formula): formula = re.sub('[+]-', '-', formula) if'+-'in formula else re.sub('--', '', formula) if formula.startswith('--') else re.sub('(?:\d+\.?\d+|\d+)[*/]-', '-' + re.findall('(?:\d+\.?\d+|\d+)[*/](?=-)print(cal(formula).split('.0')[0] if cal(formula).endswith('.0') else cal(formula))2.完整版import refrom functools import reducedef plus_minus(formula):'''计算⽆括号的加减法算式:param formula: 等待计算的只包含加减法的字符串:return: 计算结果的字符串'''p1 = pile('-?(?:\d+\.?\d+|\d+)[+\-](?:\d+\.?\d+|\d+)') # 匹配⼀次加减法while re.search(p1, formula): # 每次计算⼀个⼆元加减,并替换到原字符串上,直到计算并计算完所有数x = re.search(p1, formula).group() # 匹配出⼀次计算,判断是加法还是减法,再由reduce把分割后的两个数交给匿名函数去计算。

C语言编写利率程序,《C语言及程序设计》实践参考——定期存款利息计算器

C语言编写利率程序,《C语言及程序设计》实践参考——定期存款利息计算器

C语⾔编写利率程序,《C语⾔及程序设计》实践参考——定期存款利息计算器返回:贺⽼师课程教学链接 项⽬要求【项⽬:定期存款利息计算器】输⼊存款⾦额并选择存款种类,计算出利息(不计利息税)和本息合计。

要求使⽤switch语句,根据选择的存款种类,确定利率和存期后计算。

提⽰:利息=⾦额×年利率×存期(单位:年,3个⽉为0.25年,6个⽉为0.5年)。

例如:1000元存6个⽉,利息=1000×0.033×0.5=16.5元利率使⽤2011年7⽉7⽇公布的年利率:3个⽉ 3.10%,6个⽉ 3.30%,⼀年 3.50%,⼆年 4.40%,三年 5.00%,五年 5.50%。

程序运⾏图参考下⾯的界⾯:[参考解答]#includeint main ( ){int type;double money, period, rate, interest;printf("欢迎使⽤利息计算器!\n");printf("请输⼊存款⾦额:");scanf("%lf", &money);printf("======存款期限======\n");printf("1. 3个⽉ \n");printf("2. 6个⽉\n");printf("3. ⼀年 \n");printf("4. ⼆年\n");printf("5. 三年\n");printf("6. 五年\n");printf("请输⼊存款期限的代号:");scanf("%d", &type);if (type>=1 && type <=6){switch(type) //在if中嵌⼊了switch分情况处理{case 1:period = 0.25;rate = 0.031;break;case 2:period = 0.5;rate = 0.033;break;case 3:period = 1;rate = 0.035;break;case 4:period = 2;rate = 0.044;break;case 5:period = 3;rate = 0.05;break;case 6:period = 5;rate = 0.055;break;}interest = money * period * rate;printf("到期利息为:%.2lf 元,本息合计共 %.2lf 元。

python财务基础题库

python财务基础题库

python财务基础题库
以下是Python财务基础题库的示例:
1.假设有一笔贷款总额为100,000元,年利率为4%,贷款期限为5
年。

请计算每月需要还多少钱。

2.假设有一笔存款总额为50,000元,年利率为2%,存款期限为3
年。

请计算三年后本息合计多少钱。

3.假设有一笔投资,年回报率为6%,请计算5年后投资额将增长到
多少钱。

4.假设有一笔支出,每月需要还2,000元,请计算需要多少个月的
还款期才能还清这笔支出。

5.假设有一笔收入,每年可以赚取10,000元,请计算需要多少年才
能赚到100,000元。

6.假设有一笔坏账,需要扣除2,000元,请计算实际收到的款项是
多少。

7.假设有一笔转账,转出账户的余额是10,000元,转入账户的余额
是5,000元,转账金额是3,000元,请计算转账后的余额是多少。

8.假设有一笔费用,需要支付5,000元,请计算实际支付的金额是
多少。

9.假设有一笔利润,需要缴纳税率为20%的税款,请计算需要缴纳
的税款是多少。

10.假设有一笔投资,投资期限为5年,年回报率为8%,请计算投资
到期后可以获得的总金额是多少。

以上题目可以涵盖财务领域的基本概念和计算方法,例如贷款、存款、投资、回报、支出、收入、坏账、转账、费用、税款等等。

实验2-2-3计算存款利息(10分)

实验2-2-3计算存款利息(10分)
输入格式:
输入在一行中顺序给出三个正实数money、year和Βιβλιοθήκη ate,以空格分隔。输出格式:
在一行中按“interest = 利息”的格式输出,其中利息保留两位小数。
输入样例:
1000 3 0.025
输出样例:
interest = 76.89
#include<stdio.h> #include<math.h> int main() {
double money,year,rate,interest; scanf("%lf%lf%lf",&money,&year,&rate); interest=money*( pow((1+rate),year ))-money; printf("interest = %.2lf",interest); return 0; }
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
实验 2-2-3计算存款利息( 10分)
本题目要求计算存款利息,计算公式为1,其中interest为存款到期时的利息(税前),money是存款金额,year是存期,rate是年利率。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

python入门教程NO.8用python写个存款利息计算器
本文涉及的python基础语法为def函数,return,函数的各参数示例,匿名函数等
函数初识
函数是一段组织好的\ 可重复使用的\ 用来实现特定功能的代码块。

函数能提高代码的模块性,和代码的重复利用率,使一些重复编写的代码简洁化,增加代码的可读性和美观性。

为了便于大家理解,我们将函数比作电饭煲,给它添加米饭和水,利用它的煮饭功能,就可以得到米饭在这里,米饭和水就是需要传递给函数的参数,而煮饭功能就是一段可以重复利用的代码块,米饭就是利用函数得到的输出。

自定义函数
定义一个自定义函数需要遵循以下的规则:
函数代码块以def 关键字开头,后接函数标识符名称和圆括号():
def 是函数定义的关键字(define 的缩写),example是我们自定义的一个函数名称,括号里面的x表示一个参数这里提醒一下各位新手工程狮,千万不要忘记括号后面这个英文 :!Python 中的函数以英文冒号开始,并且需要缩进,以表示接下来是函数内部的代码了a = a + x和return a为函数的函数体,这部分就是函数的功能实现和输出返回值的地方return [表达式]结束函数,并将a的值返回给调用方。

不带表达式的return相当于返回 None我们通过一个案例来理解一下
在上面的例子中,我们讲到了形参和实参,那么具体该如何区分它们呢?
形参是形式上的参数的缩写,实参是实际上的参数的缩写。

以上面的代码为例:定义函数时的参数 x,y 为形参,调用函数时传入的参数 5 , 2为实参。

函数的参数
关键字参数的应用示例
必备参数的应用示例
默认参数的应用示例
不定长参数的应用示例
python 使用 lambda 来创建匿名函数
lambda只是一个表达式,函数体比def简单很多。

lambda的主体是一个表达式,而不是一个代码块。

仅仅能在lambda表达式中封装有限的逻辑进去。

lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

|匿名函数示例
变量作用域
程序的所有的变量并不是在任何位置都可以访问的。

能否访问取决于这个变量是在哪个位置赋值的。

变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。

两种最基本的变量作用域是:
全局变量局部变量全局变量和局部变量
存款利息计算器
假如你每月存2000到银行,存1年的年利率是2.6%,存3年的年利率为3.8%,存5年的年利率为4.2%这种存款方式属于零存整取,利息计算公式为:利息=月存金额×累计月积数×月利率累计月积数=(存入次数+1)÷2×存入次数假如存3年,那么:利息=2000×累计月积数×(3.8%÷12),累计月积数=(36+1)÷2×36请根据提示,设计一个零存整取的利息计算器。

相关文档
最新文档