第二篇:数值类型

MATLAB数值类型 MATLAB支持各种数字类,包括有符号和无符号整数以及单精度和双精度浮点数。默认情况下,MATLAB将所有数值存储为双精度浮点数。 阅读详情

这一篇介绍与Python有关的数值类型和概念,夹杂着一些新的其它方面的概念。

 

1.3/4 == 0?

在python中,每个数都会关联到一个类型上的,3, 4默认为整型。

(python的一个好处是这些类型都不用声明,直接拿来就用。)

这里3/4 == 0 可以类比c中的int类型除法。结果向下取舍,就变成了0.

如果想得到一个满意的结果:

3.0 / 4.0就可以了。python看到小数点,自然明白这是float类型(flaot类型在python中类似于c中float/double)

 

2.** or pow()函数

旧版用**表示指数运算

新版用pow表示指数运算

x ** y 或 pow(x,y) 表示 x^y的值。python V2.6可以使用任意一种方式。

>>>2**3
8
>>>pow(2,3)
8

 

3.long类型

支持无限大的数(在内存,cpu承受能力之内),这真是太好啦。

>>>32894892384*32343290432
1063929058105096869888L

但是,浮点型做除法时,精度细节会丢掉:

>>>74239847324789274932747294723897492379487239472389472397423740823048230840283490238408230480238402840280482.0/42789423.0
1.735004637122339e+99

 

4.更一般的大数操作

此时需要使用python的一个模块:decimal

使用方法如下:

>>>d = decimal.Decimal('3.14') #你可以把d当成一个数,值为3.14
>>>d + 1
Decimal('4.141')

有了这个类,何愁精度太小呢?

import decimal
decimal.getcontext().prec = 200 #设置最多200位精度

d1 = decimal.Decimal('1') #有没有引号无所谓
d2 = decimal.Decimal(3)

print(d1 / d2)
0.333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333

 

看看吧。和其它的高级语言一样,python默认的精度系统让人心寒:

>>> 0.1 + 0.1 + 0.1 - 0.3
5.551115123125783e-17

好在我们有Deciaml module:

>>> from decimal import Decimal
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
Decimal('0.0')
>>> print(Decimal('0.0'))
0.0

现在,精度的问题已经不是问题了。


5.分数代替小数

精度再大,都不能准确表示某些分数。看来要用分数模块了:fraction

from fractions import Fraction

f = Fraction(2, 3) #2/3
f = f + Fraction(1, 2)
print(f)
7/6

这里说明一下:

1.>>>  这个符号表示在IDLE中,提示输入的符号。后面设计的代码都是在eclipse里写的。所以也就省去了>>>

2.这里的结果是7/6。一般最后会把结果贴上。

3.from fractions import Fraction 表示从fractions里把Fraction暴露出来,以后就不需要使用fractions.Fraction怎么长的调用了。

4.由于导入的模块里的变量可以被你随便修改。使用reload(xxx)函数可以重新导入这个模块,清空被修改的状态:

>>>import math
>>>math.pi
3.141592653589793
>>>math.pi = 10
>>>math.pi
10
>>>reload(math)
>>>math.pi
3.141592653589793

当然了,如果小数已经产生了,怎么把它变成分数形式呢。可以这么做:

>>> (2.5).as_integer_ratio()
(5, 2)

 


6.神奇的扩展

*号普遍被Python用来扩展元素:

>>>[1,2]*2
[1, 2, 1, 2]
>>>'hello'*2
'hellohello'

 

7.查看type:

>>>a = 10
>>>type(a)  #不限于int, 可以查看任意object
<type 'int'>


8.简单的oop(object oriented programming)

下面是一个简单的类。看看看懂了没?没看懂直接跳过,不要紧。

def 是函数定义标识。__int__是构造函数。每个成员函数传入self,用来给成员函数操作自己变量。

class Worker:
    def __int__(self, name, pay):  #Initialize when created.类似于构造函数
        self.name = name
        self.pay = pay
    def lastName(self):
        return self.name.split()[-1]
    def giveRaise(self, percent):
        sefl.pay *= (1.0 + percent)
 
bob = Worker('Bob Smith', 11223)
bob.lastName()


9.数类型

123, -24, 999999999999999整数
1.23, 3.14e-2小数
0177, 0x9ff, 0b1001八,十六,二进制(2.6)
0o177, 0x9ff, 0b1001八,十六,二进制(3.0版)
3+4j复数

注意:复数不是3+4i.在python中也可以使用Complex(real, imag)创建复数。

 

10.进制转换

十进制到各进制的转换:

>>>a = 12
>>>bin(a) #转为2进制
>>>otc(a) #转为8进制
>>>hex(a) #转为16进制
 

多种进制往10进制转换:

>>>int('64') #十进制
>>>int('100', 8) #8进制
>>>int('40', 16) #16进制
>>>int('100000', 2) #2进制

