python 常用技巧
一、字符串与数值的转换
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 常用技巧的更多相关文章
- python常用技巧
		1,关于tab键与4个空格: 由于不同平台间,tab键值设置有所区别,据相关介绍,官方在缩进方面推荐使用4个空格.方便起见,可设置tab自动转换为4个空格. 1.1在pycharm中: 通过fi ... 
- python常用技巧 — 杂
		目录: 1. 找到字符串中的所有数字(python find digits in string) 2. python 生成连续的浮点数(如 0.1, 0.2, 0.3, 0.4, ... , 0.9) ... 
- python 常用技巧 — 字典 (dictionary)
		目录: 1. python 相加字典所有的键值 (python sum all values in dictionary) 2. python 两个列表分别组成字典的键和值 (python two l ... 
- python 常用技巧 — 列表(list)
		目录: 1. 嵌套列表对应位置元素相加 (add the corresponding elements of nested list) 2. 多个列表对应位置相加(add the correspond ... 
- python 常用技巧  — 数组 (array)
		目录: 1. 数组每一行除以这一行的总数(numpy divide row by row sum) 2. 数组每一行或者每一列求平均 (python average array columns or ... 
- #1   Python灵活技巧
		前言 Python基础系列博文已顺利结束,从这一篇开始将进入探索更加高级的Python用法,Python进阶系列文章将包含面向对象.网络编程.GUI编程.线程和进程.连接数据库等.不过在进阶之前,先来 ... 
- Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python
		http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ... 
- python算法常用技巧与内置库
		python算法常用技巧与内置库 近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想 ... 
- [转]python 常用类库!
		Python学习 On this page... (hide) 1. 基本安装 2. Python文档 2.1 推荐资源站点 2.2 其他参考资料 2.3 代码示例 3. 常用工具 3.1 Pytho ... 
随机推荐
- flutter 添加插件
			打開pubspec.yaml ---> cupertino_icons 下添加插件 
- CentOS7装好了开始装wrf了
			1. 安装PGI编译器 下载地址:https://www.pgroup.com/products/community.htm(pgi官网社区版) 下载完将其复制到虚拟机内: 补充一下 我是在home ... 
- C# 中String.Join()方法
			今天在工作中看到了组里一个大佬写的代码,感触颇多,同样实现一个需求,我写循环费了老大劲,代码又臭又长,大佬的代码简洁明了,三行搞定...不得不说,今天赚大了 简单总结一下今天赚到的知识 string里 ... 
- Spring事务<tx:annotation-driven/>的理解(Controller使用@Transactional)
			在使用Spring的时候,配置文件中我们经常看到 annotation-driven 这样的注解,其含义就是支持注解,一般根据前缀 tx.mvc 等也能很直白的理解出来分别的作用. <tx:an ... 
- 导入到eclipse里的工程挺大的,然后就一直报:  An internal error occurred during: "Building workspace". GC overhead limit exceeded  这个错误。
			解决方法: 原因是Eclipse默认配置内存太小需要更改Eclipse安装文件夹下的eclipse.ini文件. Eclipse.ini默认文件如下: 修改如下: -Xms1024m -Xmx2048 ... 
- amoeba 使用笔记
			环境 延用MySQL 主主+主从笔记的环境 Java version “1.8.0_73” 安装 wget http://nchc.dl.sourceforge.net/project/amoeba/ ... 
- PythonStudy——闭包
			# closure:被包裹的函数,称之为闭包 # 完整的闭包结构:1.将函数进行闭包处理:2.提升函数名的作用域 # 案例:延迟加载 def get_site(url): #url='https:// ... 
- 实现自己的MVC AJAX框架计划
			最近看了一下设计自己框架的文章,所以也想自己去实现一个小框架,用于以后的项目中,只求方便, 需要参考各位前辈的代码,或者直接copy过来为我所用,哈哈,想想都开心. 不过,要写个好的框架肯定不容易,现 ... 
- 宝塔linux面板   解决TP3.2   404
			在配置文件中加入一下配置: location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1; } } location ... 
- Ansible 之动态Inventory文件(二)
			上篇主要讲解了Ansible 的安装和配置,并且根据不同的业务场景将服务器的信息存放在Ansible的Inventory中,其实存放这样的数据每次更新都需要我们自动的添加和删除,这样对于我们维护起来很 ... 
