一、字符串与数值的转换

Python中字符串转换为数值:

str_num = '99'

num = int(str_num)

整型数转换为字符串:

num = 99

str_num = str(num)

二、负数向二进制和十六进制转换

负数neg=-45054,为int数据类型

方法一:

求负数十六进制的公式为:

负数十六进制 = hex ( 负数  &  0xFF....FF )  (注意:几个F取决于数据类型的范围,如int数据类型取0xFFFFFFFF)

neg十六进制 = hex(-45054 & 0xFFFFFFFF) = hex(4294922242) = 0xFFFF5002

neg二进制 = bin(neg十六进制)= bin(0xFFFF5002) = 11111111111111110101000000000010

方法二:

利用struct模块求负数的十六进制

import struct

s_hex_neg = pack('i', neg) = '\x02P\xff\xff'       //这里是十六进制的可见字符ascii表示

利用binascii.hexlify将可见字符也进行十六进制表示

    hex_neg = binascii.hexlify(s_hex_neg) = 0250ffff

    将hex_neg进行逆置就是其十六进制

    hex_neg[::-1] = ffff0520

三、十六进制还原成负数和二进制

  neghex=0xFFFF0520,是int数据类型

    1.十六进制转为二进制

      negbin = bin(neghex)='0b11111111111111110000010100100000'

      如果neghex_s='0xFFFF0520', 是字符串表示,那么negbin=bin(int(neghex_s, 16))='0b11111111111111110000010100100000'

    2.十六进制还原为负数

      先提取为十六进制的字符串,并逆置

      neghex_s = hex(neghex)[2:-1] = 'ffff0520'

      neghex_s=neghex_s[::-1] = '0250ffff'

      使用binascii.unhexlify进行去十六进制化

      neghex_pack=binascii.unhexlify(neghex_s)='\x02P\xff\xff'

      再利用struct.unpack进行解析

      neg=struct.unpack('i', neghex_pack)=(-45054,)

      那么neg[0]就是neghex还原的负数

四、二进制向十六进制和负数转化

  neg_bin_s='11111111111111110000010100100000',字符串类型

    1.二进制向十六进制转化

      首先将neg_bin_s按四个字符一组进行分割,然后求其十六进制表示,只要求出十六进制表示,就可以参考“二”进行处理了

        neg_bin_list=[]

        for i in range(0, len(neg_bin_s), 4):

        neg_bin_list.append(neg_bin_s[i:i+4])

        neg_bin_list=['1111', '1111', '1111', '1111', '0000', '0101', '0010', '0000']

      求取0~15的二进制到十六进制字符的key-value映射

        hex_map={}

        for i in range(0,16):      hex_map[bin(i)[2:].zfill(4)]=hex(i)[2:]

      以neg_bin_list元素为key,求取其表示的十六进制字符

        neg_hex_s=''

        for i in neg_bin_list:

        neg_hex_s += hex_map[i]

      求得:neg_hex_s = 'ffff0520'

      从而,求得该二进制字符串对应的十六进制为0xFFFF0520

  2.二进制还原成负数

    在上面步骤1中求得二进制对应的十六进制为‘ffff0520',那么参考“十六进制还原成负数”的做法,可以求出负数

    将十六进制"ffff0520"逆置

      neghex_s=neg_hex_s[::-1] = '0250ffff'

    使用binascii.unhexlify进行去十六进制化

      neghex_pack=binascii.unhexlify(neghex_s)='\x02P\xff\xff'

    再利用struct.unpack进行解析

      neg=struct.unpack('i', neghex_pack)=(-45054,)

    那么neg[0]就是二进制字符串neg_bin_s还原的负数

五、实现十进制转二进制、八进制、十六进制

   # -*- coding: UTF-8 -*-

  # Filename : test.py
 
  # 获取用户输入十进制数
  dec = int(input("输入数字:"))

  print("十进制数为:", dec)
  print("转换为二进制为:", bin(dec))
  print("转换为八进制为:", oct(dec))
  print("转换为十六进制为:", hex(dec))

六、将txt文档中是数值型数据读入到array数组中

  1.介绍我的txt文件内容是这样的,准确来说是在excle表格中复制粘贴到txt文档中的(这里的一列介绍excle中的一列,一行就是excle中的一行),如图所示:

  2.执行如下代码,特别说明一下,k值的含义是txt中的列数,本实验是6列,所以k的赋值为6:

