广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python编程开发技巧
  • 480
分享到

Python编程开发技巧

2023-06-14 07:06:11 480人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章给大家分享的是有关python编程开发技巧的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、小数保留指定位小数1.%f 方法f = 1.23456f1 = '

这篇文章给大家分享的是有关python编程开发技巧的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、小数保留指定位小数

1.%f 方法

f = 1.23456f1 = '%.4f' % ff2 = '%.2f' % fprint(f1,type(f1))print(f2,type(f2))

打印

1.2346 <class 'str'>1.23 <class 'str'>

易知,这种方法会进行四舍五入,但是将浮点型转化成了字符串值,已不再是原始的数值。

2.format函数

f = 1.23456f1 = fORMat(f,'.4f')f2 = format(f,'.2f')print(f1,type(f1))print(f2,type(f2))

打印

1.2346 <class 'str'>1.23 <class 'str'>

同理,这种方法也会进行四舍五入,但是将浮点型转化成了字符串值,已不再是原始的数值。

3.round()函数

a = 1.23456b = 2.355c = 3.5d = 2.5a1 = round(a, 3)b1 = round(b, 2)c1 = round(c)d1 = round(d)print(a1,type(a1))print(b1,type(b1))print(c1,type(c1))print(d1,type(d1))

打印

1.235 <class 'float'>2.35 <class 'float'>4 <class 'int'>2 <class 'int'>

可以看出,round()函数最后得到的是数值(浮点型或整型),但是在“舍”和“入”的规律上不一定:
(1)round(x,n)函数中,是否进位或四舍五入,取决于n位以及n+1位小数的值
(2)只有当n+1位数字是5的时候,容易混淆,如果n为偶数,则n+1位数是5,则进位,例如round(1.23456,3)最终变为1.235
(3)如果n为奇数,则n+1位是数5,那不进位,例如round(2.355,2),最终为2.35
(4)如果n为0,即没有填写n的时候,最终结果与上面相反,即整数部分为偶数的时候,小数位5不进位,例如(round(2.5)变为2)。
(5)整数部分为奇数的时候,小数位5进位。(round(3.5)变为4)

4.直接截断

a = int(1.23456 * 1000) / 1000print(a)

打印1.234
这种方法简单粗暴,直接去掉后边的,不管是否大于5。

二、判断变量的数据类型

1.type():

a = 1.23print(type(a))

打印<class 'float'>

2.isinstance()

原型为isinstance(x, A_tuple)

a = 1.23tp = isinstance(a,float)print(tp)

打印True

3.class.__name__属性

使用变量的__class__.__name__属性 ,这也是type()方法的实质:

num = 1.23print(num.__class__.__name__)

打印:

float

三、Python中的类方法(@classmethod)

Python面向对象编程的时候,经常需要使用claSSMethod类方法,这并不是类中的方法。
类方法也算一种实用的技巧,简单描述之:“类方法让类模板具有记忆力”。
类模板就是我们所定义的类。在普通情况下,不使用类方法对类进行实例化,类本身是不具有记忆性的。只是当一个静态模板被套用多次而已。如果我们想让类在每一次实例化之后,都能记载一些记忆,会对很多操作很有用。

class Man:    id = 0 # 类变量    def __init__(self, name):        self.name = name        self.id = self.id_number()     @classmethod    def id_number(cls):        cls.id += 1        return cls.id a = Man('A')print(a.id)b = Man('B')print(b.id)

打印

12

对Man这个类进行实例化2次,每个实例的id都不一样。这就依靠类方法来实现了:首先,用@classmethod描述类方法,然后用"cls"代表本类。类方法对类属性进行的处理是有记忆性的。

需要注意的是,类方法处理的变量一定要是类变量。因为在类方法里你用不了self来寻址实例变量,所以需要把类变量放到最前面描述,如上面的"id=0"所示。类变量是可以被self访问的,所以,在类变量定义好了以后,不需要在_init_函数里对类变量再一次描述。所以,上面代码里self.id不一定需要。

四、str.format与制表符\t设置中文对齐

str.format对字符串进行格式化,{:<x}的语法表示左对齐,{:>x}为右对齐,{:^x}为居中),少于x位自动补齐(默认为空格补齐),但是对于中文字符并不能很好地支持,所以会导致有多行中文字符串时出现不能对齐的现象,需要考虑到字符串所占长度并将中文字符串进行编码后再计算。

#name是包含中文的字符串,22是整个字符串一行的总长度,一般要顾及测试才能得到,\t后的x是一标记字符,可换为别的所需的字符串print('[{string:<{len}}\tx'.format(string=string+']',len=22-len(string.encode('GBK'))+len(string)))

具体可参考https://blog.csdn.net/excaliburrr/article/details/76794451

五、datetime模块timedelta类的使用

timedelta对象表示两个不同时间之间的差值, 这个差值的单位可以是:天、秒、微秒、毫秒、分钟、小时、周。
如果使用time模块对时间进行算术运算,只能将字符串格式的时间和struct_time格式的时间对象先转换为时间戳格式,然后对该时间戳加上或减去n秒,最后再转换回struct_time格式或字符串格式,这显然很不方便。而datetime模块提供的timedelta类可以让我们很方面的对datetime.date, datetime.timedatetime.datetime对象做算术运算,且两个时间之间的差值单位也更加容易控制。
datetime.timedelta类的定义:

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, hours=0, weeks=0)

