python的一些常用知识点备用

1)判断一个对象是否存在:变量,函数,类等。

1.1 方法使用内置函数locals():

>>> 'c' in locals().keys()
Flase
>>>def c():
... pass
>>> 'c' in locals().keys()
True

>>> 'b' in locals().keys()
True
>>> b = 1
>>> 'b' in locals().keys()
True

1.2 方法使用内置函数dir():

>>> 'd' in dir()
False
>>> d = 1
>>> 'd' in dir()
True

>>> 'y' in dir()
False
>>> def y():
...     pass
>>> 'y' in dir()
True

1.3 使用内置函数vars():

>>> vars().has_key('y')#y上面定义了。
True
>>> vars().has_key('z')
False

2)文件遍历:
某个目录下文件的遍历,重命名以及删除等

In [1]: import os

In [2]: start = os.walk("/root/flask")

In [3]: print start
<generator object walk at 0x134f6e0>
#放回的是一个生成器对象。

#目录,子目录,目录下的文件
In [4]: for x in start:
   ...:     print x
   ...:     
('/root/flask', ['MyApp'], ['d.zip'])
('/root/flask/MyApp', ['templates', 'static'], ['login.py'])
('/root/flask/MyApp/templates', [], ['index.html'])
('/root/flask/MyApp/static', ['images', 'js', 'upload'], ['file.png', '123.jpg'])
('/root/flask/MyApp/static/images', [], ['logo.png', 'bg.png', 'file.png', 'saber.ico', 'folder.png'])
('/root/flask/MyApp/static/js', [], ['hello.js'])
('/root/flask/MyApp/static/upload', [], ['out.xls', 'upload.xlsx'])

2)计算程序运行时间

来源:::::::::::::::::::::::
https://www.cnblogs.com/rookie-c/p/5827694.html
2。1)

[root@VM_131_54_centos chuanzhi]# cat th1.py 
import datetime
stime = datetime.datetime.now()
etime = datetime.datetime.now()
print (etime-stime).seconds

2.2)


start = time.time()

run_fun()

end = time.time()

print end-start

2.3)

start = time.clock()

run_fun()

end = time.clock()

print end-start

方法1和方法2都包含了其他程序使用CPU的时间,是程序开始到程序结束的运行时间。

方法3算只计算了程序运行的CPU时间

swith…case的python实现:

<<编写高质量代码 改善python程序的91个建议>>一书中
python实现:

def f(n):
    return {
            0:"your typed zero.\n",
            1:"you are in top.\n",
            2:"n is an even number\n"
            }.get(n,"only singel\n")

他使用了字典的特性,以跳转表的方法实现了swith…case..

python中的常量

使用类来处理:
http://blog.csdn.net/feimengjuan/article/details/50372750
关于setattr
https://www.cnblogs.com/elie/p/6685429.html

object.__setattr__(self, name, value)
如果类自定义了__setattr__方法,当通过实例获取属性尝试赋值时,就会调用__setattr__。
常规的对实例属性赋值,被赋值的属性和值会存入实例属性字典__dict__中。

新建一个const.py

class _const(object):
    class ConstError(TypeError):pass
    class ConstCaseError(ConstError):pass

    def __setattr__(self,name,value):
        if  self.__dict__.has_key(name):
            raise self.ConstError,"Can't change const.%s"   %name
        if  not name.isupper():
            raise self.ConstCaseError,\
                'const name "%s" is not all uppercase' %name
        self.__dict__[name] = value

import sys
sys.modules[__name__]=_const()

那么这样就可在其他文件中使用了。

>>>import const
>>>const.I =1
>>>const.I =2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "const.py", line 8, in __setattr__
    raise self.ConstError,"Can't change const.%s"%name
const.ConstError: Can't change const.I
引发一个异常

字典的key,value互换

In [1]: mydict = {"b":'B','a':'A','e':'E'}

In [2]: newdict = {value:key for key,value in mydict.items()}

In [3]: print newdict
{'A': 'a', 'B': 'b', 'E': 'e'}

unicode字符串中去除空格和换行符。

http://blog.csdn.net/overstack/article/details/9228669

In [38]: print k.split(" ")
[u'\r\n\t\t\t\t\t\t\u5c97\u4f4d\u804c\u8d23\uff1a,1\u3001\u673a\u5668\u4eba\u3001\u4eba\u5de5\u667a\u80fd\u9879\u76ee\u7cfb\u7edf\u67b6\u6784\u8bbe\u8ba1\uff1b,2\u3001\u8d1f\u8d23python\u811a\u672c\u8bbe\u8ba1\u548c\u5f00\u53d1\u5de5\u4f5c\uff1b,3\u3001\u4e0d\u65ad\u63d0\u9ad8\u56e2\u961f\u7684\u4ee3\u7801\u8d28\u91cf\u548c\u5de5\u4f5c\u6548\u7387\uff0c\u8425\u9020\u6280\u672f\u6c1b\u56f4\u3002,\u4efb\u804c\u8981\u6c42\uff1a,1\u3001\u8ba1\u7b97\u673a\u53ca\u76f8\u5173\u4e13\u4e1a\u5927\u4e13\u53ca\u4ee5\u4e0a\u5b66\u5386\uff0c2\u5e74\u4ee5\u4e0apython\u5f00\u53d1\u76f8\u5173\u5de5\u4f5c\u7ecf\u9a8c\uff1b,2\u3001python\u57fa\u7840\u624e\u5b9e\u3001\u719f\u6089\u9762\u5411\u5bf9\u8c61\u601d\u60f3\uff0c\u7cbe\u901a\u7f16\u7a0b\u8c03\u8bd5\u7b49\u76f8\u5173\u6280\u672f\uff1b,3\u3001\u719f\u6089pyqt\u7f16\u7a0b\uff1b,4\u3001\u638c\u63e1C/C++\u7f16\u7a0b\u3001\u719f\u6089Linux\u5e73\u53f0\u73af\u5883\u3001\u638c\u63e1Linux\u5e38\u7528\u547d\u4ee4\uff1b,5\u3001\u826f\u597d\u7684\u7f16\u7a0b\u98ce\u683c\u3001\u8f83\u597d\u7684\u6c9f\u901a\u80fd\u529b\u548c\u56e2\u961f\u5408\u4f5c\u7cbe\u795e\u3002\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t,\t\t\t\t\t\t\r\n\t\t\t\t\t\t,\r\n\t\t\t\t\t\t,\r\n\t\t\t\t\t']


##########################################################准确的应该这样。##########
In [41]: print k.replace(u"\t",'').replace(u"\n",'')
岗位职责:,1、机器人、人工智能项目系统架构设计;,2、负责python脚本设计和开发工作;,3、不断提高团队的代码质量和工作效率,营造技术氛围。,任职要求:,1、计算机及相关专业大专及以上学历,2年以上python开发相关工作经验;,2、python基础扎实、熟悉面向对象思想,精通编程调试等相关技术;,3、熟悉pyqt编程;,4、掌握C/C++编程、熟悉Linux平台环境、掌握Linux常用命令;,5、良好的编程风格、较, 的沟通能力和团队合作精神。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值