#-*-coding:UTF-8 -*-
import numpy as np
def loadDatadet(infile,k):
    f=open(infile,'r')
    sourceInLine=f.readlines()
    dataset=[]
    for line in sourceInLine:
        temp1=line.strip('\n')
        temp2=temp1.split('\t')
        dataset.append(temp2)
    for i in range(0,len(dataset)):
        for j in range(k):
            dataset[i].append(float(dataset[i][j]))
        del(dataset[i][0:k])
    return dataset
infile='F:\pycharm\h5py_torch\hdf5_format\\test.txt'
k=6
infile=np.array(loadDatadet(infile,k))
print('dataset=',infile)

  3.执行结果如图所示:

  

python 常用技巧的更多相关文章

  1. python常用技巧

    1,关于tab键与4个空格: 由于不同平台间,tab键值设置有所区别,据相关介绍,官方在缩进方面推荐使用4个空格.方便起见,可设置tab自动转换为4个空格. 1.1在pycharm中:    通过fi ...

  2. python常用技巧 — 杂

    目录: 1. 找到字符串中的所有数字(python find digits in string) 2. python 生成连续的浮点数(如 0.1, 0.2, 0.3, 0.4, ... , 0.9) ...

  3. python 常用技巧 — 字典 (dictionary)

    目录: 1. python 相加字典所有的键值 (python sum all values in dictionary) 2. python 两个列表分别组成字典的键和值 (python two l ...

  4. python 常用技巧 — 列表(list)

    目录: 1. 嵌套列表对应位置元素相加 (add the corresponding elements of nested list) 2. 多个列表对应位置相加(add the correspond ...

  5. python 常用技巧 — 数组 (array)

    目录: 1. 数组每一行除以这一行的总数(numpy divide row by row sum) 2. 数组每一行或者每一列求平均 (python average array columns or ...

  6. #1 Python灵活技巧

    前言 Python基础系列博文已顺利结束,从这一篇开始将进入探索更加高级的Python用法,Python进阶系列文章将包含面向对象.网络编程.GUI编程.线程和进程.连接数据库等.不过在进阶之前,先来 ...

  7. Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python

    http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...

  8. python算法常用技巧与内置库

    python算法常用技巧与内置库 近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想 ...

  9. [转]python 常用类库!

    Python学习 On this page... (hide) 1. 基本安装 2. Python文档 2.1 推荐资源站点 2.2 其他参考资料 2.3 代码示例 3. 常用工具 3.1 Pytho ...

随机推荐

  1. s21day22 python笔记

    s21day22 python笔记 一.内容回顾及补充 模块补充 importlib.import_module:通过字符串的形式导入模块 #示例一: import importlib # 用字符串的 ...

  2. 不同系统、不同存储格式(textfile, parquet)数据的传递

    描述: 本地测试环境hive中有数据,存储格式为textfile,现在要上传到公司开发环境,存储格式为parquet, 如何实现??? tb_textfile表---> local file - ...

  3. poj 3641 快速幂

    Description Fermat's theorem states that for any prime number p and for any integer a > 1, ap = a ...

  4. JavaScript之更改闭包内的变量值

    var f = function( ) { var x = 1 function fo() { console.log( x++ ) }   return fo } var fn = f() fn() ...

  5. Python线程的用法 函数式线程_thread和threading 样例

    函数式线程写起来比较简单,但是功能没有threading那么高级,先来个函数式编程样例: #!/usr/bin/python #coding: utf-8 #————————————————————— ...

  6. scipy 的K-means

    #导入相应的包 import scipy import scipy.cluster.hierarchy as sch from scipy.cluster.vq import vq,kmeans,wh ...

  7. Netty中的基本组件及关系

    原文:https://blog.csdn.net/summerZBH123/article/details/79344226---------------------  概述    这篇文章主要是用来 ...

  8. CRMEB提示:系统错误 lnterface SessionUpdateTimestampHandlerlnterface not found

    安装CRMEB系统时,公众号网页提示:系统错误 lnterface SessionUpdateTimestampHandlerlnterface not found 怎么办? 解决方法:PHP更换为7 ...

  9. 写好的Java代码在命令窗口运行——总结

    步骤: 1.快捷键 win+r,在窗口中输入cmd,enter键进入DOS窗口. 2.假设写好的代码的目录为:D:\ACM 在DOS中依次写入:cd d: cd ACM 利用cd切换到代码文件所在的目 ...

  10. GridView更新后获取不到文本框修改后的值

    需要在Page_Load事件里为gridview绑定数据时,添加回传判断 if (!IsPostBack) { 绑定数据 }