将十进制转化为二进制,八进制和十六进制的另一种方法:

>>>'{0:b}, {1:o}, {2:x}'.format(64, 64, 64)

 

11.类型强制转换

int(num) long(num)和 float(num)数可以将数转换为int long float类型。

 

12.数值转化为string

>>>num = 1.0/3.0
>>>repr(num)
>>>str(num)

str(num)和repr(num)类似。但是repr会给出更多的细节。数值转化为string时,也可以格式化:

>>>num = 1/ 3.0
0.3333333333333331
>>>'%e' % num string格式数值
'3.3333333e-001'
>>>'%4.2f' % num #可以调整格式
'0.33'
>>>'{0:4.2f}'.format(num) #2.6or3.0
'0.33'

 

13.大小判断

 可以使用更方便的方法来进行大小比较:

x = 5
if 2 < x and x < 10:
    print('2<x<10')

#equals to:
x = 5
if 2 < x < 10:
    print('2<x<10')


说明:

1.if 结构:

if 2 < 3:
    print('2<3')
elif 2 < 2.5:
    print('2<2.5')
else:
    print('2>=2.5')

这是一个经典的if-else-if结构。这里要注意, python中没有花括号来标明函数体。使用冒号和缩进表示。所以缩进要非常小心。同一层次的代码缩进要相同。同时冒号不能省略。

2.and or 等

python没有使用c-like语言的&& || 来表示且和或,而是使用and, or关键字。

 

14 / 操作符

python有两种除法操作:

/ 和 //

/ :表示整数相除,向下取整。小数不取整。

//:向下取整。

但是在3.0种。/  在整数相除时,也不向下取整。

当然,你也可以在2.6中使用3.0这个功能:

>>>from __future__ import division

// 这种向下去整相当于math里的floor()函数

>>> import math
>>> math.floor(2.5)
2
>>> math.floor(-2.5)
-3
>>> math.trunc(2.5)
2
>>> math.trunc(-2.5)
-2


15. math

math module:数学工具包。这个模块感觉没什么好说的。只要是个像样的编程语言都会有这个扩展吧。

import math
math.floor(2.55) #向下取整
math.ceil(2.55) #向上取整
math.trunc(2.55) #截取整数部分
#题外话: round(2.55) #四舍五入
math.sqrt(144) #== 144 ** .5

 

16.random

random module: 提供随机化操作。

>>>import random
>>>random.random()
0.4454848546546546546456
>>>random.randint(1, 10)
5
>>>random.choice(['jinjin', 'yiyi'])
'yiyi'


17.再次讨论set

set也可以通过函数set([1, 2, 3, 4])创建。和{1, 2, 3, 4}表达功能是一样的。

set可以通过add函数加入新的元素。通过remove删除已有的元素。

set可以完成一些巧妙的操作:

如果要删除[1, 2, 3, 3, 2, 1, 3]中重复的元素,这样操作:

>>> a = [1, 2, 3, 3, 2, 1, 3]
>>> set(a)
set([1, 2, 3])
>>> a = list(set(a))
>>> a
[1, 2, 3]

seta > setb 表示 seta是否为setb的父集。

 

18.Bool

python中,True/False 为 bool类型。但是它们本质上是1和0

>>> True == 1
True
>>> False == 0
True

 

19.eval

和MATLAB一样。python提供了一个命令模拟函数eval()。这体现了动态语言的特性。

下面给出eval 的简单用法。也给出它与exec函数的一些区别。

>>> eval('[1, 2, 3, 4]')
[1, 2, 3, 4]
>>> exec('print("hello")')
hello
>>> eval('print("hello")')

Traceback (most recent call last):
  File "<pyshell#79>", line 1, in <module>
    eval('print("hello")')
  File "<string>", line 1
    print("hello")
        ^
SyntaxError: invalid syntax


 


19够了吗?python扩展

尽管python提供了上述很多数值操作的方法。但是对于科学计算还是不够的。于是有很多扩展可以增强python的数值计算能力。比如NumPy(Numeric Python)。

NumPy将在以后介绍到。

 

end.

 

 

 



 

 


 

 

 

javascript学习——数值类型详解 JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。这就是说,JavaScript 语言的底层根本没有整数,所有数字都是小数(64位浮点数)。容易造成混淆的是,某些运算只有整数才能完成,此时 JavaScript 会自动把64位浮点数,转成32位整数,然后再进行运算,参见《运算符》一章的“位运算”部分。由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。 阅读详情

相关推荐

点云配准实战:用DGCNN+Transformer+SVD搞定3D模型对齐(附PyTorch代码)

