Python 判断某个字符串、列表、字典是否为空
直接将字典或者其他对象作为条件判断语句的的条件
var = None # var = '' # var = [] # var = {} if var: print('Not Null') else: print('Is Null')
var = None # var = '' # var = [] # var = {} if not var: print('Null') else: print('not Null')
参考:Python 判断是否为空
python删除字典中某个键值对、字典、清空字典
del dict1['name']
python删除字典
del dict1
删除字典所有键值对
item = {'name': 'zhangsan'} dict1.update(item)
清空字典
dict1.clear()
python在字典中增加键值对
1. 直接添加
dict1['name'] = 'zhangsan'
2. 使用update()方法
item = {'name': 'zhangsan'} dict1.update(item)
python遍历字典的几种方式
(1)通过遍历key
for key in a: print(key+':'+a[key])
(2)通过遍历value
for value in a.values(): print(value)
(3)遍历字典项
for item in a.items(): print(item)
(4)遍历字典键值对
for key,value in a.items(): print(key+':'+value)
参考:python字典遍历的几种方法
python随机生成某个范围内的整数
import random print(random.randint(a, b+1)
将当前时间转换成字符串
import datetime now_str = datetime.strftime(datetime.now(), "%Y%m%d%H%M%S%f") #%f表示精确到微秒
打印当前时间戳
import time import datetime t = time.time() print (t) #原始时间数据 print (int(t)) #秒级时间戳 print (int(round(t * 1000))) #毫秒级时间戳 print (int(round(t * 1000000))) #微秒级时间戳
参考:Python获取秒级时间戳与毫秒级时间戳
python中没有三目运算符
可用以下语法代替
h = "变量1" if a>b else "变量2"
python中整数,字符串,浮点数的之间的转换
字符串转换成整数
num1 = "123" num1 = int(num1) print(num1, type(num1)) ----------------------------- (123,'int'>)
字符串转换成浮点数
num2 = "12.3" num2 = float(num2) print(num2, type(num2)) ------------------------------ (12.3,'float'>)
整数或者浮点数转换成字符串
# 法一 num3 = "123" num3 = str(num3) print(num3, type(num3)) ------------------------------- ('123','str'>) # 法二 num3 = 123 num3 = '%d' % num3 ------------------------------- ('123', 'str'>)
参考:python 字符串和整数,浮点型互相转换、 python数字转字符串
python中的set
(1) 无序性
(2) 确定性
(3) 不重复性
常用函数
add(num)添加元素
pop()删除元素
discard() 删除元素
remove(num) 删除某个元素
clear() 清空set
pop() 是随机删除。remove() 和 discard() 指定删除,但是指定不存在的元素时,remove() 会报错,而 discard() 不会报错
intersection()取交集, 或者是 & 符号
c = a.intersection(b)
c = a & b
union()取并集, 或者是 | 符号
c = a.union(b)
c = a | b
diference()取差集, 或者是 - 符号
c = a.difference(b)
c = a - b
python返回对象属性的函数 __repr__()
这个方法相等于是 Java 里面的 toString() 方法,可以自定义打印一个对象时的具体展现格式
我比较喜欢这样写, 这样当答应一个Demo对象时,就会答应这个对象的所有属性和属性值
# 打印对象的所有属性,类似于Java里面的toString()方法 def __repr__(self): return "Demo{" + ', '.join(['%s:%s' % item for item in self.__dict__.items()]) + "}"
python获取字典、列表、元祖的元素个数
len()
比价两个无序list是否相等
from collections import Counter list1 = [3,2, 4,5] list2 = [4, 5, 3, 2] print("Counter(list1)=",Counter(list1)) print("Counter(list2)=",Counter(list2)) print(Counter(list1) == Counter(list2)) ('Counter(list1)=', Counter({2: 1, 3: 1, 4: 1, 5: 1})) ('Counter(list2)=', Counter({2: 1, 3: 1, 4: 1, 5: 1})) True
python获取某个变量或者对象的数据类型
type(xxx)
pycharm替换快捷键
ctrl + r默认情况下(ctrl + shift + r代替所有文件)
json.dumps()和json.loads()
json.dumps()用于将字典形式的数据转化为字符串,json.loads()用于将字符串形式的数据转化为字典,如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到json.dump(),
参考:json.dumps()和json.loads()
pip下载安装速度过慢问题及解决方案
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy==1.16.0
如果下载速度太慢,可以更换为清华的源, 也可以换成其他的源, 比如公司的内部源等
打包安装同理
pip install -i https://pypi.douban.com/simple -r requirements.txt
参考:pip下载安装速度过慢问题及解决方案、让PIP源使用国内镜像,提升下载速度和安装成功率。
python标识符命名规范
一个专业的程序员首先有一个专业的标识符命名素养,不管编出来的代码性能怎么样,但是起码要好看,让人一看就觉得这个代码的作者是一个大牛
可以参考这篇:Python命名规范
timedalte()
timedalte 是datetime中的一个对象,该对象表示两个时间的差值
构造函数:datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
其中参数都是可选,默认值为0,如果只有一个参数,则表示天数
资料参考:Python timedelta模块 时间增减用法
运行python程序遇到的问题
问题一
sudo apt-get install libatlas-base-dev
问题二
Import numpy时,会报下面的错误
/home/spyros/.local/lib/python2.7/site-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS2_FromObject
解决办法:
先卸载原有的numpy, pip uninstall numpy,
然后在/usr/local/lib/python2.7/site-packages删掉numpy*文件夹,然后继续pip install
参考:Numpy安装报错:试过N种安装方法终于