Python教程

python常用语法2

本文主要是介绍python常用语法2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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判断两个list相等

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)

参数

  • 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:\test')

    print(filenames)

参考:python遍历文件夹下的所有文件

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\nhello world!!")    # 换行需要自己加入'\n'字符,没有直接写入一行的函数

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)    # 判断两个时间差是否超过半小时

参考:【Python】datetime间的比较

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])

参考:python – 将timedelta格式化为字符串

字符串split()函数

split()函数

语法:str.split(str=”“,num=string.count(str))[n]

参数说明:

str: 表示为分隔符,默认为空格,但是不能为空(”)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素

num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量

[n]: 表示选取第n个分片,也可以是[0,n]表示选取第0片到第n片,函数返回一个list。 

参考:Python分割字符串split()

把元素添加到不重复的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 是 推迟执行的秒数。

import time

time.sleep( 5 )

参考: Python time sleep()方法

python获取对象类型

type()方法

var = dict()

print(type(var))    # <class 'dict'>

list或者set截取片段

变量[头下标:尾下标:步长]

步长省略则默认为1

参考:python列表list的截取问题

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 判断输入是否为整数的程序

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类型
这篇关于python常用语法2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!