所有参数都是默认参数,因此都是可选参数。参数的值可以是整数或浮点数,也可以是正数或负数。内部值存储days、seconds 和 microseconds,其他所有参数都将被转换成这3个单位:

  • 1毫秒转换为1000微秒

  • 1分钟转换为60秒

  • 1小时转换为3600秒

  • 1周转换为7天

然后对这3个值进行标准化,使得它们的表示是唯一的:

  • microseconds : [0, 999999]

  • seconds : [0, 86399]

  • days : [-999999999, 999999999]

类属性

类属性名称描述
timedelta.mintimedelta(-999999999)
timedelta.maxtimedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)
timedelta.resolutiontimedelta(microseconds=1)

实例方法和属性

实例方法/属性名称描述
td.days天 [-999999999, 999999999]
td.seconds秒 [0, 86399]
td.microseconds微秒 [0, 999999]
td.total_seconds()时间差中包含的总秒数,等价于: td / timedelta(seconds=1)
方法/属性描述
datetime.datetime.now()返回当前本地时间(datetime.datetime对象实例)
datetime.datetime.fromtimestamp(timestamp)返回指定时间戳对应的时间(datetime.datetime对象实例)
datetime.timedelta()返回一个时间间隔对象,可以直接与datetime.datetime对象做加减操作
>>> import datetime>>>>>> datetime.timedelta(365).total_seconds() # 一年包含的总秒数31536000.0>>> dt = datetime.datetime.now()>>> dt + datetime.timedelta(3) # 3天后datetime.datetime(2020, 1, 22, 11, 17, 0, 214877)>>> dt + datetime.timedelta(-3) # 3天前datetime.datetime(2020, 1, 16, 11, 17, 0, 214877)>>> dt + datetime.timedelta(hours=3) # 3小时后datetime.datetime(2020, 1, 19, 14, 17, 0, 214877)>>> dt + datetime.timedelta(hours=-3) # 3小时前datetime.datetime(2020, 1, 19, 8, 17, 0, 214877)>>> dt + datetime.timedelta(hours=3, seconds=30) # 3小时30秒后 datetime.datetime(2020, 1, 19, 14, 17, 30, 214877)

更多关于Python对日期、时间的处理可参考Https://www.jb51.net/article/105840.htm。

六、获取抛出的异常具体信息

很多时候,在Python运行抛出异常并接收到之后需要显示异常的具体信息,包括异常内容、异常所在的行数和异常所在的Python文件等等,分别使用args[0]__traceback__.tb_lineno__traceback__.tb_frame.f_globals["__file__"]属性即可,示意如下:

def get_exception_info():    try:        s = 2 / 0    except Exception as e:        print('异常内容:', e.args[0])        print('异常行数:', e.__traceback__.tb_lineno)        print('异常文件:', e.__traceback__.tb_frame.f_globals["__file__"])get_exception_info()

打印:

异常内容: pision by zero异常行数: 8异常文件: XXX/test.py

七、使用BeautifulSoup库去掉字符串中的HTML标签

有时候,字符串中含有html标签,如

text = """<p><h2>Title</h2><p>A long text........ </p><a href=""> a link </a></p>"""

需要得到'\nTitle\nA long text........ \n a link \n',可以使用正则表达式匹配,但是稍嫌麻烦,此时可以直接使用BeautifulSoup库进行转化,更加简单,如下:

from bs4 import BeautifulSouptext = """<p><h2>Title</h2><p>A long text........ </p><a href=""> a link </a></p>"""clean_text = BeautifulSoup(text, "lxml").textprint(clean_text)

打印:

TitleA long text........  a link

显然,此时已经去掉了字符串中的HTML标签。

感谢各位的阅读!关于“Python编程开发技巧”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Python编程开发技巧

本文链接: https://www.lsjlt.com/news/268924.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python编程开发技巧
    这篇文章给大家分享的是有关Python编程开发技巧的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、小数保留指定位小数1.%f 方法f = 1.23456f1 = '...
    99+
    2023-06-14
  • python编程开发之textwrap文本样式处理技巧
    本文实例讲述了python编程开发之textwrap文本样式处理技巧。分享给大家供大家参考,具体如下: 在看python的API的时候,发现python的textwrap在处理字符串样式的时候功能强大 在这...
    99+
    2022-06-04
    样式 编程开发 文本
  • PHP并发编程技术实践:Git开发技巧分享
    PHP并发编程技术实践:Git开发技巧分享 随着互联网技术的快速发展,Web应用程序的规模越来越大,对服务器的负载能力要求也越来越高。如何在高并发的情况下保证Web应用程序的稳定性,是每个Web开发人员都需要面对的问题。在PHP开发中,使用...
    99+
    2023-06-03
    并发 git 开发技术
  • Python有哪些开发技巧
    这篇文章主要讲解了“Python有哪些开发技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些开发技巧”吧! 1. 如何在运行状态查看源代码查看函数的源代码,我们通...
    99+
    2023-06-16
  • 有哪些Python开发技巧
    这篇文章主要介绍“有哪些Python开发技巧”,在日常操作中,相信很多人在有哪些Python开发技巧问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Python开发技巧”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-16
  • 3个 Python 编程技巧
    目录1、如何按照字典的值的大小进行排序2、优雅的一次性判断多个条件3、如何优雅的合并两个字典今天分享 3 个 Python 编程小技巧,来看看你是否用过? 1、如何按照字典的...
    99+
    2022-11-12
  • Python异常编程技巧
    编程中经常会需要使用到异常处理的情况,在阅读了一些资料后,整理了关于异常处理的一些小技巧记录如下。 如何自定义异常 定义异常类 在实际编程中,有时会发现Python提供的内建异常的不够用,我们需要在特殊业务场景下的异常。这时就需要我们来定...
    99+
    2023-01-31
    异常 编程技巧 Python
  • python编程技巧——转载
    学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想写google music的抓取脚本的,结果有了强...
    99+
    2023-01-31
    编程技巧 python
  • GO编程的高效开发技巧:算法与NumPy技术。
    GO编程的高效开发技巧:算法与NumPy技术 GO是一种现代化的编程语言,它的特点是简单易学、高效运行、并发性能优越等。GO编程的开发效率和代码质量在近年来得到了越来越多的认可。本文将介绍GO编程中的高效开发技巧,包括算法和NumPy技术。...
    99+
    2023-08-05
    编程算法 开发技术 numpy
  • Python开发的技巧有哪些
    这篇文章主要讲解了“Python开发的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python开发的技巧有哪些”吧! 列表推导式你有一个list:bag = [1, 2, 3, ...
    99+
    2023-06-02
  • Android编程开发之性能优化技巧总结
    本文详细总结了Android编程开发之性能优化技巧。分享给大家供大家参考,具体如下: 1.http用gzip压缩,设置连接超时时间和响应超时时间 http请求按照业务需求,分为...
    99+
    2022-06-06
    性能 技巧 性能优化 优化 Android
  • Python有什么编程技巧
    本篇内容介绍了“Python有什么编程技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 原地交换两个数字Python 提供了一个直观的...
    99+
    2023-06-17
  • python的30个编程技巧
     1、原地交换两个数字 1 x, y =10, 20 2 3 print(x, y) 4 5 y, x = x, y 6 7 print(x, y) 10 20 20 10 2、链状比较操作符 1 n = 10 2 3 pr...
    99+
    2023-01-30
    编程技巧 python
  • Windows平台下的Python编程,你知道实时开发的技巧吗?
    Python是一种流行的编程语言,它在Windows平台上得到了广泛的应用。在这篇文章中,我们将探讨如何使用Python进行实时开发,并分享一些实用的技巧和代码示例。 使用PyCharm进行调试 PyCharm是一款流行的Python...
    99+
    2023-07-09
    windows 教程 实时
  • 索引与编程算法:Java开发者必须知道的并发编程技巧?
    随着计算机技术的发展,多核处理器的出现使得并发编程成为了现代编程中不可忽视的一部分。Java作为一门流行的编程语言,对于并发编程提供了强大的支持。本文将介绍Java开发者必须掌握的索引和编程算法,以帮助开发者更好地进行并发编程。 一、索引 ...
    99+
    2023-06-30
    索引 编程算法 并发
  • Django API的编程技巧:如何使用Python算法实现高效开发?
    Django是一个非常流行的Python Web框架,其API的编程技巧是Web开发的重要组成部分。本文将介绍Django API的编程技巧,重点讲述如何使用Python算法实现高效开发。 1.使用缓存机制 在Django的API中,使用...
    99+
    2023-06-29
    编程算法 django api
  • Python的编程技巧有哪些
    以下是一些Python编程的技巧:1. 使用列表推导式:列表推导式是一种简洁的方式来创建列表。它可以通过迭代一个可迭代对象,并根据条...
    99+
    2023-09-25
    Python
  • FlutterTVAndroid端开发技巧详细教程
    目录前言开发思路先上效果开发细节使用RawKeyboardListenerProvider层对事件进行处理注意总结文件参考TV keyCode详解前言 最近公司有了新的业务,把现有F...
    99+
    2022-12-09
    Android端开发Flutter TV Android Flutter TV
  • 微信小程序开发的技巧
    这篇文章主要介绍微信小程序开发的技巧,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!注意:本文默认开发者对微信小程序开发有一定语法基础。小程序开发文档相关免费学习推荐:微信小程序开发微信小程序小结  在接触的微信小程序...
    99+
    2023-06-14
  • 《git 和 Python:如何轻松掌握并发编程技巧?》
    随着计算机技术的不断发展,越来越多的应用程序需要并发运行,以提高程序的效率和响应速度。Git 和 Python 是目前非常流行的两种编程语言,它们都提供了很好的并发编程支持。在本文中,我们将介绍如何使用 Git 和 Python 来轻松掌握...
    99+
    2023-11-12
    git 并发 教程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作