Pycharm格式化代码方式
选择工具栏的Code, 点击Reformat Code
或者使用快键键
Mac为:Command + Option+L
windows: Alt + ctrl + L
Python判断两个list相等
Python2可以使用cmp()函数,但是在Python3中我们可以使用下面的方法来比较两个list是否相等
import operator
a=[1,-1,0]
b=[1,-1,0]
c=[-1,1,0]
print(operator.eq(a,b)) # True
print(operator.eq(a,c)) # False
注意: 两个列表必须完全相同(包括位置),只有这样才能是True。
python合并两个列表
直接使用‘+’运算符
a = [1, 2]
b = [1,2]
print(a + b) # [1, 2, 1, 2]
python - 从另一个列表中删除出现在一个列表中的所有元素
l3 = [x for x in l1 if x not in l2]
等价于
l1 = [1, 2, 3, 4, 5, 6]
l2 = [3, 4, 6]
l3 = []
for num in l1:
if num not in l2:
l3.append(num)
print(l3) # [1, 2, 5]
参考: python 根据一个list的元素删除另一个list中对应的元素、python - 从另一个列表中删除出现在一个列表中的所有元素
list列表排序
sort () 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
语法
sort()方法语法:默认按字典序排序
list.sort(cmp=None, key=None, reverse=False)
list1.sort()
list2.sort()
参数
- cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
参考:https://www.runoob.com/python/att-list-sort.html
python怎么往一个元祖里添加一个字符串
现将字符串用括号括起来,加个逗号,让这个字符串变成一个元祖,然后使用‘+’运算符相加即可。方法可推广到将任何类型的对象添加到某个元祖。
total_records += record + ('test', )
元祖合并
两个一维元祖怎么合并
直接用'+'运算符拼接即可
a = (1, 2, 3)
b = (4, 5, 6)
c = a + b # c = (1, 2, 3, 4, 5, 6)
怎么将一维元祖以整体的形式加入到一个二维元祖
在一层元祖外面套一层括号后,加一个逗号
a = ((1, 2, 3), (4, 5, 6))
b = (7, 8, 9)
c = a + (b, ) # c = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
怎么将一维元祖的每个元素分别加入到一个二维元祖
直接用'+'运算符拼接即可
a = ((1, 2, 3), (4, 5, 6))
b = (7, 8, 9)
c = a + b # c = ((1, 2, 3), (4, 5, 6), 7, 8, 9)
不确定某个变量是一维元祖还是二维元祖,怎么将它以二维元祖的形式加入到另一个二维元祖
先判断该变量的第0项是否是元祖,如果是元祖则该变量是二维元祖,否则是一维元祖,如果是一维元祖,则在一层元祖外面套一层括号后,加一个逗号,与二维元祖相加;如果是二维元祖,直接相加
records = ((1, 2), (3, 4))
if isinstance(aa, tuple): # 如果第一项是元祖则说明aa是二维元祖
records += aa
else:
records += (aa, )
python遍历文件夹下的所有文件
listdir(path)函数,可以获得path路径下的所有文件列表
import os
def getfiles():
filenames=os.listdir(r'E: est')
print(filenames)
python文件的读写
open(filepath, mode), 这个函数可以用来读写文件,返回文件的操作句柄,mode就是'w', 'r', 'a', 'w+', 'a+'等模式
fr = open('test.txt','r')
for line in fr:
print line
fr.close()
fw = open('test2.txt','w')
fw.write("hello world
hello world!!") # 换行需要自己加入'
'字符,没有直接写入一行的函数
fw.close()
参考: Python 文件I/O、python每次读取文件一行输出一行
python config文件的读写
1、设置配置文件
[mysql]
host = 1234
port = 3306
user = root
password = Zhsy08241128
database = leartd
2、读取配置文件
import configparser
import os
conf= configparser.ConfigParser()
def readConf():
'''读取配置文件'''
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
conf.read(root_path + '/ceshi/conf/app.conf') # 文件路径
print(conf)
name = conf.get("mysql", "host") # 获取指定section 的option值
print(name)
3、写入配置文件
def writeConf():
'''写入配置文件'''
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
conf.read(root_path + '/ceshi/conf/app.conf') # 文件路径
conf.set("mysql", "host", "1234") # 修改指定section 的option
conf.write(open(root_path + '/ceshi/conf/app.conf', 'w'))
参考:python config文件的读写、如何在python中读取配置文件
对时间的比较
两个datetime对象直接做差,得到一个timedelta对象, 通过这个对象的seconds获得秒钟数,从而与目标时间进行比较
start = datetime.datetime(2021, 3, 31, 18, 0, 0)
end = datetime.datetime(2021, 3, 31, 21, 0, 0)
interval = end - sta rt
print(interval.seconds)
print(interval.seconds >= 3600*3) # 判断两个时间差是否超过半小时
datetime.timedelta怎么格式化输出
import datetime
start = datetime.datetime(2009,2,10,14,00)
end = datetime.datetime(2009,2,10,16,00)
delta = end-start
print(str(delta)) # prints 2:00:00
如果直接使用str()函数后结果带有毫秒值,如'02:10:00.324', 如果想要去除毫秒值,使用split()函数截取后取第一个元素
print(str(interval).split(".")[0])
字符串split()函数
split()函数
语法:str.split(str=”“,num=string.count(str))[n]
参数说明:
str: 表示为分隔符,默认为空格,但是不能为空(”)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
[n]: 表示选取第n个分片,也可以是[0,n]表示选取第0片到第n片,函数返回一个list。
把元素添加到不重复的list中
使用set()这个数据结构,可以保证存入的对象不重复,后面如果需要是list对象,使用list()方法强转即可。
item = set()
item.add(1)
item.add(1)
item = list(item)
print(item) # [1]
参考: https://www.cnpython.com/qa/35356
Python time sleep()方法
time.sleep(t) , t 是 推迟执行的秒数。t可以是整数也可以是浮点数
import time
time.sleep(5)
time.sleep(2.34)
参考: Python time sleep()方法、python毫秒级sleep
python获取对象类型
type()方法
var = dict()
print(type(var)) # <class 'dict'>
list或者set截取片段
变量[头下标:尾下标:步长]
步长省略则默认为1
python获取当前路径
print(os.path.abspath(__file__))
print(os.path.dirname(os.path.abspath(__file__)))
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
python判断输入的内容是否为整数
num = input("请输入整数:")
print(num.isdigit())
python判断一个浮点数是否可转换为整数
方式一:使用is_integer()函数
num = 4.0
num2 = 4.01
print(num.is_integer()) # True
print(num2.is_integer()) # False
方式二:与1做取余运算
num = 4.0
num2 = 4.01
num3 = 0.0
print(num % 1 == 0) # True
print(num2 % 1 == 0) # False
print(num3 % 1 == 0) # True
参考: python 如何判断一个数为整数?(判断整数,没有小数)(取余)判断整型 isinstance()
python判断某个变量是否是某种类型
isinstance()
print(isinstance(1,int)) # 判断1是否是int类型
print(isinstance(aa, datetime.datetime)) # 判断aa变量是否是datetime.datatime类型