精华内容
下载资源
问答
  • python整数转字符串

    千次阅读 2019-01-13 18:06:00
    num = int(input('请输入一个整数:')) s = '' def int_to_str(val): li = [] while val > 0: digit = val % 10 li.append(digit) val //= 10 return li lst = int_...
    num = int(input('请输入一个整数:'))
    s = ''
    def int_to_str(val):
        li = []
        while val > 0:
            digit = val % 10
            li.append(digit)
            val //= 10
        return li
    lst = int_to_str(num)
    for i in lst[::-1]:
        s+=str(i)
    print(s, type(s))

     

    转载于:https://www.cnblogs.com/apollo1616/articles/10263474.html

    展开全文
  • python整数字符串、字节串

    万次阅读 2019-08-23 10:38:49
    python整数字符串、字节串 文章目录python整数字符串、字节串一、整数、字符串、字节串之间的相互转换1.进制转换2.字符to整数3.字节串to整数4.整数to字节串5.整数to字符串6.字符串to字节串7.字节串to字符串二、 ...

    python整数、字符串、字节串

    一、整数、字符串、字节串之间的相互转换

    1.进制转换

    10进制转16进制(注意转换出来的是16进制字符串):

    hex(16)  ==>  0x10
    

    16进制转10进制:

    int(STRING,BASE)将字符串STRING转成十进制int,其中STRING的基是base。该函数的第一个参数是字符串

    int('0x10', 16)  ==>  16
    

    类似的还有八进制oct(), 二进制bin()

    16进制字符串转成二进制

    hex_str='00fe'
    bin(int('1'+hex_str, 16))[3:]  #含有前导0
    # 结果 '0000000011111110'
    bin(int(hex_str, 16))[2:]   #忽略前导0
    # 结果 '11111110'
    

    二进制字符串转成16进制字符串

    bin_str='0b0111000011001100'
    hex(int(bin_str,2))
    # 结果 '0x70cc'
    

    2.字符to整数

    10进制字符串:

    int('10')  ==>  10
    

    16进制字符串:

    int('10', 16)  ==>  16
    # 或者
    int('0x10', 16)  ==>  16
    

    3.字节串to整数

    使用网络数据包常用的struct,兼容C语言的数据结构
    struct中支持的格式如下表

    FormatC-TypePython-Type字节数备注
    xpad byteno value1
    ccharstring of length 11
    bsigned charinteger1
    Bunsigned charinteger1
    ?_Boolbool1
    hshortinteger2
    Hunsigned shortinteger2
    iintinteger4
    Iunsigned intinteger or long4
    llonginteger4
    Lunsigned longlong4
    qlong longlong8仅支持64bit机器
    Qunsigned long longlong8仅支持64bit机器
    ffloatfloat4
    ddoublefloat8
    schar[]string1
    pchar[]string1(与机器有关)作为指针
    Pvoid *long4作为指针

    对齐方式:放在第一个fmt位置(struct包的使用)

    CHARACTERBYTE ORDERSIZEALIGNMENT
    @nativenativenative
    =nativestandardnone
    <little-endianstandardnone
    >big-endianstandardnone
    !network (= big-endian)standardnone

    pythonstruct包源码:

    def pack(fmt, *args): # known case of _struct.pack
        """ Return string containing values v1, v2, ... packed according to fmt. """
        return ""
      
    def unpack(fmt, string): # known case of _struct.unpack
        """
        Unpack the string containing packed C structure data, according to fmt.
        Requires len(string) == calcsize(fmt).
        """
        pass
    
    # 第一个参数用上述表格内的fmt格式表示字符串
    # 其他参数*args为自己要进行转为字节串的值
    

    转义为short型整数:

    struct.unpack('<hh', bytes(b'\x01\x00\x00\x00'))  ==>  (1, 0)
    # fmt的"<hh"  代表:little-endian(寄存器数字的存储方式,小的在前),两个双字节的整型integer(一个转成两个数,每个占了两个字节,不足位置补的是0)
    

    转义为long型整数:

    struct.unpack('<L', bytes(b'\x01\x00\x00\x00'))  ==>  (1,)
    # 转成一个四字节的整型long
    

    4.整数to字节串

    转为两个字节:

    struct.pack('<HH', 1,2)  ==>  b'\x01\x00\x02\x00'
    # 将两个值1和2,转换为双字节表示的字节串。(如:1 >>> b'\x01\x00'  2 >>> b'\x02\x00')
    

    转为四个字节:

    struct.pack('<LL', 1,2)  ==>  b'\x01\x00\x00\x00\x02\x00\x00\x00'
    # 将两个值1和2,转换为四字节表示的字节串(如:整数1可表示为 b'\x01\x00\x00\x00')
    

    5.整数to字符串

    直接用函数

    str(100)
    

    6.字符串to字节串

    • decodeencode区别

    decode函数是重新解码,把CT字符串所显示的69dda8455c7dd425【每隔两个字符】解码成十六进制字符\x69\xdd\xa8\x45\x5c\x7d\xd4\x25

    CT = '69dda8455c7dd425'
    print "%r"%CT.decode('hex')
    

    encode函数是重新编码,把CT字符串所显示的69dda8455c7dd425【每个字符】编码成acsii值,ascii值为十六进制显示,占两位。执行下列结果显示36396464613834353563376464343235等价于将CT第一个字符’6’编码为0x36h 第二个字符’9’编码为0x39h

    CT='69dda8455c7dd425'
    print "%r"%CT.encode('hex')
    

    可以理解为:decode解码,字符串变短一半,encode编码,字符串变为两倍长度

    python2和python3编码有区别,这里注意区分

    decode(‘ascii’)解码为字符串Unicode格式。输出带有’u’
    encode(‘ascii’),编码为Unicode格式,其实python默认处理字符串存储就是Unicode,输出结果估计和原来的字符串一样。

    字符串编码为字节码:

    '12abc'.encode('ascii')  ==>  b'12abc'
    

    数字或字符数组:

    bytes([1,2, ord('1'),ord('2')])  ==>  b'\x01\x0212'
    

    16进制字符串:

    bytes().fromhex('010210')  ==>  b'\x01\x02\x10'
    

    16进制字符串:

    bytes(map(ord, '\x01\x02\x31\x32'))  ==>  b'\x01\x0212'
    

    16进制数组:

    bytes([0x01,0x02,0x31,0x32])  ==>  b'\x01\x0212'
    

    7.字节串to字符串

    字节码解码为字符串:

    bytes(b'\x31\x32\x61\x62').decode('ascii')  ==>  12ab
    

    字节串转16进制表示,夹带ascii:

    str(bytes(b'\x01\x0212'))[2:-1]  ==>  \x01\x0212
    

    字节串转16进制表示,固定两个字符表示:

    str(binascii.b2a_hex(b'\x01\x0212'))[2:-1]  ==>  01023132
    

    字节串转16进制数组:

    [hex(x) for x in bytes(b'\x01\x0212')]  ==>  ['0x1', '0x2', '0x31', '0x32']
    

    问题:什么时候字符串前面加上’r’、’b’、’r’,其实官方文档有写。我认为在Python2中,r和b是等效的。

    The Python 2.x documentation:

    A prefix of ‘b’ or ‘B’ is ignored in Python 2; it indicates that the literal should become a bytes literal in Python 3 (e.g. when code is automatically converted with 2to3). A ‘u’ or ‘b’ prefix may be followed by an ‘r’ prefix.
    ‘b’字符加在字符串前面,对于python2会被忽略。加上’b’目的仅仅为了兼容python3,让python3以bytes数据类型(0~255)存放这个字符、字符串。

    The Python 3.3 documentation states:

    Bytes literals are always prefixed with ‘b’ or ‘B’; they produce an instance of the bytes type instead of the str type. They may only contain ASCII characters; bytes with a numeric value of 128 or greater must be expressed with escapes.
    数据类型byte总是以’b’为前缀,该数据类型仅为ascii。

    下面是stackflow上面一个回答。我觉得不错,拿出来跟大家分享

    In Python 2.x

    Pre-3.0 versions of Python lacked this kind of distinction between text and binary data. Instead, there was:

    • unicode = u’…’ literals = sequence of Unicode characters = 3.x str
    • str = ‘…’ literals = sequences of confounded bytes/characters
      Usually text, encoded in some unspecified encoding.
      But also used to represent binary data like struct.pack output.

    Python 3.x makes a clear distinction between the types:

    • str = ‘…’ literals = a sequence of Unicode characters (UTF-16 or UTF-32, depending on how Python was compiled)
    • bytes = b’…’ literals = a sequence of octets (integers between 0 and 255)

    二、 Python字节串详解

    1.字节串概念理解

    • 存储以字节为单位的数据
    • 字节串是不可变的字节序列
    • 字节是 0~255 之间的整数

    2.创建字节串

    # 创建空字节串的字面值
    b'' 
    b""
    b''''''
    b""""""
    B''
    B""
    B''''''
    B""""""
    # 创建非空字节串的字面值
    b'ABCD'
    b'\x41\x42'
    b'hello Jason'
    

    3.字节串的构造函数

    • bytes() 生成一个空的字节串 等同于 b''
    • bytes(整型组成的可迭代对象) 用可迭代对象初始化一个字节串,不能超过255
    • bytes(整数n) 生成 n 个值为零的字节串
    • bytes(字符串, encoding='utf-8') 用字符串的转换编码生成一个字节串
    a = bytes()  # b''
    b = bytes([10,20,30,65,66,67])  # b'\n\x14\x1eABC'
    c = bytes(range(65,65+26))  # b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    d = bytes(5)  # b'\x00\x00\x00\x00\x00'
    e = bytes('hello 中国','utf-8')  # b'hello \xe4\xb8\xad\xe5\x9b\xbd'
    

    4.字节串的运算

    • + += * *=
    • < <= > >= == !=
    • in / not in 只能对整型数进行操作
    • 索引/切片
    b = b'abc' + b'123'  # b=b'abc123'
    b += b'ABC'    # b=b'abc123ABC'
    b'ABD' > b'ABC'  # True
    b'a'*4   # b'aaaa'
    b = b'ABCD'
    65 in b    # True
    b'A' in b  # True
    

    5.bytesstr 的区别

    • bytes 存储字节(0-255)
    • str 存储Unicode字符(0-65535)

    6.bytesstr 转换

    • strbytes
      b = s.encode('utf-8')
    • bytesstr
      s = b.decode('utf-8')

    三、 字节数组

    可变的字节序列

    1.创建字构造函数

    • bytearray() 生成一个空的字节串 等同于 bytearray(b'')
    • bytearray(整型可迭代对象) 用可迭代对象初始化一个字节串,不能超过255
    • bytearray(整数n) 生成 n 个值为零的字节串
    • bytearray(字符串, encoding='utf-8') 用字符串的转换编码生成一个字节串
    a = bytearray() # bytearray(b'')
    b = bytearray(5) # bytearray(b'\x00\x00\x00\x00\x00')
    c = bytearray([1,2,3,4]) # bytearray(b'\x01\x02\x03\x04')
    

    2.字节数组的运算

    • + += * *=
    • < <= > >= == !=
    • in / not in 只能对整型数进行操作
    • 索引/切片

    3.字节数组的方法

    • B.clear() 清空字节数组
    • B.append(n) 追加一个字节(n为0-255的整数)
    • B.remove(value) 删除第一个出现的字节,如果没有出现,则产生ValueError错误
    • B.reverse() 字节的顺序进行反转
    • B.decode(encoding='utf-8') # 解码
    • B.find(sub[, start[, end]]) 查找

    鸣谢:(https://www.kancloud.cn/hx78/python/450119)
    (https://www.jianshu.com/p/5bb986772ef8)

    展开全文
  • python整数转换字符串Given a string with digits and we have to convert the string to its equivalent list of the integers in Python. 给定一个带有数字的字符串,我们必须将该字符串转换为Python中与之等效的...

    python整数转换字符串

    Given a string with digits and we have to convert the string to its equivalent list of the integers in Python.

    给定一个带有数字的字符串,我们必须将该字符串转换为Python中与之等效的整数列表。

    Example:

    例:

        Input:
        str1 = "12345"
        Output:
        int_list = [1, 2, 3, 4, 5]
    
        Input:
        str1 = "12345ABCD"
        Output:
        ValueError
    
    

    Note: The string must contain only digits between 0 to 9, if there is any character except digits, the program will through a ValueError.

    注意:该字符串只能包含0到9之间的数字,如果除数字之外还有任何其他字符,则程序将通过ValueError进行操作

    如何将字符(仅数字)转换为整数? (How to convert character (only digit) to integer?)

    To convert a character (that is digit only like: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9') to integer, we use int() function - which is a library function in Python. int() returns integer value equivalent to given character i.e. digit in character form.

    转换字符(仅是数字,例如: “ 0”,“ 1”,“ 2”,“ 3”,“ 4”,“ 5”,“ 6”,“ 7”,“ 8”,“ 9” )转换为整数,我们使用int()函数-这是Python中的库函数。 int()返回等于给定字符的整数值,即字符形式的数字。

    print (int('0'))
    print (int('1'))
    print (int('2'))
    print (int('3'))
    print (int('4'))
    print (int('5'))
    print (int('6'))
    print (int('7'))
    print (int('8'))
    print (int('9'))
    
    

    Output

    输出量

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    

    Python程序将字符串转换为整数列表 (Python program to convert a string to integers list)

    Here, we have a string "12345" and we are converting it to integers list [1, 2, 3, 4, 5].

    在这里,我们有一个字符串“ 12345” ,并将其转换为整数列表[1、2、3、4、5]

    # program to convert string to integer list
    # language: python3
    
    # declare a list
    str1 = "12345"
    
    # list variable to integeres
    int_list =[]
    
    # converting characters to integers
    for ch in str1:
        int_list.append(int(ch))
    
    # printing the str_list and int_list    
    print ("str1: ", str1)
    print ("int_list: ", int_list)
    
    

    Output

    输出量

    str1:  12345
    int_list:  [1, 2, 3, 4, 5]
    
    

    ValueError (ValueError)

    If there is any character except the digits, there will be an error "ValueError: invalid literal for int() with base 10".

    如果除数字外没有其他字符,将出现错误“ ValueError:int()的基数为10的无效文字”

    Program with Error:

    出现错误的程序:

    # program to convert string to integer list
    # language: python3
    
    # declare a list
    str1 = "12345ABCD"
    
    # list variable to integeres
    int_list =[]
    
    # converting characters to integers
    for ch in str1:
        int_list.append(int(ch))
    
    # printing the str_list and int_list    
    print ("str1: ", str1)
    print ("int_list: ", int_list)
    
    

    Output

    输出量

    Traceback (most recent call last):
      File "/home/main.py", line 12, in 
       
        
        int_list.append(int(ch))
    ValueError: invalid literal for int() with base 10: 'A'
    
       
    
    

    翻译自: https://www.includehelp.com/python/convert-a-string-to-integers-list.aspx

    python整数转换字符串

    展开全文
  • python整数转换字符串Given an integer value and we have to convert the value to the string using str() function. 给定一个整数值,我们必须使用str()函数将该值转换为字符串。 Python code to convert an ...

    python整数转换字符串

    Given an integer value and we have to convert the value to the string using str() function.

    给定一个整数值,我们必须使用str()函数将该值转换为字符串。

    Python code to convert an integer value to the string value

    Python代码将整数值转换为字符串值

    # Python code to convert an integer value 
    # to the string value
    
    # integer value 
    i_value = 12345
    
    # converting to the string value
    s_value = str(i_value)
    
    # printing the integer & string values with their types
    print("i_value: ", i_value)
    print("type(i_value): ", type(i_value))
    
    print("s_value: ", s_value)
    print("type(s_value): ", type(s_value))
    
    # another operation by multiplying the value 
    print("i_value*4: ", i_value*4)
    print("s_value*4: ", s_value*4)
    
    

    Output

    输出量

    i_value:  12345
    type(i_value):  <class 'int'>
    s_value:  12345
    type(s_value):  <class 'str'>
    i_value*4:  49380
    s_value*4:  12345123451234512345
    
    

    Code explanation:

    代码说明:

    In the above code i_value is an integer variable contains an integer value, we are converting i_value to the string by using str() function and storing the result in s_value variable. For further verification of the types – we are printing the types of both variables with their values and also printing their 4 times multiplied value.

    在上面的代码中, i_value是一个包含整数值的整数变量,我们通过使用str()函数将i_value转换为字符串并将结果存储在s_value变量中。 为了进一步验证类型,我们将同时打印两个变量的类型及其值,并打印其四倍的乘积值。

    Recommended posts

    推荐的帖子

    翻译自: https://www.includehelp.com/python/convert-an-integer-value-to-the-string-using-str-function-in-python.aspx

    python整数转换字符串

    展开全文
  • 导航数字字符串字节码到数字进制转换字符转整数字节串转整数字符串str()字符串编码解码decode(‘hex’)到字节码数字转字符串字符串转字节串no还有常见的单个字符转换函数功能记忆口诀备注chr数字转成对应的ascii...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 187,446
精华内容 74,978
关键字:

python整数转字符串

python 订阅