设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第53课】 数学运算

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2013-9-4 13:33:55 |显示全部楼层 |倒序浏览
今天从打飞机游戏里中断一下,说些python的基础。

在用计算机编程解决问题的过程中,数学运算是很常用的。python自带了一些基本的数学运算方法,这节课给大家介绍一二。

python的数学运算模块叫做math,再用之前,你需要
import math

math包里有两个常量:
math.pi
圆周率π:3.141592...

math.e
自然常数:2.718281...

数值运算:
math.ceil(x)
对x向上取整,比如x=1.2,返回2

math.floor(x)
对x向下取整,比如x=1.2,返回1

math.pow(x,y)
指数运算,得到x的y次方

math.log(x)
对数,默认基底为e。可以使用第二个参数,来改变对数的基底。比如math.log(100, 10)

math.sqrt(x)
平方根

math.fabs(x)
绝对值

三角函数:
math.sin(x)
math.cos(x)
math.tan(x)
math.asin(x)
math.acos(x)
math.atan(x)
注意:这里的x是以弧度为单位,所以计算角度的话,需要先换算

角度和弧度互换:
math.degrees(x)
弧度转角度

math.radians(x)
角度转弧度

以上是你平常可能会用到的函数。除此之外,还有一些,这里就不罗列,可以去
http://docs.python.org/2/library/math.html
查看官方的完整文档。

有了这些函数,可以更方便的实现程序中的计算。比如中学时代算了无数次的
(-b±√(b²-4ac))/2a
现在你就可以写一个函数,输入一元二次方程的a、b、c系数,直接给你数值解。好,这题就留作课后作业吧。

以后我还会不定期地介绍python中的模块,例如random(随机数)、re(正则表达式)、time(时间)、urllib2(网络请求)等等。

#==== Crossin的编程教室 ====#
微信ID:crossincode
论坛:http://crossin.me
QQ群:156630350

面向零基础初学者的编程课
每天5分钟,轻松学编程




#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2013-9-5 19:47:41 |显示全部楼层
笨熊 发表于 2013-9-4 17:04
math.log()中的例子>>> math.log(100, base=10)是不对的,应该改为math.log(100, 10)

谢指出,已改。

因为log是一个cpython函数,所以有些python的特性是不支持的。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2013-9-24 18:22:29 |显示全部楼层
fl0w 发表于 2013-9-24 12:51
课后作业


#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2016-8-5 11:19:09 |显示全部楼层
妙舞汉宫人 发表于 2016-8-5 10:17
15楼程序运行出来是
(-1.0, -1.0)
无实根

他代码里写的编码是utf8,如果你是windows,换成gbk
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2018-5-31 00:22:28 |显示全部楼层
loveting0jie 发表于 2018-5-30 15:48
这次练习里面,我看好多人都写了a=0,b!=0返回-c/b这一段,这里不太懂,(-b±√(b²-4ac))/2a这个计算式里 ...

所以a=0要特别处理
a=0就是一次方程啊
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2018-6-11 21:31:11 |显示全部楼层
suiersoda 发表于 2018-6-11 16:54
这样结束不了这个循环

bingo=True,不是bingo==True
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-6-14 06:59 , Processed in 0.027630 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部