【Python速通2】python基本数据类型(基于Java语言的对比及扩展)

二、Python的三种基本数据类型

系列目录导航:

章节名称重要程度
1、python语言基本元素**
2、基本数据类型***
3、程序控制结构*****
4、函数和代码的复用*****
5、组合数据类型*****
6、文件和数据格式化***
7、Python程序设计方法**
8、python计算生态***

本期重点:

• 三种数字类型及其表示、进制转换

• 数字类型的运算:运算操作符、增强赋值操作符、运算函数

• 字符串的表示、转义字符、格式控制

• 字符串的索引和切片

• 字符串的操作符、处理函数、处理方法

• 真假无值的含义,比较运算和逻辑运算

• 类型判断和类型转换函数

紧接上文,本节我们来讲解python的基本数据类型:

1、数字类型及其运算

1.1 整数类型

Python语言提供三种数据类型:整数类型、浮点数类型、复数类型整数类型

python中的整数类型一般不限制取值范围,所以整型就不会像Java那样分byte、int、short、long,这个特点也在算法比赛中便于计算;其次浮点数也是一样的道理,不分float或double

而Java中常见的字符类型和布尔类型则分别归于组合数据类型中应用,在第五节中我们将会提到)

一般认为没有取值范围限制,可用十进制、二进制、八进制、十六进制表示如果不是十进制,需要引导符号

进制引导符号
十进制
二进制0b或0B(第一个字符是数字0,下同)
八进制0o或0O(第二个字符是字母O)
十六进制0x或0X

 (这里我插一句,为什么进制前一个字符为数字是因为编译器在解析程序的时候,会通过第一个字符判断属性,用于区分变量名与数字及进制符间的区别,方便代码解析)

Python可以直接处理不同进制表示的数据,最后结果默认以十进制方式显示

bin()、oct()、hex()函数可将数转化为二进制、八进制、十六进制表示,以字符串形式返回(注意返回的类型,python中大多转换函数以字符串返回,如上文提到的input函数)

注意:科学计数法只对十进制有效,在十六进制中,科学计数法不起效,如:0x3e7

中e代表14,转为十进制时用3*16^2+14*16^1+7*16^0(16^0=1)

1.2 进制转换

(1)N进制转换为十进制

若一个数在N进制中表示为1234,则其十进制为1×N^4+2×N^2+3×N^1+4XN^0

例如:二进制数0B1010的十进制为1×2^3+0×2^2+1×2^1+0×2^0 =10

十六进制数0XAB的十进制为10 × 16^1+11×16^0= 171

注:十六进制的A~F分别表示十进制中的10~15

(2)十进制转换为N进制:除N取余倒序法

将目标数字除以N,记下余数,再将所得的商除以N,记下余数……直至商为零最后将所有余数倒着写出来即可

例如:十进制数13对应的二进制

算式

余数

13÷2

6

1

6=2

3

0

3÷2

1

1

1 ÷ 2

0

1

因此十进制数13对应的二进制是0b1101

1.3 浮点数类型

  • 一般表示:用小数形式表示,必须有小数部分,可添“.0”补位
  • 科学计数法表示:aeb或aEb表示a × 10”,其中b必须是整数,例如:1e2、3.3E-3

1.4 复数类型

a+bj表示复数,其中j为虚数单位,a和b都是浮点数注意:b为0或1时也不能省略

对于复数z,z.real和z.imag分别表示它的实部和虚部

函数complex(a, b)也可以得到复数a+bj

1.5 数字类型的运算

(1)数值运算操作符

符号

含义

+、-、*、/

加、减、乘、除

/ /

整除,不大于商的最大整数

%

模运算,取余数

**

乘方

注:除法运算的结果是浮点型

例:假设×=2,则x*=5//2+5**2的结果为____

