一、数据类型转换 1。1意义 之所以会存在数据类型转换,这是因为有时获取的数据为字符串格式,如:通过input函数接收键盘的输入。此时将该数据需与指定类型的数据进行运算,就会报错。因此需进行数据类型转换。当然,数据类型转换的前提是结果可预知,也就是保证该字符串确实能转换为对应的数据类型。而数据类型的转换则需用Python内置的函数。 1。2转换函数 下面给出Python内置的常见的数据转换函数: 函数 类比Java 说明 int(x〔,base〕) Integer。parseInt 将x转换为一个整数 float(x) Float。parseFloat 将x转换为个浮点数 complex(real〔,imag〕) 无 创建个复数,real为实部,imag为虚部 str(x) String。valueOf 将对象x转换为字符串 repr(x) 无 将对象x转换为字符串 eval(str) ScriptEngin对象的eval方法 来计算在字符串中的有效Python表达式,并返回个对象 tuple(s) Collections。unmodifiableList 将序列s转换为个元组 list(s) newArrayList 将序列s转换为个列表 set(s) newHashSet 将序列s转换为一个集合 chr(x) 直接强转为char 将个整数转换为个Unicode字符 ord(x) 直接强转为int 将个字符转换为它的ASCII整数值 hex(x) Integer。toHexString 将个整数转换为个六进制字符串 oct(x) Integer。toOctalString 将个整数转换为个进制字符串 bin(x) Integer。toBinaryString 将个整数转换为个进制字符串 1。3示例 下面给出对应的示例:s12字符串转换整数iint(s)print(fi的值为:{i},类型为:,type(i))字符串转为floats3。14ffloat(s)print(ff的值为:{f},类型为:,type(f))获取复数类型ccomplex(3,2)print(fc的值为:{c},类型为:,type(c))对象转字符串snumstr(12)print(fsnum的值为:{snum},类型为:,type(snum))对象转字符串,与str的区别在于,若被转换的对象本就为字符串,则会额外增加单引号rnumrepr(12)print(frnum的值为:{rnum},类型为:,type(rnum))arr〔Tom,Jerry,Spike〕序列转元组ttuple(arr)print(ft的值为:{t},类型为:,type(t))序列转列表llist(arr)print(fl的值为:{l},类型为:,type(l))序列转集合ssset(arr)print(fss的值为:{ss},类型为:,type(ss))整数转对应的字符,这里的字符的类型依然为字符串cchr(65)print(fc的值为:{c},类型为:,type(c))字符类型转整数oord(A)print(fo的值为:{o},类型为:,type(o))整数转换为十六进制hhex(10)print(fh的值为:{h},类型为:,type(h))整数转换为八进制ococt(10)print(foc的值为:{oc},类型为:,type(oc))整数转换为二进制bbin(10)print(fb的值为:{b},类型为:,type(b)) 执行结果如下: 二、运算符 所谓运算符就是一种特殊的符号,可实现数据的赋值、比较和运算等。与Java类似,Python的运算符也大致分为:算术运算符、赋值运算符、比较运算符、逻辑运算符以及位运算符等。 2。1算术运算符 算术运算符主要用于实现常见的一些算术运算,如:加、减、乘、除、求余等。下面为Python中提供的算术运算符: 运算符 描述 加 减 乘 除 整除 求余 指数 需要说明的是,这里的除与Java有些差别。对于Java而言,使用做除法运算时,若参与运算的数据都为整数类型,则进行整除运算;若参与运算的数据至少含一个浮点数类型,则会保留小数位。但在Python中,使用做除法运算时,无论数据类型为整数还是浮点数,都会保留小数。若需进行整除操作,则必须使用专门的整除运算符:。 下面给出对应的例子:加法print(32,32)减法print(32,32)乘法print(32,32)除法print(32,32)整除print(32,32)求余print(32,32)指数print(32,32) 执行结果如下: 2。2赋值运算符 2。2。1单赋值运算符 对于赋值运算符而言,Python与Java一样,均使用。下面给出对应的例子:为单个变量赋值num1print(num:,num)多个变量符相同的值ab10print(a,a,,b,b) 执行结果如下: 当然,python除可使用如上方式进行赋值外,还使用多变量赋值的语法,下面给出对应的例子:多变量赋值num1,float1,str110,0。5,helloworldprint(num1:,num1)print(float1:,float1)print(str1:,str1) 执行结果如下: 2。2。2复合赋值运算符 复合赋值运算符本质上也是赋值运算符,只不过与常见的算术运算符组合使用后有了新的含义,如:ab相当于aab。下面给出复合运算符对应的例子:a3a2;print(a的值为:,a)b3b2print(b的值为:,b)c3c2print(c的值为:,c)d3d2print(d的值为:,d)e3e3print(e的值为:,e)f3f2print(f的值为:,f)g3g2print(f的值为:,g) 执行结果如下: 2。3比较运算符 比较运算符通常用来对两个数据进行比较,下面给出常见的比较运算符: 运算符 描述 判断两个操作数是否相等,若相等返回True,否则返回False ! 判断两个操作数是否不相等,若不相等返回True,否则返回False 判断左侧操作数是否大于右侧操作数,若大于返回True,否则返回False 判断左侧操作数是否小于右侧操作数,若小于返回True,否则返回False 判断左侧操作数是否大于等于右侧操作数,若大于等于返回True,否则返回False 判断左侧操作数是否小于等于右侧操作数,若小于等于返回True,否则返回False 下面给出对应的示例:a7b5print(ab:,ab)print(a!b:,a!b)print(ab:,ab)print(ab:,ab)print(ab:,ab)print(ab:,ab) 执行结果如下: 2。4逻辑运算符 逻辑运算符主要用于连接两个布尔值或布尔表达式,对于Python而言,其逻辑运算符有三个,分别是:与(and)、或(or)和非(not)。下面给出三者代表的含义: 运算符 逻辑表达式 描述 and xandy 表示与,若x为False,则返回False,否则返回y or xory 表示或,若x为True,则返回True,否则返回y not notx 表示非,若x为True,则返回False,否则返回True 下面给出对应的例子:a1b2c3print((ab)and(bc))print((ab)and(bc))print((ab)or(bc))print(not(ab)) 执行结果如下: 需要说明的是,Python中的逻辑运算符具备短路功能。比如下面的例子:print(105and300)print(105and300) 执行结果如下: 也就是说,当通过首个布尔值或布尔表达式可推断出整个表达式的值时,不会执行后续的判断。由于105为False,此时可推断整个表达式的值为False,因此不会尝试执行后续的300操作,因此未抛出异常;但对于第二个表达式而言,首个布尔表达式105为True,因此还需进行后续的300判断,因此抛出了除零异常。 需要说明的是,由于在Python中,数字类型也可自动转换为布尔类型,因此逻辑运算符还可在两个数字间进行运算。当逻辑运算符在数字间进行运算时,若为and,则只要存在一个为0的值,则直接返回0,否则返回最后一个非0的数字;若为or,当所有值均为0时,才返回0,否则返回首个非0的数;若为not,则表达式为非0数字时,返回False,否则返回True。下面给出一个例子:a0b1c3d4print(aandbandc的结果为:,aandbandc)print(bandcandd的结果为:,bandcandd)print(aorborc的结果为:,aorborc)print(aorcord的结果为:,aorcord)print(aoraora的结果为:,aoraora)print(nota)print(notb)print(notc) 执行结果如下: 2。5位运算符 位运算符主要用于对整数进行移位操作,常见的位运算符有:左移()、右移()、按位与()、按位或()、按位反()以及按位异或()等。这与Java中的位运算类似。 下面给出对应的例子:左移操作a6print(a1的值为:,a1)右移操作print(a1的操作为:,a1)b4按位与print(ab的值为:,ab)按位或print(ab的值为:,ab)按位反print(a的值为:,a)按位异或print(ab的值为:,ab) 执行结果如下: