Python基本数字类型及操作|“朝闻道”知识分享大赛“

disa_gree 2023-12-31 16:26:56

这是我参加朝闻道知识分享大赛的第22篇文章

 

python基本数字类型及操作:

1 整数(int)

和数学中的整数概念一致,可正可负,没有取值范围限制。9999**99(就是999999),也可计算出来。pow(9999,99)等价于9999**99。

整数有4种进制表示形式:

 

Y小小知识点:内置函数,就是不需要加载任何库,可以直接使用的函数。

 

 

   >>> int(0x22b)

   555

2 浮点数(float)

与数学中实数的概念一致。浮点型由整数部分与小数部分组成(1.48),所有浮点数必须带有小数部分,小数部分可以是0。小数部分可以没有值,但点必须有(21.,.21)。

浮点数有2种表示方法:十进制和科学计数法(2.53e3是指2.53*103,即2530,4.32e-3是指4.32*10-3,即0.00432)

对于实数运算可能会有一定的误差,尽量避免在实数之间直接进行相等性测试。由于python语言能够支持无限制且准确的整数计算,因此,如果希望获得精度更高的计算结果,往往采用整数而不直接采用浮点数。python通过标准库decimal提供了一个更精确的数字类型Decimal。

举例:   >>>0.4-0.3==0.1      #0.4-0.3等于0.1对吗?

         False               #不是

         >>>0.4-0.1          #0.4-0.1等于多少?

         0.30000000000000004

为什么会这样呢????

怎么解决呢?

>>>round(0.1+0.2,9)==0.3  #round函数对0.1+0.2 的结果保留1位小数,即0.3。0.3显然是等于0.3的

True

格式:round(x[,小数位数])     功能:对x进行四舍五入,若不指定小数位数,则返回整数。

>>>round(0.1+0.2,20)==0.3

False

 

math库函数isclose    格式: math.isclose(a,b,rel_tol=1e-09)  

功能:判断两个浮点数的值是否接近或相等,这是由于浮点数的计算总是存在一定的误差。

参数说明: a,b:两个需要比较的浮点数;

rel_tol: 相对于输入值的大小,被认为是“接近”的最大差异;rel_tol默认值为1e-09

举例:

>>>math.isclose(0.4-0.1,0.3)      #检测0.4-0.1和0.3是否足够接近,偏差在1e-9范围内,认为相等

True

Y浮点数的数值范围和小数精度受不同计算机系统的限制,sys.float_info详细列出了python解释器所允许系统的浮点数各项参数。

 

