Python 学习之路(二)
来源:互联网 发布:银行家算法例题 编辑:程序博客网 时间:2024/05/16 01:41
Python数据类型和操作
1.Python中的概念层次
一般来说,Python 的程序由模块,语句,表达式,对象组成。
层次结构如下:
1.程序由模块组成
2.模块包含语句
3.语句包含表达式
4.表达式产生对象,并对对象进行处理
我们先从底层学习,先学习Python的内置对象,即内置的一些数据类型,内置数据类型列表如图1所示。由于内置数据类型较多,不可能一次讲完,所以我们会在以后的博客中逐步讲解,这里我们只讲Numbers即数值类型。
图1
2.Numbers数值类型简介
数值类型,包含了整型(int)、浮点型(float)、复数、分数等类型。对于常用的int和float,由于Python不声明变量的类型,所以不能通过类型声明能够区分它们,Python通过是否含有小数点区分它们。这里介绍两个函数用于检测类型和判断类型,type()函数可以用来检测类型,isinstance()判断一个变量或值是不是某个类型。
>>> type(1)<class 'int'>>>> type(1.2)<class 'float'>>>> type('str')<class 'str'>>>> type('hello world!')<class 'str'>>>> isinstance(1.2,float)True>>> isinstance(1,int)True
2.1 强制类型转换
对于从float到int的强制类型转换要注意一点,int强制性类型转换是向0取整,而从int到float的转换不存在问题。>>> int(-2.3)-2>>> int(2.4)2>>>
2.2 常见数值类型运算
数值类型中常见的运算有/,//,%,*,**等。
(1) / 运算符表示浮点除法,即使分子和分母是整数,结果也是浮点数。(2) // 运算符 表示整数除法,这个整数除法返回的是不大于浮点数结果的最大整数,比如5//2=2,浮点结果为2.5,2是不大于2.5的最大整数,-5//2浮点结果是-2.5,-3是 不大于-2.5的最大整数,4//2结果是2。(3)%表示取余(4)**表示指数幂
>>> 3/21.5>>> 3//21>>> 3%21>>> 3.0//21.0>>> 3**29>>> 3*39>>> 5//22>>> -5//2-3
2.3 分数
Python中要使用分数,首先得引入模块fractions,分数的表示为: fractions.Fraction(A,B),A是分子,B是分母,使用如下:
>>> import fractions>>> fractions.Fraction(2,3)Fraction(2, 3)>>> fractions.Fraction(2,3)*2Fraction(4, 3)>>>
2.4 数学运算
首先要引入模块math,一般的三角函数如sin、cos、tan、asin、acos和atan等都有实现,调用方式则类似于math.sin,参数默认是弧度制,math.pi是圆周率,其他简单函数则可以直接调用,如pow,min,max,sum等,这里注意sum的参数是一个序列,可以用元组或列表等表示。
>>> import math>>> math.sin(math.pi/2)1.0>>> math.pi3.141592653589793>>>>>> math.sqrt(4)2.0>>> abs(-1)1>>> max(2,3)3>>> min(3,4)3>>> sum((2,3,4))9>>> pow(2,3)8>>> sum([2,3])5
注意到sum函数的两次调用的不同,第一次sum((2,3,4))是对(2,3,4)这个元组进行求和,第二次是对列表[2,3]进行求和。
2.5 复数
复数由实部和虚部组成,这里在虚部数值后加j或J即可表示复数,但要注意当虚部的数值为1时不可省略该数值也就是说,1+j或者1-j错误,下面的测试中可以看到1+j这种使用方式出错,使用如下:
>>> 1+3j(1+3j)>>> 1-3j(1-3j)>>> (1+3j)*(1-3j)(10+0j)>>> 1+jTraceback (most recent call last): File "<pyshell#50>", line 1, in <module> 1+jNameError: name 'j' is not defined>>>
2.6 二进制 八进制 十六进制
十六进制的表示,开头为0x或0X,后面是数值
八进制的表示,开头为0o或0O,后面是数值
二进制的表示,开头为0b或0B, 后面是数值
>>> 0X22>>> 0X2335>>> 0x2335>>> 0o2319>>> 0O2319>>> 0b10019>>> 0B1004>>>
十进制数值在十六进制,八进制,二进制下的表示由oct(),hex(),bin()函数完成。
>>> oct(255)'0o377'>>> hex(255)'0xff'>>> bin(255)'0b11111111'同时Python还提供了由字符串转化为整型的函数int(),使用如下
>>> int('17',8)15>>> int('176',16)374>>> int('100',2)4
注意这里第一个参数是字符串,第二个参数是进制,这里的字符串是不需要加0X,0O,0B等前缀的。
Python的一个内置函数eval(),可以执行Python代码,即在参数中输入Python的代码字符串,可以得到结果。比如
>>> eval('1+1')2>>> eval('0b0001')1
2.7 位操作
Python提供了C语言中常用的位操作,包括移位,或,与和异或
更多内容持续更新中
>>> x<<332>>> x>>40>>> x>>50>>> x|37>>> x&00
2.8 Decimal
Decimal是一种小数,精确度有限。
>>> from decimal import Decimal>>> Decimal('0.1')+Decimal('-0.1')Decimal('0.0')>>> Decimal('0.1')-Decimal('0.1')Decimal('0.0')>>>
2.9 布尔型
布尔型有两个固定的值,True和False,当然有时也可作为整数使用。
>>> True-10>>> True+12>>> False+11>>> False-1-1
更多内容持续更新中
0 0
- Python 学习之路(二)
- Python学习之路二---(基础知识)
- Python 学习之路(二)
- Python学习之路二
- FireFly开发之路(二)python学习二
- 学习python之路---python小算法总结(二)
- Python学习之路之二
- python学习之二
- Python学习之二
- Python打怪升级之路(二)学习技能
- Python学习之网页抓取(二)
- Python基础学习笔记之(二)
- Python学习笔记之(二)
- python学习笔记(二)之函数
- Python学习笔记之语法(二)
- Python基础学习笔记之(二)
- python 学习(二十)之模块
- Python学习之数据类型&(二)
- minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-
- SICP 习题 (2.22)解题总结: 迭代过程中的列表处理
- jplogic开发案例之字典工具(快速单表操作)
- 码农的产品思维培养第4节----听用户饿但不要照着做《人人都是产品经理》
- 个人HTML经验合集
- Python 学习之路(二)
- linux相关知识
- SICP 习题 (2.23)解题总结:for-each的实现
- APPCAN学习笔记003---原生开发与HTML5技术
- Mac下安装Canvas(还未成功,望高手指点)
- Nginx中ip_hash负载均衡中location的proxy_pass配置与说明
- linux shell substr(分割字符串)
- [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(中)
- SICP 习题 (2.24)解题总结:列表的结构