本文详细介绍了基于深度学习的点云配准实战方法,重点解析了Deep Closest Point (DCP)模型。该模型融合了DGCNN、Transformer和可微分SVD三大核心模块,能够端到端地预测点云间的刚性变换,有效克服传统ICP算法对初始位置敏感、易陷入局部最优的缺点。文章提供了完整的PyTorch代码实现、ModelNet40数据集处理、训练策略及显存优化技巧,旨在帮助开发者在机器人、自动驾驶等领域实现精准的3D模型对齐。

weixin_29061041的博客 154

Python:第1章Python语言基础 课后习题

《Python语言程序设计》刘卫国主编,中国工信出版集团,电子工业出版社 习题1 一、选择题 1.Python语言属于( )。C A. 机器语言 B. 汇编语言 C.高级语言 D.科学计算语言 2.下列选项中,不属于Python特点的是( )。B A.面向对象 B.运行效率高 C.可读性好 D.开源 3.Python程序文件的扩展名是( )。D A..python B..pyt ...

WHT869706733的博客 1万+

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1528

python基础

urllib的使用: 详解 scrapy的总结: 总结 python老男孩的视频 视频

qq_45772236的博客 1831

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1461

瑞数6.5逆向实战:手把手教你用RPC搞定cookie sign加密(附环境补全技巧)

本文深入解析瑞数6.5逆向实战,重点探讨如何结合环境补全与RPC调用技术来应对其动态加密机制。文章详细介绍了环境指纹采集、双重验证等核心防护原理,并提供了基于Puppeteer的RPC实现方案,手把手教你搞定cookie sign加密,附有实用的环境补全技巧与完整代码示例。

weixin_29315091的博客 1273

pythontype(1+0xf*3.14)_numpy强制类型转换|图像线性增强|不同数据类型与图像的显示...

创建矩阵a=np.ones((3,3),dtype=np.uint8)b=np.arange(9).reshape((3,3))c=np.array([[50,55,60],[65,70,75],[80,85,90]])如果在创建的时候没有指定数据类型,那么默认是int32强制类型转换方法一:b.dtype=np.uint8虽然dtype变了,但是shape也变了,再看看里面的数据除了原先的数据,...

weixin_35170789的博客 2032

PSIM+PIL+CCS三剑客:手把手教你搞定DSP28335的软硬件联合调试

本文详细介绍了如何利用PSIM、PIL与CCS三款工具,实现DSP28335的软硬件联合调试。通过搭建兼容环境、从PSIM仿真生成PIL代码,再到实战联合调试与问题诊断,手把手指导开发者构建从虚拟模型到实际硬件的完整验证闭环,有效提升电力电子与电机驱动等领域的开发效率与可靠性。

weixin_29183637的博客 186

python有理数_Python中的as_integer_ratio()用于减少给定有理数的分数

在本教程中,我们将编写一个程序,该程序返回两个数字,它们的比率等于给定的float值。我们有一个称为as_integer_ratio()的方法,可以帮助实现我们的目标。让我们看一些例子。Input:1.5Output:3/2Input:5.3Output:5967269506265907/1125899906842624让我们检查一下代码。示例#初始化浮点值float_value=1....

weixin_42347699的博客 5379

Viobot使用教程总贴

使用教程总贴

weixin_66666206的博客 1409

用Arduino+ESP32复现TDOA定位:低成本实现厘米级精度的完整教程

本文提供了一套利用Arduino和ESP32平台,结合NRF24L01+模块与GPS/PPS时间同步方案,低成本复现高精度TDOA(到达时间差)定位系统的完整教程。教程详细阐述了从硬件选型、天线阵列设计、时间同步实现到核心算法与多径抑制的实战步骤,旨在帮助开发者和硬件爱好者以可控成本实现厘米级精度的定位演示系统。

weixin_29084111的博客 162

python123数值运算_python基础篇【第二篇】:数据运算、数据类型

一、数据运算举个例子一目了然就明白什么是运算符了;例子10+20=30,其中10,20为操作符 ,“+” 称为运算符。python支持支持的类型运算符有:算术运算、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级,下面我们一个个来看。1、算数运算:假设变量a=10,变量b=20:运算符描述实例+加 - 两个对象相加a + b 输出结果 30-减 - 得到负...

weixin_39774491的博客 2337

ISO 21434汽车网络安全标准深度解读系列(十):标准实施总结与展望

ISO21434标准深度解读系列总结篇系统回顾了汽车网络安全标准的核心内容与实施要点。文章梳理了10篇系列文章的结构体系,提炼出标准的三大核心价值:系统性方法(全生命周期覆盖、多层次管理)、风险导向理念(威胁驱动、动态管理)和供应链协同机制。总结了实施经验中的关键要素,包括高层承诺、专业团队建设,并提出了分阶段实施路径建议。同时分析了当前面临的技术挑战(系统复杂性、新兴技术)和管理挑战(文化转变、资源投入)。最后展望了AI应用、零信任架构等技术发展趋势,以及标准未来的演进方向,为企业实施提供战略与执行层面的

