当前位置: 首页 > 后端技术 > Python

翻译:《实用的Python编程》01_03_Numbers

时间:2023-03-26 19:32:37 Python

上一节(1.2第一个程序)|下一节(1.4字符串)1.3数字本节讨论数学计算。数字类型Python有4种数字类型:布尔整数浮点数复数(虚数)布尔(bool)布尔数有两个值:True,False。a=Trueb=False在数值上,它们被评估为具有值1,0的数字。c=4+True#5d=Falseifd==0:print('disFalse')但是,不要写代码像上面那样,会很奇怪。整数(int)任意大小的带符号值,或以任意数字为基数的带符号值。a=37b=-299392993727716627377128481812241231c=0x7fa8#Hexadecimald=0o253#Octale=0b10001111#Binary常用操作:x+yAddx-ySubtractx*yMultiplyx/yDividex(producesyMultiplyx/yDivideainteger)//x%y模(余数)x**y幂x<>n向右位移x&y按位ANDx|yBit-wiseORx^yBit-wiseXOR~xBit-wiseNOTabs(x)绝对值浮点型(float)用十进制或指数表示法来指定浮点数的值:a=37.45b=4e5#4x10**5or400,000c=-1.345e-10使用浮点数来表示IEEE754标准双精度。这与C中的双精度类型相同。17位精度指数从-308到308请注意,浮点数在表示小数时是不精确的。>>>a=2.1+4.2>>>a==6.3False>>>a6.300000000000001>>>这不是Python的问题,而是CPU硬件上底层浮点硬件的问题。常用运算:x+yAddx-ySubtractx*yMultiplyx/yDividex//yFloorDividex%yModulox**yPowerabs(x)AbsoluteValue除了按位运算符,浮点运算符和整数运算符号还有相同。其他数学函数可以在数学中找到。importmatha=math.sqrt(x)b=math.sin(x)c=math.cos(x)d=math.tan(x)e=math.log(x)comparison以下比较/关系运算符可以应用对数字:xy大于x>=y大于或等于x==y等于x!=y不等于可以使用and,or,not来形成更复杂的布尔表达式.下面是一些例子:ifb>=aandb<=c:print('bisbetweenaandc')ifnot(bc):print('bisstillbetweenaandc')转换数字类型名称可用于将其他数据转换为数字。a=int(x)#将x转换为整数b=float(x)#将x转换为浮点数尝试以下操作:>>>a=3.14159>>>int(a)3>>>b='3.14159'#它也适用于包含数字的字符串>>>float(b)3.14159>>>练习提醒:这些练习假设您在practical-python/Work目录中工作,特别是在mortgage.py文件中。练习1.7:Dave的抵押贷款Dave决定从Guido的抵押贷款、股票投资和比特币交易公司获得500,000美元的30年期固定利率抵押贷款。利率为5%,每月还款额为2684.11美元。下面的程序用来计算Dave在抵押期间需要支付的总金额:#mortgage.pyprincipal=500000.0rate=0.05payment=2684.11total_paid=0.0whileprincipal>0:principal=principal*(1+rate/12)-paymenttotal_paid=total_paid+paymentprint('Totalpaid',total_paid)输入这个程序并执行它,你应该得到答案966,279.6。练习1.8:额外付款假设Dave在抵押贷款的前12个月每月额外付款1,000美元。修改程序以包括此额外付款并输出支付的总金额和所需的月数。当您运行这个新程序时,它应该报告342个月的总付款额为929,965.62。练习1.9:进行额外的付款计算器修改以更普遍地处理额外的付款信息。使用户可以设置这些变量:extra_payment_start_month=61extra_payment_end_month=108extra_payment=1000让程序查看这些变量并适当地计算总付款。如果Dave从抵押贷款的第五年开始并在4年内每月额外支付1000美元,他会支付多少?练习1.10:使表修改程序,以显示迄今为止支付的月数,支付的总金额以及剩余的本金。...308874705.883478.83309877389.99809.21310880074.1-1871.53total支付了880074.1months310习题1.11:奖金奖金奖金该程序时练习1.12:一个谜题int()和float()函数可以将其他类型的数据转换为数字类型。示例:>>>int("123")123>>>float("1.23")1.23>>>考虑到这一点,您能解释以下行为吗?>>>bool("False")True>>>内容|上一节(1.2第一个程序)|NextSection(1.4String)注:完整翻译见https://github.com/codists/practical-python-zh

猜你喜欢