`
friendsys
  • 浏览: 355645 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Learning.Python.3rd.Edition 笔记[4]

阅读更多
第四章中很大概的介绍了下Python的core 数据类型,后续章节将会详细介绍个个数据类型

CHAPTER 5
Number

Python支持无限大的数字,不过需要内存支持

具体的Number类型包括以下几种
1234, -24, 0 Normal integers (C longs)
9999999999999999999L Long integers (unlimited size)
1.23, 3.14e-10, 4E210, 4.0e+210 Floating-point numbers (C doubles)
0177, 0x9ff, 0XFF Octal and hex literals for integers
3+4j, 3.0+4.0j, 3J Complex number literals

Python会自动对数字进行转换,将带小数点的转换成 floating-point类型

十六进制与八进制
八进制 以0开头,后面跟随0-7的数子
十六进制 以0x或者0X开头,后面包含0-9和A-F

用于处理Number的工具

Expression operators  表达式操作
+, *, >>, **, etc.

Built-in mathematical functions  内置数字操作函数
pow, abs, etc.

Utility modules    工具模块
random, math, etc.

如果需要更多的Number操作,可以使用第三方的NumPy,在3.0中,将会只有一个integer类型,提供了高精度


Python中的运算符和优先级

yield x Generator function send protocol (new in Release 2.5)
lambda args: expression Anonymous function generation
x if y else z Ternary selection expression (new in Release 2.5)
x or y Logical OR (y is evaluated only if x is false)
x and y Logical AND (y is evaluated only if x is true)
not x Logical negation
x < y,x <= y,x > y,x >= y,x == y,x <> y,x != Comparison operators, value equality operators,a object
y, x is y, x is not y, x in y, x not in y identity tests, sequence membership
x | y Bitwise OR
x ^ y Bitwise eXclusive OR
x & y Bitwise AND
x << y, x >> y Shift x left or right by y bits
-x + y, x – y Addition/concatenation, subtraction
x * y, x % y, x / y, x // y Multiplication/repetition, remainder/format, divisionb
-x, +x, ~x, x ** y Unary negation, identity, bitwise complement, binary power
x[i], x[i:j], x.attr, x(...) Indexing, slicing, qualification, function calls
(...), [...], {...}, `...` Tuple, list,c dictionary, conversion to stringd


其中包括三元运算符
c=5 if False else 6
其中False部分可以使用不同的bool表达式进行替换,其他情况非0的 均为true

上表中,运算优先级 有低到高排序,如同Java一样,可以使用()进行优先级运算

当混合Integer与浮点类型时,Python首先会自动将Integer转换成浮点,然后进行计算,与Long类型混合时,同样也会进行自动

的类型转换

处理数字时,Python解释器所使用的数字与使用print函数打印出来的数字并不相同,可以使用repr()进行查看,也可以在

common line下进行查看,同样也可以使用str()进行转换字符串,不过直接使用变量进行赋值即可
print 0.5/0.3
print repr(0.5/0.3)


/运算与//的区别, 后者将返回一个整数,前者则能带小数点

bitwise 位操作  << | &等

Long Integer, Python同样可以使用L,声明一个变量为Long类型

Complex Numbers 使用j或者J结尾的数字表达,具体用途未知..需进一步了解

Hexadecimal and Octal Notation  16进制和8进制
8进制使用0开头,后面包含0-7的数字,长度为3位
16进制使用0x或0X开头,后面跟随0-9或A-F(忽略大小写),长度为4位

可以使用hex()和oct()进行进制转换的操作,参数为int类型, 也可以使用int('',16) 等进行逆向转换

也可以使用 eval('0x40') 进行转换成int类型
在使用%进行字符串格式化时, 使用%o代表 8进制,x(忽略大小写)代表16进制:
"%o %x %X" % (64, 64, 255),

注意在进制操作时,Python都会将其转换成10进制进行显示

其他内置数字工具
math模块,包含了大多C下的math类库, 还有一些方法已经被内置,如: abs 绝对值, pow 幂运算,round,和int 等

random模块,提供随机数相关的操作,random( ) 返回0-1之间的浮点随机数, randint(1,10)返回指定区间的整数,
choice(),返回随机索引的元素,其中参数可以为List

Python的核心数字类型包含 integer, long integer,floating point, and complex(j)
在Python下提供了一种新的核心数字类型 decimal对象,需要导入该模块才可使用,看起来与浮点类型相似,不过提供
了更高的精度,常用于货币计算
声明格式如:
Decimal('0.1')

Sets Python2.4提供的一种新的集合容器,不过因为支持数学上的集合操作,所在这里也进行了介绍
创建的方式
x = set('abcde')
engineers = set(['bob', 'sue', 'ann', 'vic'])

支持 - | & 等操作,传统的数学上的集操作
Python3.0中 {}提供和sets一样的功能

Booleans 类型,所有非0的数字均为true,也许包括所有其他的对象 (None为false)
使用True and False 代替原来的 1 and 0


照旧凑字数,不过下面的问题的确不错..也很简单的单词
Chapter Quiz

1. What is the value of the expression 2 * (3 + 4) in Python?
2. What is the value of the expression 2 * 3 + 4 in Python?
3. What is the value of the expression 2 + 3 * 4 in Python?
4. What tools can you use to find a number’s square root, as well as its square?
5. What is the type of the result of the expression 1 + 2.0 + 3?
6. How could you truncate and round a floating-point number?
7. How can you convert an integer to a floating-point number?
8. How would you display an integer in octal or hexadecimal notation?
9. How might you convert an octal or hexadecimal string to a plain integer?

Quiz Answers

1. The result value will be 14, the result of 2 * 7, because the parentheses force the addition to happen before the multiplication.

2. Here, the result will be 10, the result of 6 + 4. Python’s operator precedence rules are applied in the absence of parentheses, and multiplication has higher precedence than (i.e., happens before) addition, per Table 5-2.

3. This expression yields 14, the result of 2 + 12, for the same precedence reasons as in the prior question.

4. Functions for obtaining the square root, as well as pi, tangents, and more, are
available in the imported math module. To find a number’s square root, import
math and call math.sqrt(N). To get a number’s square, use either the exponent
expression X** 2, or the built-in function pow(X, 2).

5. The result will be a floating-point number: the integers are converted up to floating point, the most complex type in the expression, and floating-point math is used to evaluate it.

6. The int(N) function truncates, and the round(N, digits?) function rounds.

7. The float(I) function converts an integer to a floating point; mixing an integer with a floating point within an expression will result in a conversion as well.
8. The oct(I) and hex(I) built-in functions return the octal and hexadecimal string forms for an integer. The % string formatting expression also provides targets for doing this.

9. The int(S, base?) function can be used to convert from octal and hexadecimal
strings to normal integers (pass in 8 or 16 for the base). The eval(S) function can be used for this purpose too, but it’s more expensive to run and can have security issues. Note that integers are always stored in binary in computer memory;these are just display string format conversions.








































分享到:
评论

相关推荐

    《Python机器学习(第 2 版)》书籍代码库和信息资源.zip

    第 3 版的代码存储库链接为https://github.com/rasbt/python-machine-learning-book-3rd-edition。Python 机器学习,第二版2017 年 9 月 20 日发布平装本622 页出版商Packt Publishing语言英语ISBN-101787125939ISBN...

    Machine-Learning-Notebooks:很多机器学习相关算法的Python笔记本合集

    #Machine Learning 集合 Python Notebooks,适用于许多机器学习相关算法。 IMDB 数据分析,每年评分最高的电影,得分与否之间的相关性。 票数。Ransac 使用不同类型的数据集实现以了解其优点和局限性。

    基于三菱PLC和触摸屏的停车场智能管理系统设计与实现

    内容概要:本文详细介绍了基于三菱PLC和三菱触摸屏构建的停车场智能管理系统。系统分为入口、出口和管理中心三大部分,分别负责车辆身份识别、车位检测、道闸控制、缴费结算等功能。三菱PLC作为核心控制器,通过梯形图编程实现了车辆检测、道闸控制等关键逻辑;三菱触摸屏提供人机交互界面,支持参数设置、状态监控等功能。文中还讨论了PLC与触摸屏之间的通信配置,以及如何通过物联网技术将系统接入云端。 适合人群:从事智能交通系统开发的技术人员,尤其是熟悉三菱PLC编程和触摸屏应用的工程师。 使用场景及目标:适用于新建或改造停车场项目,旨在提高停车场管理效率和服务质量,减少人工干预,实现智能化运营。 其他说明:文中提供了具体的硬件配置建议、PLC编程实例、触摸屏界面设计指南及通信协议解析,有助于读者快速理解和实施类似项目。

    自动化生产领域:汇川AM系列PLC在全自动N95口罩机中的高级编程与控制应用

    内容概要:本文深入探讨了基于汇川AM401/AM403系列PLC和CODESYS高级编程模式构建的全自动N95口罩机控制系统。该系统涵盖了多个关键技术,包括轴控制(如绝对定位、相对定位)、凸轮同步控制、超声波焊接机控制、放卷张力控制、封边轴焊耳轴随动跟随控制、高速低速切换控制、步进电机精细控制等。此外,还介绍了IT7070系列触摸屏提供的友好交互界面及其产量统计功能。文章详细解析了各部分的具体实现方式,如通过ST语言编写复杂的控制逻辑,利用CAM_Profile生成器动态调整凸轮曲线,以及通过PID算法实现张力控制等。同时,强调了程序的模块化设计和详细的注释,便于维护和扩展。 适合人群:从事自动化生产设备开发的技术人员,尤其是熟悉PLC编程和CODESYS平台的工程师。 使用场景及目标:适用于希望深入了解全自动N95口罩机控制系统设计和实现的专业人士。主要目标是展示如何通过先进的编程技术和控制策略提升口罩生产的效率和质量。 其他说明:文中提到的实际案例和技术细节有助于读者更好地理解和应用相关技术,同时也为类似项目的开发提供了宝贵的参考资料。

    【嵌入式开发】Linux内核移植全流程解析:从准备工作到问题解决的详细指南

    内容概要:本文详细介绍了Linux内核移植在嵌入式开发中的重要性及其具体实施步骤。首先,强调了Linux内核移植作为连接硬件与软件桥梁的重要性,特别是在智能穿戴设备、工业自动化控制系统等广泛应用中的角色。文章随后解析了Linux内核移植的主要步骤,包括准备阶段(选择合适的内核版本、获取源码、配置交叉编译环境)、内核源码修改(硬件平台支持、时钟调整、机器码适配)、内核配置(通过make config、make menuconfig或make xconfig进行配置)、内核编译与安装。此外,还探讨了常见的移植问题及其解决方案,如串口打印异常、文件系统挂载故障和驱动适配难题。最后,通过一个具体的ARM架构开发板移植案例,展示了整个移植流程的实际操作,并展望了Linux内核移植技术的发展趋势。 适合人群:具备一定嵌入式开发基础,特别是对Linux内核有一定了解的研发人员和技术爱好者。 使用场景及目标:①帮助开发者理解Linux内核移植的基本概念和流程;②指导开发者在实际项目中进行Linux内核移植,解决常见问题;③为从事嵌入式系统开发的人员提供理论支持和技术参考。 其他说明:Linux内核移植是一项复杂但极具价值的任务,不仅需要扎实的理论知识,还需要丰富的实践经验。随着技术的进步,Linux内核移植技术也在不断发展,未来的方向将更加注重自动化和智能化,以提高移植效率和成功率。建议读者在学习过程中结合实际案例进行练习,逐步积累经验,掌握这一关键技术。

    识别多项式模型:项生成、结构检测、参数估计和动态验证

    实现全面的系统表征,包括候选项生成、结构检测、参数估计以及动态和静态模型验证。该软件包特别适用于分析具有固有噪声和误差的流动工厂系统,这些系统被建模为受白噪声破坏的二次多项式。 主要特点: 动态数据分析:处理输入和输出的时间序列数据,并验证数据集以进行识别和验证。 结构检测:删除不合适的聚类,并应用AIC和ERR等优化算法来细化模型结构。 参数估计:使用扩展最小二乘(ELS)或受限扩展最小二乘(RELS)计算模型参数。 模型验证:通过残差分析和相关系数评估模型性能。 静态模型仿真:生成静态响应并模拟各种输入条件下的系统行为。 方法概述: 该类包括支持识别过程的几种方法: generateCandidateTerms:构造一个用于系统特征描述的候选术语矩阵。 detectStructure:应用算法精确识别模型结构。 estimateParameters ELS:使用扩展最小二乘法估计动态模型参数。 estimateParameters RELS:使用受限扩展最小二乘法计算参数。 validateModel:分析模型准确性并验证残差行为。 buildStaticResponse:模拟静态模型对不同输入的响应。 displayModel:以文本和面板格式显示已识别的动态模型。 displayStaticModel:展示静态模型及其仿真结果。

    COMSOL变压器模型:时域与频域分析及磁致伸缩、噪声和洛伦兹力的多物理场仿真

    内容概要:本文详细介绍了如何使用 COMSOL Multiphysics 对变压器进行时域和频域分析,探讨了磁致伸缩、噪声和洛伦兹力的影响。文中通过具体的代码示例展示了如何设置时域和频域的边界条件,定义磁致伸缩系数,计算洛伦兹力,并通过多物理场耦合模拟变压器的振动和噪声。此外,还讨论了一些常见的仿真技巧和注意事项,如相位对齐、材料非线性特性和边界条件设置等。 适合人群:从事电力系统研究、变压器设计和仿真的工程师和技术人员。 使用场景及目标:适用于希望深入了解变压器内部物理机制及其对外界因素响应的专业人士。通过掌握这些方法,可以优化变压器设计,减少噪声,提升电力系统的稳定性和可靠性。 其他说明:文章不仅提供了理论背景,还给出了实用的代码片段和仿真技巧,帮助读者更好地理解和应用 COMSOL 进行变压器建模。

    linux系统~~~~~~~

    linux系统~~~~~~~~~~~~~

    TheIntroductionOfApache

    TheIntroductionOfApache(Apache的有关介绍)

    校园疫情防控管理平台 2025免费JAVA微信小程序毕设

    2025免费微信小程序毕业设计成品,包括源码+数据库+往届论文资料,附带启动教程和安装包。 启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS 讲解视频:https://www.bilibili.com/video/BV1BVKMeZEYr 技术栈:Uniapp+Vue.js+SpringBoot+MySQL。 开发工具:Idea+VSCode+微信开发者工具。

    电气仿真中Matlab/Simulink的应用:电力电子、电机控制、新能源发电及电力系统的模型定制与优化

    内容概要:本文详细介绍了Matlab/Simulink在电气仿真领域的应用,涵盖多个方面。首先讨论了三相逆变器建模的关键参数设置,如载波频率和死区时间。接着探讨了电机控制中PI参数整定的方法,特别是永磁同步电机的矢量控制。对于新能源发电,着重讲解了光伏阵列的MPPT算法及其优化策略。此外,还涉及电力系统仿真的技巧,如自定义变压器模型和故障穿越功能的实现。文中提供了大量实用的代码片段,帮助读者更好地理解和应用这些技术。 适合人群:从事电力电子、电机控制、新能源发电以及电力系统仿真的工程师和技术人员。 使用场景及目标:①快速搭建和优化电力电子设备的仿真模型;②提高电机控制系统的设计效率和性能;③优化新能源发电系统的MPPT算法;④增强电力系统仿真的准确性和可靠性。 其他说明:文章强调了仿真过程中常见的问题及解决方案,提供了丰富的实战经验和技巧,有助于读者在实际工作中少走弯路。同时,鼓励读者利用Simulink自带的案例库进行学习和参考。

    MATLAB统计工具箱中的回归分析命令.pptx

    MATLAB统计工具箱中的回归分析命令.pptx

    NSAC全国重点标准化考试联盟认证试题计算机辅助设计AutoCAD.doc

    NSAC全国重点标准化考试联盟认证试题计算机辅助设计AutoCAD.doc

    精灵传信系统 精灵通讯技术 自定义对接易支付 支持网站+小程序双端源码.zip

    精灵传信支持在线提交发送短信,查看回复短信,在线购买额度,自定义对接易支付,设置违禁词,支持网站+小程序双端。 环境要求: PHP >= 73 MySQL>=5.6 Nginx>=1.6 系统安装教程 1.导入安装包里的数据库 2.打开.env文件填写数据库信息 3.设置运行目录public 4.设置伪静态thinkphp 后台账号密码分别是admin,123456

    自动化压测重启Android手机设备

    1. 插上手机后会自动检测手机是否连接,连接成功后会自动重启; 2. 电脑上有adb 环境; 3. 电脑上装有grep 程序

    Matlab-第七讲:编程基础II(-函数-).pptx

    Matlab-第七讲:编程基础II(-函数-).pptx

    基于遗传算法与免疫算法的物流配送中心选址优化及VRP路径规划(MATLAB实现)

    内容概要:本文详细介绍了利用遗传算法和免疫算法解决物流配送中心选址问题的方法,并提供了完整的MATLAB源码及注释。文章首先阐述了物流配送中心选址的重要性和挑战,然后重点讲解了适应度函数的设计,包括处理容量约束和超载惩罚。接着介绍了种群初始化、交叉操作、变异操作的具体实现细节,以及如何通过动态调整变异率来避免早熟收敛。此外,还探讨了免疫算法的应用,通过引入抗体浓度机制防止算法陷入局部最优。最后展示了算法的实际效果,包括运输成本的显著降低和车辆满载率的提升。文中提供的代码具有良好的扩展性,能够适应不同的物流网络规模和需求。 适合人群:从事物流管理、运筹优化领域的研究人员和技术人员,特别是对遗传算法、免疫算法感兴趣的开发者。 使用场景及目标:适用于需要优化物流配送中心选址的企业和个人。主要目标是通过合理的数学建模和智能算法,降低运输成本,提高运营效率,实现资源的最佳配置。 其他说明:本文不仅提供理论解释,还包括详细的代码实现和调优建议,帮助读者更好地理解和应用相关算法。同时,代码中预留了多种扩展接口,方便进一步研究和改进。

    S7-200 PLC实现六位密码锁系统的详细解析及应用场景

    内容概要:本文详细介绍了一套基于西门子S7-200 PLC的六位密码锁系统的设计与实现。首先介绍了系统的硬件配置,包括六个数字输入点、四个功能键以及三个状态指示灯。接着深入讲解了密码锁的关键代码,如输入检测、密码比对、错误处理和防破解机制。文中还分享了许多实际调试的经验和技术细节,如按键防抖、移位寄存器的应用、指针寻址和循环比较等。此外,作者还讨论了如何优化程序性能,提高系统的稳定性和安全性。 适合人群:具备一定PLC编程基础的技术人员,尤其是从事工业自动化领域的工程师。 使用场景及目标:适用于需要高安全性和可靠性的门禁控制系统,如工厂车间、仓库等场所的安全门管理。主要目标是通过PLC实现一个稳定的六位密码锁系统,防止未经授权的访问。 其他说明:文中提供了详细的代码示例和调试技巧,帮助读者更好地理解和实现该系统。同时,作者还提到未来可能加入指纹识别等高级功能,进一步提升系统的安全性。

    JSP重点技术基础习题.doc

    JSP重点技术基础习题.doc

    家居项目,前端技术栈vue

    家居项目,前端技术栈vue

Global site tag (gtag.js) - Google Analytics