VehSwHwDeveloper的博客 559

Mysql数值类型

一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(integer,smallint,decimal,numeric),以及近似数值数据类型(float,real,double precision(就是双精度型数据)),并在此基础上进行扩展。扩展后增加了tinyint,mediumint,bigint这3种长度不同的整形,并增加了bit类型,用来存放位数据。 类型 ...

哟,你又在偷偷写bug! 4975

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

4.2 PostgreSQL数值类型

是 PostgreSQL 中用于存储较小范围整数的数据类型。 4.2.1.2 整数(integer) 是 PostgreSQL 中最常用的整数数据类型。 4.2.1.3 大整数(bigint) 是 PostgreSQL 中用于存储大范围整数的数据类型。 整数类型是数据库中最基本的数据类型之一,选择合适的整数类型对于确保数据的准确性和查询的效率至关重要。在设计数据库时,应根据数据的实际范围和业务需求选择合适的整数类型。 类型在 PostgreSQL 中用于存储单精度浮点数。存储范围: 类型通常

Python老吕的博客 2601

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python数值类型_Python数值类型

python数值类型In programming, Data Types are an essential concept. Data of various types can be stored in variables as per the task we want the variables to perform. 在编程中,数据类型是必不可少的概念。 根据我们希望变量执行的任务,各种类型...

cumt951045的博客 550

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java数值类型之间的转换

本文展示了java数值类型之间的转换,分为2种,自动类型转换是安全的,编译器会自动完成;而强制类型转换需要我们手动指定,可能会导致数据丢失或精度损失。在实际编程中,我们要根据具体需求合理选择转换方式,避免因类型转换不当而引发的错误。

2303_80255839的博客 1911

python数值分为3种类型_Python数值类型

数值类型python的数值类型包括常规的类型:整数(没有小数部分的数字)、浮点数(通俗地说,就是有小数部分的数字)以及其它数值类型(复数、分数、有理数、无理数、集合、进制数等)。除了十进制整数,还有二进制数、八进制数、十六进制数。类型 示例---------------------------------------整数 1234, -24, 0浮点数 ...

weixin_39553753的博客 2696

【python】数值数据类型

Python3支持int、float、bool、complex(复数)。整数(int):表示没有小数部分的数字。例如:1, 10, -5浮点数(float):表示有小数部分的数字。例如:1.5, -3.14, 0.0复数(complex):表示包含实部和虚部的数字,虚部用j或J表示。例如:1+2j, -3.5+4.5j像大多数语言一样,数值类型的赋值和计算都是很直观的。

morris 1万+

MATLAB学习——数值类型

Matlab中的数据类型主要包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。这6中基本的数据类型都是按照数组形式储存和操作的。 数值类型 基本的数值类型主要有整数(有无符号)、单精度浮点数(有无符号)、双精度浮点数(有无符号)。 整数类型 数值范围 转换函数 有符号8位整数 -2^7--2^7-1 int8 无符号8位整数 0--2^8-1 uint8 有符号16位整数 -2^15--2^15-1 ...

weixin_54354252的博客 1747

C/C++编程:数值类型与string相互转换

#include <iostream> #include <sstream> //使用stringstream需要引入这个头文件 using namespace std; //模板函数:将string类型变量转换为常用的数值类型(此方法具有普遍适用性) template <class Type> Type stringToNum(const string& str) { istringstream iss(str); Type num;

OceanStar的博客 3309

第5章 数值类型

第五章 数据类型 本章中出现的数据结构,大部分上一张我贴过图,贴过图的不再贴了,将来会出一篇常见类型的结构图的文章 在Python中,数据采用了对象的形式,无论是Python所提供的内置对象,或是我们使用Python工具以及像C这样的其他语言所创建的对象。 Python内置的对象,即融合于Python语法中的类型。Python的原生类型,这些类型都是用高效的C语言写的。 Python工具创建的对象,即纯Python语言编写的对象,运行需要虚拟机的支持,运行效率低。 C语言创建的对象,与内置对象一样用C语言

jhsxy2005的博客 2485

GaussDB 常用数值类型

数值类型是最常用的一种数据类型,在做表设计时要清楚业务场景适当选择。

weixin_41176230的博客 1236

python中的数值类型有哪些,Python中数值类型有哪些

Python中数值类型有哪些发布时间:2020-12-15 09:32:58来源:亿速云阅读:92作者:小新小编给大家分享一下Python中数值类型有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Python中我们会遇到数值,我们统一将其归类,会发现Python支持四种不同的数值类型:int(整数、long(长整数...

weixin_34363294的博客 6815
上一篇: 第一篇:开始Python
下一篇: 第三篇:动态类型
未雨
博客等级 码龄14年 4粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值