精华内容
下载资源
问答
  • 将字符串转换成整型,从字面理解很容易让人误会。比如,要把这个"abcabc...思想:python提供转换成整型用int()这关键字,那么,如果我这样int('12') int(12.12)这样是可以转成整型的。但是如果int('abc') int('...

    将字符串转换成,整型,从字面理解很容易让人误会。

    比如,要把这个"abcabc"转换成整型,臣妾做不到啊。除成转成ascii。

    我们所说字符串转成整型是这样的。

    s = "12"s= "12.12"

    我们自己写一个函数,来实现这个转换。

    思想:python提供转换成整型用int()这关键字,那么,如果我这样int('12') int(12.12)这样是可以转成整型的。但是如果int('abc') int('12.12') 会报类型错误

    那么我们就利用无法转换的情况,会报类型错误来写这个函数。

    实现:如果可以转换成,int型直接反回转换后的值,如果无法转换,反回False

    defto_int(str):try:

    int(str)returnint(str)exceptValueError: #报类型错误,说明不是整型的try:

    float(str) #用这个来验证,是不是浮点字符串returnint(float(str))exceptValueError: #如果报错,说明即不是浮点,也不是int字符串。 是一个真正的字符串return False

    调用:

    print to_int('str')print to_int('str123')print to_int('12.12')print to_int('234')print to_int('12#$%%')

    结果:

    D:\Python27\python.exe D:/HttpRunnerManager-master/HttpRunnerManager-master/test.py

    False

    False12

    234False

    python学习3群:563227894

    展开全文
  • python基本数据类型之数字与浮点型python3中,整数的数据类型为int,而浮点数的数据类型为float。python2中整数可以是int和long(长整型)两种类型,python3只保留了int,去除了long。整型int也属于不可变类型,即...

    python基本数据类型之数字与浮点型

    在python3中,整数的数据类型为int,而浮点数的数据类型为float。python2中整数可以是int和long(长整型)两种类型,python3只保留了int,去除了long。

    整型

    int也属于不可变类型,即int类型的变量一旦在内存中被创建就无法改变。int类型本身的内置方法并不多,仅有4个方法:bit_length()、conjugate、from_bytes、to_bytes。

    1、bit_length()

    该方法是获取某个数字二进制形式的位数。

    i = 5

    v = i.bit_length()

    print(bin(i))

    print(v)

    打印结果:

    0b101

    3

    可以看到,5被转换成二进制就是101,该数字的二进制形式有3位。

    2、conjugate

    该方法是用来操作复数的。在python中,复数的表示方法为:real(实部) + image j(虚部)。实部和虚部都可以是浮点类型(float),虚部的后缀可以是j或J。conjugate方法可以返回复数的共轭复数。

    i = (12 + 3.4j)

    v = i.conjugate()

    print(v)

    打印结果:(12-3.4j)

    注意,在定义复数的时候,尽量带上小括号,这样可以更加明确变量之间的关系。

    3、from_bytes、to_bytes

    from_bytes是将bytes类型的变量转化为十进制的数字。该函数是一个类函数(可以用类名直接调用的函数)。from_bytes一共有4个参数,其中一个参数是保留参数。

    int.from_bytes(bytes, byteorder, *, signed=False)

    bytes 字节类型的变量

    bytesorder 字节类型变量的排序方式,'big'表示高位在前,低位在后;'little'表示低位在前,高位在后。

    signed 是否考虑符号位,默认为False,即不考虑符号位

    例如:

    s1 = b'\xff\xf1'

    print(int.from_bytes(s1, byteorder='big', signed=True))

    打印结果: 15

    分析该方法的作用过程:

    首先声明了一个bytes类型的变量s:s1 = b'\xff\xf1',在引号前加上b表示该变量是bytes类型,\x表示后面两位是十六进制数字。

    将 \xff 写成二进制数字:1111 1111,\xf1 则写成:1111 0001,由于高低位标识为'big',即ff为高位,f1为低位,(如果是'little',则ff是低位,f1是高位),所以整个数字的二进制形式为:11111111 11110001。

    又因为signed=True,所以要考虑符号位。因为该数字的第一位是1,因此它是一个负数。十进制要用补码来表示,而负数的补码就是原码(除符号位外)取反加1。因此取反加1后的结果为:10000000 00001111。因此表示成十进制就是 -15。

    另外一个例子:

    s1 = b'\xff\xf1'

    print(int.from_bytes(s1, byteorder='little', signed=False))

    打印结果:61951

    在这个例子中,byteorder='little',表示ff是低位,f1是高位,则整个二进制数写作:11110001 11111111;signed=False表示不考虑符号位。因此表示为正数,结果就是61951。

    to_bytes表示将某个数转换为十六进制表示,是from_bytes函数的逆过程。

    print(int.to_bytes(61951, length=2, byteorder='little', signed=False))

    打印结果:b'\xff\xf1'

    to_bytes函数的参数与from_bytes的参数意义基本一致,其中length=2指定转换后的bytes类型用2位来表示,即\xff、\xf1两位。

    浮点类型

    python中的浮点数类型为float,其中包含的方法有:as_integer_ratio、conjugate、fromhex、hex、is_integer

    conjugate的用法与int中的内置方法一样,因此不再赘述。

    1、as_integer_ratio

    该方法可以将某一个浮点数表示成两个整型(最小整数)之比的形式。

    例如:

    t = 10.5

    print(t.as_integer_ratio())

    打印结果:(21, 2)

    该方法其实是将浮点数转换成分数形式,当遇到负数时,该方法会保证分母为正。

    t = -0.25

    print(t.as_integer_ratio())

    打印结果:(-1, 4)

    该方法寻找的是最精确的整数之比,所以当输入的小数特别复杂时,寻找到的最小整数也就越大。

    t = -0.99

    print(t.as_integer_ratio())

    打印结果:(-4458563631096791, 4503599627370496)

    当寻找的最精确比值中的整数超出int类型最大值时,会产生内存溢出的错误。

    2、fromhex、hex

    fromhex方法是将一个十六进制用十进制进行表示。

    f1 = '0x1.fp1'

    print(float.fromhex(f1))

    打印结果:3.875

    0x1.fp1中的符号表示意义如下:

    0x 表示该数字是一个十六进制数字

    1.f 这个是数字部分

    p1 科学计数法,p1的意思是2^1, 即2的1次方。

    该函数的转换过程是:

    1.f转换成二进制表示为:1.1111;

    1.fp1表示的是1.111 * 2^1, 也就是将小数点右移一位,该数字表示为二进制:11.111。

    将11.111转换成十进制。乘以2^(n-1)次方, 1*2^1 + 1*2^0 + 1*2^(-1) + 1*2^(-2) + 1*2^(-3) = 2 + 1 + 0.5 + 0.25 + 0.125 = 3.875。

    而hex则是fromhex的逆过程,即将十进制数字转换成八进制表示。该过程同样也需要二进制作为中介。

    f2 = 7.875

    print(float.hex(f2))

    打印结果:0x1.f800000000000p+2

    该函数的过程如下:

    将十进制数字拆分为整数部分和小数部分。7.875分为7 + 0.875

    对于整数部分,让其除以2,不断取余,并逆序取值。

    7 / 2 = 3...1(余1)

    3 / 2 = 1...1

    由最后得到的1往上取,即7 = 111b

    对于小数部分,使其不断乘以2,取其整数部分,并顺序取值。

    0.875 * 2 = 1.75(取1)

    0.75 * 2 = 1.5(取1)

    0.5 * 2 = 1

    由第一个得到的1向下取,即0.875 = 0.111b

    所以7.875转换成二进制为:111.111,使用科学计数法表示为:1.11111p2

    将1.11111补齐:1.1111 1000,四位一取,即1.f8

    所以7.875(10)转换成八进制:1.f8p2。

    3、is_integer

    该方法用来判断一个浮点数是否是整数,即能否精确转换成整数(小数部分是否全为0)。

    i = 3.00

    v1 = i.is_integer()

    print('v1 = '+ str(v1))

    i2 = 4.12

    v2 = i2.is_integer()

    print('v2 = '+ str(v2))

    打印结果:

    v1 = True

    v2 = False

    可以看到,当小数部分不全为0时,该方法返回的就是False。

    展开全文
  • 零基础Python教程006期_python整型浮点型的数值转换
  • 将numpy array由浮点型转换整型

    万次阅读 2016-03-18 08:57:19
    将numpy array由浮点型转换整型,使用numpy中的astype()方法可以实现。

    使用numpy中的astype()方法可以实现,示例如下:


    x
    Out[20]: 
    array([[ 5.        ,  4.        ],
           [ 4.        ,  4.33333333],
           [ 3.66666667,  4.5       ]])
    
    x.astype(int)
    Out[21]: 
    array([[5, 4],
           [4, 4],
           [3, 4]])


    参考:http://stackoverflow.com/questions/10873824/how-to-convert-2d-float-numpy-array-to-2d-int-numpy-array

    展开全文
  • Python2.6 之前:字符串转换整形浮点型 >>>import string >>>string.atoi('34.1') 34 >>>string.atof(‘34.1') 34.1 python2.6之后:字符串转换整形浮点型 >>>import string >>>int('34.1') 34 >>>float...
  • 内置函数type获取数据的数据类型print(type(18)) #print(type(5.6)) #print(type('hello')) #一、整数类型内置函数将整数转换为不同进制的字符串bin():十进制整数->二进制字符串 print(bin(118))#0b1110110oct(): ...

    内置函数type获取数据的数据类型

    print(type(18)) #

    print(type(5.6)) #

    print(type('hello')) #

    一、整数类型

    内置函数将整数转换为不同进制的字符串

    bin():十进制整数->二进制字符串 print(bin(118))#0b1110110

    oct(): 十进制整数->八进制字符串 print(oct(118)) #0o166

    hex(): 十进制整数->十六进制字符串 print(hex(118)) #0x76

    整数的创建

    内置函数 int

    1、无参数

    print(int()) #0返回整数0

    2、一个参数

    print(int(118)) #118 返回118

    print(int(118.2)) #118 返回118

    print(int('118')) #118 返回118

    3、二个参数(字符串,进制)

    print(int('1110110',2)) #118

    print('0o166',8) #118

    print('0x76',16) #118

    二、浮点数

    浮点数的创建

    内置函数 float

    1、无参数

    print(float()) #0.0

    2、一个参数

    print(float(118.2)) #118.2

    print(float('118')) #118.0

    三、科学计数法表示浮点数

    print(2.3e8) #2.3乘以10的n次方

    四、浮点存储的不精确性

    print(1.1+2.2-3.3)#4.440892098500626e-16

    print(1.1+2.2) #3.3000000000000003

    解决方案:导入模块decimal,用于处理十进制的浮点数;模块fractions用于处理分数

    from decimal import Decimal

    print(Decimal('1.1')+Decimal('2.2')-Decimal('3.3')) #0.0

    print(Decimal('1.1')+Decimal('2.2')) #3.3

    from fractions import Fraction

    print(Fraction(11,10)+Fraction(22,10)-Fraction(33,10))

    五、布尔类型

    True 、False

    print(5>3) #True

    print(5<3) #False

    print(True==1) #True

    print(False==0) #Ture

    print(True+False+5) #6

    原文链接:https://blog.csdn.net/qiuzhimin0/article/details/105830935

    展开全文
  • 一、整型1、用途:记录年龄、等级、各种号码等2、定义方式age = 22只能将纯数字的字符串转换成整型3、常用操作+内置方法赋值运算、比较运算、算数运算该类型总结:存一个值不可变(可变:值变,id不变,可变不可hash...
  • 1.python 字符串和整数的转换 常用的格式化字符串: %d 整数 %f%F 浮点数 %e%E 科学计数 %g%G e 和%f/%E 和%F 的简写 %% 输出% 格式化操作符辅助指令 符号 作用 * 定义宽度或者小数点精度 - 用做左对齐 + 在...
  • Python 字符串转换整形浮点类型

    千次阅读 2017-05-17 18:32:01
    Python2.6 之前:字符串转换整形浮点型 >>>import string >>>string.atoi('34.1') 34 >>>string.atof(‘34.1’) 34.1 python2.6之后:字符串转换整形浮点型 >>>import string >>>int('34.1') ...
  • Python实现字符串转换成浮点型数字

    千次阅读 2018-06-07 20:56:13
    使用Python实现float函数 from functools import reduce digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def char2num(s): return digits[s] def str2int(s): retu...
  • 转换浮点型 float(x) 【例子】 print(int('520')) # 520 print(int(520.52)) # 520 print(float('520.52')) # 520.52 print(float(520)) # 520.0 print(str(10 + 10)) # 20 print(str(10.1 + 5.2)) # 15.3 5. ...
  • python字符串转换浮点Given a float value and we have to convert the value to the string using str() function. 给定一个float值,我们必须使用str()函数将该值转换为字符串。 Python code to convert a float...
  • Python字符串、整数、和浮点型数相互转换

    万次阅读 多人点赞 2018-02-09 12:48:48
    Python字符串、整数、和浮点型数相互转换 前言序锦 在编程中,经常要用到字符串的相互转换,现在在这里记录一下Python里面的字符串和整数以及浮点型数之间是如何进行相互转换的。 int(str)函数将符合整数...
  • python将字符串转换成整型

    千次阅读 2018-03-22 14:07:00
    将字符串转换成整型,从字面理解很容易让人误会。 比如,要把这个"abcabc"转换成整型,臣妾做不到啊...思想:python提供转换成整型用int()这关键字,那么,如果我这样int('12') int(12.12)这样是可以转成整型的。...
  • 1、将一个字符串转换成整型(map和reduce) from functools import reduce def str2int(s): def char2int(ch): c = {str(x): x for x in range(10)} return c[ch] def fun(n1, n2): return n1 * ...
  • Python_data_types.png数据类型Python的数据类型可以大致分为如下五类:数字(numbers)字符(string)元组(tuples)列表(list)... int)长整型(long integers, long)浮点型(floating point numbers, float)...
  • 字符串,整型浮点型等类型之间的转换可以举一反三,此处举例将浮点型转为整型的例子: 下面展示一些 内联代码片。 1. map(int, list) a = [0.0567, 9.2345, 8.1986, 4.3333]; a_int = list(map(int, a)) 2.for ...
  • Python支持多种数字类型:整型、布尔型、双精度浮点型和复数。 整型 Python里面的整型默认就能表示很大的整型。可以是十进制、八进制、十六进制。八进制以0o开头(第一个字符是数字0,第二个字符是字母o或O),十六...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,181
精华内容 8,872
关键字:

python浮点型转换成整型

python 订阅