编译型vs解释型

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言

Python优缺点

先看优点

  1. Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
  2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
  3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
  5. 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
  6. 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

再看缺点:

  1. 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.01s,用Python是0.1s,这样C语言直接比Python快了10倍,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
  2. 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
  3. 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细tansuo
    字符串操作:

     1 name.capitalize()  首字母大写
     2 name.casefold()   大写全部变小写
     3 name.center(50,"-")  输出 '---------------------Alex Li----------------------'
     4 name.count('lex') 统计 lex出现次数
     5 name.encode()  将字符串编码成bytes格式
     6 name.endswith("Li")  判断字符串是否以 Li结尾
     7  "Alex\tLi".expandtabs(10) 输出'Alex      Li', 将\t转换成多长的空格
     8  name.find('A')  查找A,找到返回其索引, 找不到返回-1
     9
    10 format :
    11     >>> msg = "my name is {}, and age is {}"
    12     >>> msg.format("alex",22)
    13     'my name is alex, and age is 22'
    14     >>> msg = "my name is {1}, and age is {0}"
    15     >>> msg.format("alex",22)
    16     'my name is 22, and age is alex'
    17     >>> msg = "my name is {name}, and age is {age}"
    18     >>> msg.format(age=22,name="ale")
    19     'my name is ale, and age is 22'
    20 format_map
    21     >>> msg.format_map({'name':'alex','age':22})
    22     'my name is alex, and age is 22'
    23
    24
    25 msg.index('a')  返回a所在字符串的索引
    26 '9aA'.isalnum()   True
    27
    28 '9'.isdigit() 是否整数
    29 name.isnumeric
    30 name.isprintable
    31 name.isspace
    32 name.istitle
    33 name.isupper
    34  "|".join(['alex','jack','rain'])
    35 'alex|jack|rain'
    36
    37
    38 maketrans
    39     >>> intab = "aeiou"  #This is the string having actual characters.
    40     >>> outtab = "12345" #This is the string having corresponding mapping character
    41     >>> trantab = str.maketrans(intab, outtab)
    42     >>>
    43     >>> str = "this is string example....wow!!!"
    44     >>> str.translate(trantab)
    45     'th3s 3s str3ng 2x1mpl2....w4w!!!'
    46
    47  msg.partition('is')   输出 ('my name ', 'is', ' {name}, and age is {age}')
    48
    49  >>> "alex li, chinese name is lijie".replace("li","LI",1)
    50      'alex LI, chinese name is lijie'
    51
    52  msg.swapcase 大小写互换
    53
    54
    55  >>> msg.zfill(40)
    56 '00000my name is {name}, and age is {age}'
    57
    58
    59
    60 >>> n4.ljust(40,"-")
    61 'Hello 2orld-----------------------------'
    62 >>> n4.rjust(40,"-")
    63 '-----------------------------Hello 2orld'
    64
    65
    66 >>> b="ddefdsdff_哈哈"
    67 >>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
    68 True

转载于:https://www.cnblogs.com/Dummer/p/8575380.html

python之freshman00相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  3. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  4. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  5. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  6. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  7. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

  8. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  9. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

最新文章

  1. iphone开发 NSURL中fileURLWithPath和URLWithString的区别
  2. ie6/IE8/IE9/谷歌以及火狐等浏览器下li 高度一致解决办法
  3. FLASH模仿苹果菜单源码.(AS苹果菜单源码)
  4. CSP认证 201503-3 节日[C++题解]:模拟、枚举、日期题、日期模板题
  5. OpenCV中SurfDescriptorExtractor
  6. boost::hana::negate用法的测试程序
  7. 查看mysql是否内存中读取数据_MySQL中的内存临时表
  8. jQuery—淘宝精品服饰案例
  9. SSD Network Architecture--keras version
  10. 在线c语言编程网站_学编程有哪些好的网站推荐?
  11. 助教日志_【沈阳航空航天大学软件工程 1,2 班】团队作业排行
  12. CSS篇-dbMovies和dbBooks小网页
  13. win7已经阻止此发行者在您的计算机上运行软件,Win7系统提示无法验证发布者windows已阻止软件的解决方法教程[多图]...
  14. QT报错:Gtk-Message:Failed to load module :gail“
  15. 【双11背后的技术】AliCloudDB——双11商家后台数据库的基石
  16. python凯撒加密代码_解密题(凯撒密码)
  17. 哪种类型是python不支持的_Python不支持以下哪种数据类型?
  18. 38.6歌曲计算机,抖音最火的6首歌曲,38度6垫底,沙漠骆驼第二,第一百听不厌...
  19. 在腾迅云申请免费型DV版SSL证书让自己的网站启用https
  20. 记录下奇奇怪怪的问题

热门文章

  1. java资源使用效率较高,Java 进程资源使用率较高问题定位
  2. 05 pyecharts 基本图表(示例代码+效果图)
  3. 笔记本计算机拆开视频,Designer笔记本电脑的视频电路拆解
  4. 关于RTX51-Tiny,一种适用于51的RTOS
  5. bootstrap 表单提交验证
  6. 修复Duilib MenuDemo右键菜单背景色和前景色无效问题
  7. 学习总结(抓沙理论、盲人摸象、高屋建瓴、囫囵吞枣)
  8. 【人类观察所】quot;当代人quot;正经历的生活
  9. 三天2亿游玩人次,近期爆火的「人生重开模拟器」,好玩在哪?
  10. 左倾红黑树(LLRBT)删除操作及相关性质总结答疑