x = x*(5//2+5**2)=x*(2+25)=2*27=52

(2)增强赋值操作符:上述运算符可与赋值符号联用,形成增强赋值操作符

例如:x+=y 等价于x=x+y,其余类似

注意:运算符与赋值符号之间不能有空格

(3)数值运算函数

函数

含义

abs (x)

x的绝对值或复数的模

divmod(x,y)

x除以y的商和余数(以二元组形式输出)

pow(x,y, [z])

x的y次方(若有z则取除以z的余数)

round (x, [d])

对x四舍五入,保留d为小数(默认保留整数)

min(x1,x2,-)

括号内变量的最小值

max(x1,x2,-)

括号內变量的最大值

2、字符串类型及其操作

2.1 字符串的表示

  • 单行字符串用单引号(')或双引号(")包围
  • 多行字符串用三单引号(''')或三双引号(""")包围

python中没有单独的字符类型,默认为字符串的一部分

2.2 转义字符

在字符串中,反斜杠(\)加一个字符可以表示新的含义

类型

转义字符

含义

与特殊符号有关

\\

反斜杠本身

\'

单引号本身

\"

双引号本身

与格式控制有关

\n

换行

\t

制表符(Tab)

2.3 索引

用于取出字符串中的某个字符,语法为

字符串[序号1]

(1)正向递增序号:序号为非负数,则最左侧为0,向右依次递增

(2)反向递减序号:若序号为负数,则最右侧为-1,向左依次递减

例如:若s="abcdefg",则s[2]='c',s[-2]='f'

2.4 切片

用于取出字符串中的一个子串

(1)字符串[N:M]( 左闭右开)

获取第N到第M个字符(不包含第M个字符)的子字符串要求N和M不能超范围,可以是正向递增序号,也可以是反向递减序号

N和M都可以省略,N省略则默认为0,M省略则默认到末尾

例如:若s=" abcdefg".

则s[2:-2]="cde"(注意不包括s[-2])

s [: -2]= "abcde"

s [2 :]="cdefg"

(2)字符串[N:M:K]

获取第N到第M个字符(不包含第M个字符)、以K为步长的子字符串例如:若s="abcdefg"

则s[2:-2:2]="ce"

s [: -2: 2]="ace"

s [2:: 2]= "ceg"

(3)反向获取

字符串[N:M:K]

K可以是负数,可以获得反向的字符串

此时N对应的字符应该在M后面,如果省略不写,N默认为末尾,M默认为起始例如:若s="abcdefg"

则s[-2:2:-2]="fd"

s [: 2: -2] ="ge"

s [-2:: -2] ="fdb"

s [:: -2] ="geca"

(4)反向应用

用s[::-1]可获得s的反向字符串

例如:若s="abcdefg"

Ns [:: -1]= "gfedcba"

2.5 格式控制

使用format()方法时,槽除了花括号{  }外,还可以包含格式控制信息,语法格式为{参数序号:格式控制标记},其中格式控制标记包括:

对显示格式的规范对数据本值的规范
填充对其宽度,.精度类型

(1)填充:用于填充的字符

(2)对齐:<左对齐、>右对齐、^居中

(3)宽度:字符串总宽度

(4),:千位分隔符

(5).精度:小数最多位数或字符串最大长度

(6)类型

整数类型: b 进制、c对应Unicode、d十进制、o八进制、 x小写十六进制、 X大写十六进制浮点浮点数类型:e/E指数形式、f浮点数形式、%百分比形式

例如:保留两位小数:{:.2f};输出十六进制:{:x};

保留字符串前5位:{:.5};居中并用减号填充,总宽度为10:{:-^10}

2.6 操作符

操作符

用法

含义

+

x+y

将x、y两个字符串连接起来

*

n*x或x*n

将字符串x重复n次

in

x in s

判断x是否是s的子串

注:如果要连接字符串和数字,不能直接用+相连,而要先把用str()函数将数字转换为字符串再相连

2.7 处理函数

函数

含义

len (x)

返回字符串x的长度

str (x)

将任意类型的x转换为字符串

chr (x)

返回Unicode 编码为x的字符

ord (x)

返回字符x对应的Unicode编码

hex (x)

以字符串形式返回整数x对应的十六进制表示

oct (x)

以字符串形式返回整数x对应的八进制表示

bin (x)

以字符串形式返回整数x对应的二进制表示

字符串的长度以Unicode字符作为计数基础,中英文字符、标点符号都算1个长度单位建议记住:'0'、'A'、'a'的Unicode编码为48、65、97

2.8 处理函数

方法

含义

str. lower ()

将str中的字母全部变为小写

str.upper ()

将str中的字母全部变为大写

str. count (s)

str中子串s出现的次数

str.split([sep])

将str用sep(默认为空格)进行分割,返回分割后列表

str.join (iter)

在iter的每个元素之间插入str,连成一个字符串

str.replace (old,new)

将str中所有old子串替换成new

str. strip ([chars])

去掉str前后的chars字符(默认为空格)

str.center(width[,fillchar])

将原字符串居中,并使用fillchar填充至长度width

以上方法只是返回变换后的字符串,str本身不被修改如果想修改str本身,需要赋值,例如:str=str.lower()等(重点记几个,不用全记)

3、逻辑与比较运算

3.1  真假无值

True表示“真”,是与1相等的值;False表示“假”,是与0相等的值在进行比较运算时,所有非0数字都认为是True

注意:True和False的大小写

None也是Python的保留字,不对应任何数值,通常用来弥补程序的逻辑完整性要求

3.2 比较运算

比较运算符有:小于<、小于等于<=、大于>、大于等于>=、等于==、不等于!=

比较运算的结果是True或False

注意:留意等于==和不等于!=的写法,与赋值符号=的区别

(1)可以用于比较数值,但比较复数时只能使用等于和不等于

(2)可以用于比较字符串,从前到后依次比较Unicode编码值的大小

注意:不同数据类型也能进行比较,但结果一般没有意义

3.3 逻辑运算

逻辑运算符有:与and、或or、非not

优先级顺序是非、与、或,但建议加括号以免混乱

4、类型的判断与转换

4.1 类型判断函数

type(x)可返回x的类型,它可以作用于任何数据类型(即所有数字类型和字符串

type (x)的返回值不是字符串,而是类似于<class 'int'>,<class 'str'>等

‹class 'float'>

例如:利用type(x)==type(y)可判断x和y的类型是否相同

例如:利用type (x)==type(123)可判断x是否为整型

4.2 类型转换

通过内置类型转换函数,可以显式地对类型进行转换

函数

功能

int(x)

将浮点型或字符串型的x转换为整数

float (x)

将整型或字符串型的x转换为浮点数

str(x)

将数值型的x 转换为字符串

注意:Java中str的表达方式为String ,且为类

12月本文持续更新......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值