一.了解python

python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。

Python已经成为最受欢迎的程序设计语言之一,自从2004年以后,python的使用率是呈线性增长,由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python教授程序设计课程。

由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维自动化测试大数据分析、爬虫、Web 。

目前python的主要应用领域主要由如下方面:

  • 云计算: 云计算最火的语言, 典型应用OpenStack
  • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维: 运维人员必备语言
  • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI: PyQT, WxPython,TkInter

python和其他语言的对比

C 和 Python、Java、C#等 

  C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

  其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

  对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
  对于速度:Python的运行速度相较与C,绝逼是慢了

Python 和 Java、C#等

  对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
  对于速度:Python在速度上可能稍显逊色。

所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。做程序最重要的是算法和架构。语言只是一个表达工具,不同语言实现的方法有所不同但效果还是能够实现的,就像中文和英文一样都能够表达具体的意思,但是写出好的文学作品却需要更深的造诣。

python家族

  • Cpython
        Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
  • Jyhton
        Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
  • IronPython
        Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
  • PyPy(特殊)
        Python实现的Python,将Python的字节码字节码再编译成机器码。 
  • RubyPython、Brython ...

python几个重要的发展阶段:

  • 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
  • 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 - January 1994 增加了 lambdamapfilter and reduce.
  • Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015

2.x与3.x版本对比

             版本                               2.x                                3.x                      
print print " "或者print()打印都可以正常输出

只能print()这种形式打印,否则会出现

SyntaxErro

input

raw_inut

input:输出原生的数据类型,输入什么类型的值,就输出什么类型

raw_input:全部以字符串形式输出

3.x取消了raw_input方法,只能使用input()

方式提示输入字符串, 该方法和2.x版本的raw_input()

如果想要实现与2.x input()输出原生数据类型的值,

可以使用eval(input())

class 2.x支持新式类,和经典类,使用新式类时,类继承顺序会影响最终继承的结果 必须使用新式类,解决了类间继承顺序问题
/ 例如:1/2,2.x输出的值为0

例如:1/2 3.x输出的值为0.5

  二.python的安装 

python 官方网站获取相关安装包:

  windows 安装方法:

1、下载安装包

    https://www.python.org/downloads/
2、安装
    默认安装路径:C:\python27
3、配置环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    如:原来的值;C:\python27,切记前面有分号
  linux  mac 安装方法:
自带python,需要注意安装的版本和,相关的环境变量等
 

