码迷,mamicode.com
首页 > 其他好文 > 详细

puthon基础(一)

时间:2018-03-16 20:46:31      阅读:1480      评论:0      收藏:0      [点我收藏+]

标签:方向   dsa   style   支持   跨平台   col   oba   解决方法   continue   

1,计算机基础。

 cpu:相当于人的大脑,运算与控制中心。    速度 飞机 
 内存:4G,8G,16G....暂时存储,供给cpu数据。
 速度  高铁。成本高,断电即消失。 
 硬盘:相当于你电脑的数据库,存储着大量数据,文件,小电影。
 速度:走。  成本低,永久保存。 
 操作系统:执行者,支配所有关系。windows,linux,cenos,.

 

2,python的历史。

python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  

(龟叔:2005年加入谷歌至2012年,2013年加入Dropbox直到现在,依然掌握着Python发展的核心方向,被称为仁慈的独裁者)。

 Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
 python2x,python3x,区别。  
  python2x:源码混乱,重复代码较多,冗余。
  python3x:源码规范,崇尚优美清晰,简单。


  
3,开发的分类。
 
 解释型:当程序运行时,将代码一行一行的解释成二进制,在运行。
  优点:排错快,开发效率高,可以跨平台。
  缺点:执行效率相对低。
  典型:python。
 
 编译型:将代码一次性全部编译成二进制,然后在运行。
  缺点:排错慢,开发效率低,不能跨平台。
  优点:执行效率高。
  典型:C。

4,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的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。


5,python的种类。

CPython

当我们从Python官方网站下载并安装好Python 3.6后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

小结:

  Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

6,运行第一个python程序。
 python 文件路径  回车
 区别:python3x  print(‘内容‘)
    python2x  print() 或者 print ‘内容‘
   
  python3x 编码:utf-8
  python2x 默认编码:ascii
     解决方式:在首行 # -*- encoding:utf-8 -*-

#!/usr/bin/env python
-*- encoding:utf-8 -*-

如此一来,执行: ./t1.py 即可。 

 解决方法:全部卸载,卸载的同时,将环境变量相关删除。
 找不到文件:
7,变量。

   1,变量必须由数字,字母,下划线任意组合。
   2,变量不能以数字开头。
   3,变量不能是python中的关键字。 [‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘,  ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘,  ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘,  ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘,     ‘raise‘, ‘return‘,  ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
   4,变量要具有可描述性。
    fdjsaf = ‘老男孩‘
   5,变量不能是中文。
   6,变量不能太长。
   7,官方推荐:
  
  #驼峰体

  AgeOfOldboy = 56

  NumberOfStudents = 100

  #下划线

  age_of_oldboy = 56

  number_of_students = 80
 
 w__ = 22  T
 e_a_ = ‘太白‘  T
 e$ = ‘fdsa‘  F
 -_ = ‘15‘  F
 2g = 33 F数字不能开头 
 __ = ‘老男孩‘ T 
 
 
8,常量。
 不变的量:生日,身份证号,
 python 规定没有,默认全部大写的变量 成为常量。
 BIRTH = 19970425

9,注释。
 为什么有注释?
 帮助你记起之前的代码,或者帮助别人看懂你的代码。
 单行注释:#
 多行注释:‘‘‘被注释内容‘‘‘    """被注释内容"""
10,基础数据类型初始。
 1,数字类型 int。
 用于计算。
 type() 判断此数据是什么数据类型。
 
11,用户交互。input
 input 字符串数据类型。
 python2x : raw_input()
 python3x :input()
2,if语句。
第一种结构:
if 条件:
 结果
第二种结构:

if 条件:
 结果
else:
 结果
第三种结构:
choice = input(‘请输入你的猜的数字:‘)
if 条件:
 结果
elif 条件:
 结果
elif 条件:
 结果
第四种结构:
if 条件:
 结果
elif 条件:
 结果
elif 条件:
结果
else:
 结果
第五种结构:
if 条件:
 if 条件:
  结果
 else:
  结果
else:
 结果
 
int ---> str      str(12)
str ---> int   ‘123‘  ‘123q‘ 全部由数字组成的字符串才能转换成数字
    int(‘123‘)

13,while语句。

while 条件:
 结果
 
跳出循环的条件:
 1,改变条件。
 2,break。

break : 结束循环。
continue:结束本次循环,继续下一次循环。

 

puthon基础(一)

标签:方向   dsa   style   支持   跨平台   col   oba   解决方法   continue   

原文地址:https://www.cnblogs.com/-sdc-/p/8584974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!