3 复数(complex

在众多程序设计语言中,只有python提供复数类型。与数学中的复数概念是一致的。由实部和虚部构成a+bj。可以用real 和imag 分别获取复数的实部和虚部

举例:    >>>x=3+4j

          >>>y=5+6j

          >>>x+y

          (8+10j)

          >>>x*y

          (-9+38j)

          >>>x.imag

          4.0

          >>>x.real

          3.0

          >>>abs(x)

          5.0

以3为实部4为虚部,Python复数的表达形式为___________________。

4 数值运算操作符

各种算法如何表达?  

比如计算圆的面积公式?比如计算一个数的平方的公式?比如已知两边及夹角求第三边的公式?

算数运算符

含义

举例

结果

+

加法或正号

1+2

3

-

减法或负号

1-2

-1

*

乘法

2*3

6

/

除法

10/2

5

//

整除

5//2

2

**

2**3

8

%

余数,取运算

7%3

1

需要注意:

 >>>10/3      #整数10除以整数3的结果是浮点数3.33333(区别于其他程序设计语言)

3.3333333333333335

>>>9**0.5    #相当于9开方(91/2),结果为3

     3.0

     >>>-15//4    #地板除,向下取整

     -4

>>>123.45%3.2   #可以对实数进行余数运算

1.849999999999996

>>>(-9)**0.5     #可以计算负数的平方根,得到一个复数

(1.8369701987210297e-16+3j)

 

求余运算举例1:今天星期三,10天后星期几?

   (3+10) % 7

求余运算举例2:判断一个数x是偶数还是奇数?

    x % 2 是否等于0

1、表达式 3 * 2的值为___________。 

2、Python运算符中用来计算整商的是_________。  

3、表达式 3 // 5 的值为_______________。 

4、表达式15 // 4的值为__________________。 

5、表达式 3 ** 2 的值为_________。 

6、表达式16**0.5的值为____________________。 

7、 表达式 1234%1000//100 的值为___________。   

 

二元操作符有对应的增强赋值操作符:

8、已知 x = 3,那么执行语句  x += 6 之后,x的值为_______________。 

9、已知 x = 3,那么执行语句 x *= 6 之后,x的值为________________。 

 

各类型(整型,浮点型,复数型)数字运算时的规则:

 

 

变成浮点数之后,再次运算,要注意可能会产生不确定的尾数喔! ^_^

 

5 数值运算函数

 

举例:

>>>abs(-4.0)                   #对负数取绝对值

4.0

>>>abs(3.0+4j)                 #对复数取模,即点坐标到原点的距离

5.0

>>>divmod(10,3)               #输出元组(10//3,10%3)

(3,1)

>>>pow(2,3)                  #计算23

8

>>>pow(2,3,3)                 #计算23%3

2

 

举例:

>>>round(42.345)              #对42.345四舍五入取整

42

>>>round(23.3433,2)           #对23.3433四舍五入保留2位小数

23.34

>>>max(1,4,5,5,17,45,3,6,8)     #得到一组数中的最大值

45

>>>min(34,67,-65,32,17,0)      #得到一组数种的最小值

-65

 

举例:

 

 

 

举例:

>>> list(range(10))      #从0开始到10,不包括10

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  

>>> list(range(1,7))     #从1开始到7,但不包括7

[1, 2, 3, 4, 5, 6]

>>> list(range(0,10,3))  #步长为3

[0, 3, 6, 9]

>>> list(range(0,-7,-2))  #负数

[0, -2, -4, -6]

Range的本质:是Python中的一个不可变序列

习题:

1、Python内置函数____________用来返回序列中的最小元素。  

2、表达式 abs(-3) 的值为___________。 

3、Python内置函数____________用来返回序列中的最大元素。 

4、Python内置函数________________用来返回数值型序列中所有元素之和。 

5、表达式 sum(range(10)) 的值为________________。 

6、 表达式 sum(range(1, 10)) 的值为_____________。 

7、表达式 sum(range(1, 10, 2)) 的值为____________。 

 

 

 

6、math库介绍。

  • 标准库:安装完Python以后就默认安装,不需要安装可直接使用
  • 扩展库: 需要单独安装才能使用
  •  math是一个标准库中的模块,不需要安装就可以导入使用的数学函数库。

math库的数学常数:共4个;math库的数值表示函数:共16个;math库的幂对数函数:共8个;math库的三角运算函数:共16个;math库的高等特殊函数:共4个,共计4+16+8+16+8=48个函数。

 

 

 

 

8、Python标准库math中用来计算平方根的函数是__________。 

更多的数学函数:cmath模块

     math模块中的数学函数只能用于计算整数和浮点数,对于复数就无能为力了。cmath模块专门面向复数计算,还能实现平面直角坐标和极坐标之间的转换。

 

实验:

1、判断一个年份是否为闰年?

判断规则:如果年份y能被4 整除但是不能被100整除,或者能被400整除,则是闰年

算法实现: (y%4==0 and y%100!=0) or (y%400==0)

2、根据身份证号判断性别:依据身份证号的倒数第2位来判断男女,奇数为男,偶数为女。

3、求一元二次方程的解:     5x2+8x+3=0

4、给一个三位数,分别取出其个位、十位、百位上的数字

5、天天向上

  • 一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高1‰,当没有学习时能力值相比前一天下降1‰。每天努力和每天放任,一年下来的能力值相差多少呢?
  • 天天向上的力量(1+0.001)365
  • 天天放任的力量(1-0.001)365

 

...全文
65 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

858

社区成员

发帖
与我相关
我的任务
社区描述
中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
经验分享 高校 湖北省·武汉市
社区管理员
  • c_university_1575
  • WhiteGlint666
  • wzh_scuec
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

注意:

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

试试用AI创作助手写篇文章吧