三.python入门

 
python的第一个程序:
  python交互器上打印如下代码:
  1. print("hello world")

  

  1. [root@15f-rec-dev-01 www]# python
  2. Python 2.7.2 (default, Jul 15 2013, 19:48:19)
  3. [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. >>> print("hello world ")
  6. hello world
  7. >>>

  创建文件.py 执行第一个程序 创建hell.py

  1. [root@15f-rec-dev-01 www]# ls
  2. hell.py
  3. [root@15f-rec-dev-01 www]# cat hell.py
  4. #!/bin/env python
  5.  
  6. print ("hello world")
  7.  
  8. [root@15f-rec-dev-01 www]# python hell.py
  9. hello world
  10. [root@15f-rec-dev-01 www]#

  #!/bin/env python 为指定python解释器,指定此脚本由 /bin/env下的python来执行因此也可以直接用 ./ 直接执行如下:

  1. [root@15f-rec-dev-01 www]# chmod +x hell.py
  2. [root@15f-rec-dev-01 www]# ./hell.py
  3. hello world
  4. [root@15f-rec-dev-01 www]#

 

  声明变量:变量名为address 值为 beijing

  1. # -*- coding:utf-8 -*-
  2.  
  3. address = "beijing"

  变量定义规则:

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
    ['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']

  字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。

ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ascii码无法表示中文报错:

  1. print "你好"

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即

  1. # -*- coding:utf-8 -*-
  2. print("你好")

  注释:

单行注释:   #被注释内容

多行注释:'''  被注释内容 '''

  用户输入

input ():

raw_input():    ----python3.x 已经取消掉

如下代码,获取用户输入:

  1. #!/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. # name = raw_input("please insert your name: ") onley on 2.x
  5. name = input("please insert your name :")
  6.  
  7. print("Hello" + name)

getpass 模块中的getpass方法:隐藏用户输入的密码(正宗的密码输入方法)

  1. #!/bin/env python
  2. #-*- coding:uth-8 -*-
  3. import getpass
  4.  
  5. passwd = getpass.getpass("plz insert password:")
  6.  
  7. print(passwd)

  python简单模块

Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,如下两个简单的库:

sys

  1. #!/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. import sys
  5.  
  6. print(sys.argv)
  7.  
  8. # 输出
  9.  
  10. [root@15f-rec-dev-01 www]# python test.py hell world
  11. ['test.py', 'hell', 'world']

os

  1. #!/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. import os
  5.  
  6. os.system("df -h")
  7.  
  8. ##输出
  9.  
  10. [root@15f-rec-dev-01 www]# python os.py
  11. Filesystem Size Used Avail Use% Mounted on
  12. /dev/mapper/VolGroup00-LogVol00
  13. 8.3G 4.5G 3.4G 58% /
  14. /dev/vda1 487M 23M 440M 5% /boot
  15. tmpfs 7.9G 0 7.9G 0% /dev/shm
  16. /dev/vdb 200G 82G 119G 41% /opt

简单结合:

  1. #!/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. import os,sys
  5.  
  6. os.system(''.join(sys.argv[1:]))
  7.  
  8. #输出
  9. [root@15f-rec-dev-01 www]# python os.py "df -Th"
  10. Filesystem Type Size Used Avail Use% Mounted on
  11. /dev/mapper/VolGroup00-LogVol00
  12. ext3 8.3G 4.5G 3.4G 58% /
  13. /dev/vda1 ext3 487M 23M 440M 5% /boot
  14. tmpfs tmpfs 7.9G 0 7.9G 0% /dev/shm
  15. /dev/vdb xfs 200G 82G 119G 41% /opt

  python表达式

 if  else  判断表达式:
应用小场景,如下用户名密码登陆小例子 
  1. # -*- coding:utf-8 -*-
  2. # Author:wencheng.zhao
  3.  
  4. username = "wencheng"
  5. passwd = ""
  6.  
  7. in_username = input("username:")
  8. in_passwd = input("passwd:")
  9.  
  10. if username == in_username and passwd == in_passwd:
  11. print('登陆成功.')
  12.  
  13. else:
  14. print('用户名或者密码输入错误...')

如下猜数字场景

  1. # -*- coding:utf-8 -*-
  2. # Author:wencheng.zhao
  3.  
  4. age = 21
  5. count = 0
  6. for i in range(10):
  7. if count < 3:
  8. guessnum = int(input('plz insert your guess num:'))
  9. if age == guessnum:
  10. print("恭喜,,猜对了!!!")
  11. break
  12. elif guessnum > age:
  13. print("猜大了,再小点。。。")
  14. else:
  15. print("猜小了,再大点。。。")
  16. else:
  17. #print("尝试次数超过3,自动退出。。再见")
  18. #break
  19. con_cconfirm = input("是否继续: y or n:")
  20. if con_cconfirm == "y":
  21. count = 0
  22. continue
  23. else:
  24. print("退出。。再见")
  25. break
  26. count += 1

  for 循环语句:

  1. #!/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. for i in range(10):
  5. print("hello",i)

  输出结果如下:

  1. [root@vm-t0-1-data1 wencheng]# python for.py
  2. ('hello', 0)
  3. ('hello', 1)
  4. ('hello', 2)
  5. ('hello', 3)
  6. ('hello', 4)
  7. ('hello', 5)
  8. ('hello', 6)
  9. ('hello', 7)
  10. ('hello', 8)
  11. ('hello', 9)

  for 中continue   与  break :

continue : 结束本次循环直接进入到下一次循环如下:

  1. #!/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. for i in range(10):
  5. if i < 5:
  6. continue
  7. print("hello",i)

执行结果如下:

  1. [root@vm-t0-1-data1 wencheng]# python for.py
  2. ('hello', 5)
  3. ('hello', 6)
  4. ('hello', 7)
  5. ('hello', 8)
  6. ('hello', 9)

break:结束整个循环(注意如下例子中的比较符号改为大于)

  1. #!/bin/env python
  2. #-*- coding:utf-8 -*-
  3.  
  4. for i in range(10):
  5. if i > 5:
  6. break
  7. print("hello",i)

执行结果如下:

  1. [root@vm-t0-1-data1 wencheng]# python for.py
  2. ('hello', 0)
  3. ('hello', 1)
  4. ('hello', 2)
  5. ('hello', 3)
  6. ('hello', 4)
  7. ('hello', 5)
  
 
 
 
 

python - num1 -初识python的更多相关文章

  1. python day1:初识Python(一)

    一.Python 简介: Python免费.开源,面向对象的解释型语言,其语法简洁,在使用中无需考虑如何管理内存等底层问题,并且支持在linux,windows等多平台运行,Python的标准库很强大 ...

  2. 和我一起学python,初识python (life is short ,we need python)

    作者:tobecrazy  出处:http://www.cnblogs.com/tobecrazy 欢迎转载,转载请注明出处.thank you! 由于项目需要(并非因为life is short), ...

  3. Python基础 初识Python

    机器码 机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 通常意义上来理解的话,机器码就是计算机可以直接执行,并且执 ...

  4. python基础-初识Python和不同语言之间的区别

    一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...

  5. 【python】-- 初识python

    Python 安装 windows: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键计算机 ...

  6. Python 1 初识python

    1.Python介绍 Python是一种高级语言,与JAVA C# 等同.可以编写各种应用程序,每种语言都有其合适的应用场景.而Python 的优势在于更加人性化.简便的语法规则,以及针对各种具体场景 ...

  7. 【python】初识python的问题

    这两天利用晚上时间简单的了解了一下python语言,在Mac上和Windows上都安装了python,对比两个平台,还是发现在mac上体验比较好一点.安装的版本好像也不一样,语法还有点小区别.简单的对 ...

  8. 【python】初识python

    [命名规范] 模块名:小写字母,单词之间用_分割:例如:ad_stats.py 包名:和模块名一样 类名:单词首字母大写:例如:ConfigUtil 全局变量名:大写字母,单词之间用_分割:例如:NU ...

  9. Python 基础 --初识Python

    python的起源 python是一门 解释型弱类型编程语言. 特点: 简单.明确.优雅 python的解释器 CPython. 官方提供的. 内部使用c语言来实现 PyPy. 一次性把我们的代码解释 ...

随机推荐

  1. IIC 概述之3

    为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形: 如下图所示的写操作的时序图: 读时序的理解同理.对于时序不理解的朋友请参考“I2C总线之(二)---时序” 完整的程序如下: ...

  2. E​F​I​主​板​和​G​P​T​分​区​表​安​装​系​统以及转换GPT分区表的方法

    现在硬盘越来越大,而原来的MBR分区方式,超过2T的硬盘就会识别不全,只有使用GPT的方式才可以,但是GPT如果用原来的BIOS是无法引导装系统了,不过如果你的主板支持EFI,那么可以用GPT+EFI ...

  3. Linux企业级项目实践之网络爬虫(12)——处理HTTP应答头

    Web服务器的HTTP应答一般由以下几项构成:一个状态行,一个或多个应答头,一个空行,内容文档.设置HTTP应答头往往和设置状态行中的状态代码结合起来.例如,有好几个表示"文档位置已经改变& ...

  4. Best Cow Line (POJ 3617)

    题目: 给定长度为N的字符串S,要构造一个长度为N的字符串T.起初,T是一个空串,随后反复进行下列任意操作. ·从S的头部删除一个字符,加到T的尾部 ·从S的尾部删除一个字符,加到T的尾部 目标是要构 ...

  5. hdu 5424 Rikka with Graph II(dfs+哈密顿路径)

    Problem Description   As we know, Rikka is poor at math. Yuta is worrying about this situation, so h ...

  6. banner背景通栏

     background: #76CEF6 url("../images/bg.jpg") repeat-x 0 0;  -webkit-background-size: 100%; ...

  7. PC-JS小技巧

    # 事件源对象 event.srcElement.tagName event.srcElement.type # 捕获释放 event.srcElement.setCapture(); event.s ...

  8. 用消息在Win32控制台程序多线程间进行通讯

      #include <stdio.h> #include <windows.h> //#include <iostream> //#include <pro ...

  9. python-线程、进程、协程

    进程 && 线程 进程:是内存中的一个独立的句柄,我们可以理解为一个应用程序在内存中就是一个进程. 各个进程之间是内存相互独立,不可共享的 线程:每个应用运行之后就会对应启动一个主线程 ...

  10. jquery选择指定元素之外的所有元素

    最近的项目中有这么一个需求,点击一排图片中的任意一张后底部弹出一个对话框,要求点击任意地方隐藏对话框 这个时候用not()显然是不现实的,用closest()可以实现差不多的功能 <!DOCTY ...