c语言程序设计和python,c程序设计和python程序设计

  c语言程序设计和python,c程序设计和python程序设计

  c程序员的python开发总结-常高伟-博客花园

  c程序员的python开发总结之前发表过一篇文章《如何学习一门新的语言》。之后开始学习python,具体原因不是很清楚。先从python的简明教程开始,写了两个笔记《python初体验1》 《python初体验2》,感觉不多。因为后面有个小项目,想试试python。在这个过程中,我体验到了python的简单高效,有一种飞翔的感觉。也许我是一个C语言程序员。

  事实再次证明,学习一门新语言最好的方法就是在实际开发中使用。我旁边没有人有python经验,所以学习过程有些波折。好在很多问题都可以通过网络解决。另外,我在学习期间发现了一本非常好的书《python参考手册》,有时间一定要通读一遍。

  学习语言最大的障碍不是语法,也不是库的使用,而是之前语言的思维模式。3354思维定势会让人倾向于用一种新的语言来模拟自己熟悉的语言,而这是最大的障碍。你将无法体会这种语言的优势。所以要学会用新的思维方式解决问题。让我们回顾一下这个非常有意义的比喻:

  就好像你只有一把锤子,有人给了你一把螺丝刀,你说:“嘿,这不是一把好锤子,但我应该可以把螺丝刀倒着拿,用它砸东西。”你得到一把坏锤子,但事实上它是一把非常好的螺丝刀。所以你应该对一切保持开放积极的态度。"

  在这方面,赖永浩翻译了一篇文章《pythonic到底是什么玩意》,应该也是这个意思。赖永浩用python写的文章很好。

  好了,言归正传:下面是我的总结,对pythonic来说可能还不够。如果你有更好的计划,指出来。

  套接字编程:1。功能和c基本类似,唯一不同的是出错时不是通过返回值来通知,而是通过触发异常来通知。因此,udp中的bind、recvfrom和send to必须捕获异常。

  2.在垃圾收集期间,套接字也将被关闭。

  3.获取网卡的IP地址:

  s=socket.socket(socket。AF_INET,socket。SOCK_DGRAM)

  return socket . inet _ ntoa(fcntl . ioctl(s . fileno(),0X8915,struct.pack(256s ,ethname[:15])[20:24])

  字符串的使用:1。从字符串中删除一个字符串。没有直接提供此方法,但是可以实现replace:

  abcdef。替换( ,)

  同样的功能还有另一种方法:翻译。它最初的功能是用另一个字符替换字符串中的一个字符。注意,它不是一个字符串。它的第一个参数是一个转换表。第二个参数是要删除的字符串。我们可以用第二个参数del来实现这个功能。同时,第一个参数设置为None。

  翻译可能更有效率。此外,它的第二个参数可以使一个字符串包含多个字符,这将删除多个字符。

  2.strip方法:去掉字符串两边的空格,返回一个新的字符串。这个功能非常有用。

  3.endswitch:检查字符串是否以字符串结尾。

  4.partition:它根据指定的字符串将字符串分成三部分,并返回一个元组。第一个是指定字符串之前的内容,第二个是指定字符串,第三个是指定字符串之后的内容。对于字符串解析非常有用。

  5.split:根据指定的字符串将一个字符串拆分成多个子字符串,并返回一个拆分列表。

  6.join:连接一个字符串列表中的所有字符串,并在中间插入指定的字符串。

  功能的使用:1。函数的作用域:变量在函数中定义。如果与全局变量同名,全局变量名称会被覆盖,也就是说,在这里改变这个变量不会改变全局变量。但是,如果直接使用,将使用全局变量。同时,如果要修改全局变量,需要使全局变量:GlobalA。

  词典的使用:

  1.删除字典:直接使用del dict[k]可能会导致异常;首先,判断K是否存在有些低效;使用异常会使程序结构看起来很糟糕。好的方法是pop(k,默认v)。这将删除一个k项并返回。如果没有,返回缺省值v,如果没有添加缺省值,将抛出异常。

  2.直接使用字典下标获取字典值可能会导致字段。如果使用get方法,则不会。如果不存在,将返回none。此外,您可以设置一个不存在的默认值。

  3.通过字典格式化字符串:print "值是% (key) s"% kvdict

  4.方法返回一个列表。列表中的元素是一个元组,第一个是键,第二个是值。更好的使用方法。

  列表的使用:

  1.删除列表:遍历过程中不能删除链表,会产生不可预知的后果。您可以使用列表过滤来获取新列表。

  2.过滤列表:

  DefilterFun (node): #这个函数做两件事。

  node . cycle count=node . cycle count-1

  返回node.cycleCount 0

  timeoutList=filter(filterFun,timerList)

  对timerList中的每个节点执行函数filterFun,根据filterFun返回的结果形成新的真项列表。

  3、map: kvlist=map(lambda x:x.strip(),kvlist)

  4、

  xml的使用:1。处理XML消息包的一个更好的模块是xml.etree.ElementTree。

  2.元素执行xml的根节点。

  3.elem.find(path):查找根节点下有path的子节点。

  4.elem.findall(path):相同的子节点可能不止一个,这里会返回一个列表。

  5.elem.findtext(path):获取指定路径的子节点的内容。我们会经常用到这个。

  6、elem.get(键);获取属性的值。

  7.如果以上都没用,则一个都不返回。

  8.elem.append:从节点添加。

  9.elem.tag:返回标记值,即名称。

  10.elem.text:返回内容。

  1.返回属性字典。

  12.子元素:生成一个节点,并自动将其添加为父节点的子节点。

  13.tostring:转换为xml文本字符串。但是不包括xml报头。如果编码方式是UTF-8或者GB2312,gb2312会生成xml头;如果是utf-8,就不会生成xml头。

  14.fromstring:从字符串转换为ElementTree对象。与XML功能相同。

  15、elem . set();设置属性值

  时间的使用:1。time.sleep()函数具有C下sleep函数的功能,单位为秒,但可以接受浮点数。这可以表示毫秒。

  2.ti=datetime.datetime.now()可以显示当前时间,包括当前的微秒。两者之差可以表示时间间隔:微秒长=time long . seconds * 1000000 time long .微秒,差的成员是秒和微秒。

  3、

  OO: 1的使用。如果不希望成员变量或方法在外部使用(即私有特性),可以用_ _双下划线将其打开。

  2.Python也可以实现抽象基类,即接口:

  3.__str__属性可以将对象转换成字符串,即调用print(object)是一个将要打印的字符串。

  4.__call__可以看到要作为函数调用的对象。给个参考就好。

  5.可以删除对象实例吗?

  6.好好看看Python参考手册。

  模块的使用:1。如果不希望模块的某些函数和变量被其他模块使用,可以用单下划线开头。没有像这样的import *,而是使用importmode,然后是mode。_fun还是可以叫的。

  2、

  日志的使用:1。log的标准模块基本可以满足我的工作。

  2.设置日志的初始化:

  logging.basicConfig(

  文件名=test.log ,

  format=[%(ASC time)s-%(level name)s]%(message)s[%(filename)s,%(lineno)d],

  级别=记录。信息,

  datefmt=%F %T )

  3.此外,一个更强大的功能是过滤功能:你可以过滤很多东西,如级别,文件,行号等。

  4、

  内省使用:1。type()可以检查对象的类型。这就是自省。也就是看你是什么类型。这个函数在动态语言中非常有用。

  2、

  使用配置文件读取:1。使用ConfigParser模块。例子如下:

  conf=ConfigParser()

  conf.read(snmp_agent.ini )

  print(conf.get(main , log_level ))

  print(conf.getint(main , ne_agent_port ))

  print(conf.get(main , ne_agent_qip ))

  不寻常用途:1。尽量少用。会让程序变得难以理解,会出现不可预知的情况,比如出现异常使得程序的状态变成未知状态。

  2.你可以寻找替代品。

  3.这个项目非常重要,不能停止。它可以包装在主循环中,在异常处理中运行。

  4.打印出异常信息,以便后期定位:log.error(traceback.format_exc())

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 浅谈python程序的错误-变量未定义的原因,浅谈python程序的错误-变量未定义为
  • 浅谈python程序的错误-变量未定义的原因,浅谈python程序的错误-变量未定义为,浅谈Python程序的错误-变量未定义
  • Python程序设计与算法基础教程,python算法指南
  • Python程序设计与算法基础教程,python算法指南,Python常用算法学习基础教程
  • ,,8个实用的Python程序你知道几个
  • python程序打包成exe可执行文件,python程序打包成exe后的 运行速度
  • python流程管理,Python程序开发流程
  • Python程序开发案例教程,python程序设计案例实践教程
  • python编程基础与案例集锦,python程序代码实例
  • python程序设计实例教程董付国课后答案,python程序设计第三版董付国
  • 如果在python程序中没有导入相关模块,python外部模块不用导入可以直接使用
  • Python程序语言设计基础,Python编程设计
  • python程序语言的特点,Python编程的特点
  • python程序编写,python编程求素数
  • python向服务器发送数据,python程序如何在服务器部署
  • 留言与评论(共有 条评论)
       
    验证码: