zoukankan      html  css  js  c++  java
  • 01_Python基础

    一、Python介绍

    1.1 Python的前世今生

    创始人Guido·van·Rossum,1989年为了打发无聊的圣诞节而编写的一个编程语言。

    1.2 TIOBE Index for May 2016

    1.3 目前Python主要应用领域

    • 云计算: 云计算最火的语言, 典型应用OpenStack
    • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣等, 典型WEB框架有Django。
    • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas。
    • 系统运维: 运维人员必备语言。
    • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。
    • 图形GUI: PyQT, WxPython,TkInter。

    1.4 Python在一些公司的应用

    • 谷歌Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发。
    • CIA: 美国中情局网站就是用Python开发的。
    • NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算。
    • YouTube:世界上最大的视频网站YouTube就是用Python开发的。
    • Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载。
    • Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发。
    • Facebook:大量的基础库均通过Python实现的。
    • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的。
    • 豆瓣: 公司几乎所有的业务均是通过Python开发的。
    • 知乎: 国内最大的问答社区,通过Python开发(国外Quora)。
    • 春雨医生:国内知名的在线医疗网站是用Python开发的。
    • 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。

    1.5 为什么是Python!

    Python与C
    C语言:代码编译得到机器码,机器码在处理器上直接执行。
    Python:为解析后生成字节码,然后再解析为机器码,所以比C语言慢。Python是C开发的。

    Python和其他语言比较 
    使用:Linux原装Python。
    速度:Python在速度上可能稍显逊色。

    1.6 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 ...

    1.7 Python 2与3

    简化语法

    1 Old: print "The answer is", 2*2 New: print("The answer is", 2*2)
    2 Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline
    3 Old: print # Prints a newline
    4 New: print() # You must call the function!
    5 Old: print >>sys.stderr, "fatal error" New: print("fatal error", file=sys.stderr)
    6 Old: print (x, y) # prints repr((x, y))
    7 New: print((x, y)) # Not the same as print(x, y)!

    1.8 解释器 

    1 #!/usr/bin/env python #指定哪个程序来运行,需要有执行权限
    2 #-*-coding:utf-8-*-  #万国码,UTF08

    3 print("Hello World!")

    二、 Python环境搭建

    2.1 Windows

    2.1.1 Python 3.5.1

    安装过程:省略。

    2.1.2 Pycharm

      PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

    2.2 Linux

    2.2.1 CentOS 6.7

    默认Python版本2.6.6

    PS:安装之前需要安装readline-devel包,解决python命令行下方向键显示^[[C^[[D的问题。

    安装Python 3.5.1

     1 yum groupinstall 'Development Tools'
     2 yum install zlib-devel bzip2-devel  openssl-devel ncurses-devel
     3 yum install easy_install readline-devel  #安装此包可解决python命令行内无法使用键盘方向键的问题
     4 wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
     5 tar -xf Python-3.5.1.tgz 
     6 cd Python-3.5.1
     7 ./configure --prefix=/usr/local/python3.5.1
     8 make && make install
     9 ln -s /usr/local/python3.5.1/bin/python3 /usr/bin/python3
    
    [root@Python ~]# python3
    Python 3.5.1 (default, May 10 2016, 15:36:08) 
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 

    三、 Python入门

    3.1 Hello World

    hello.py
    1
    #!/usr/bin/env python 2 #-*-coding:utf-8-*- 3 4 print("Hello World!")

     输出结果

    [root@Python ~]# python3 hello.py 
    Hello World!

    3.2 变量\字符编码

    所有引号内的内容都被认为字符串

    变量定义的规则:

    • 变量名只能是 字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 以下关键字不能声明为变量名
      ['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']
    1 >>> name = "Dalong"
    2 >>> name2 = name
    3 >>> print(name,name2)
    4 Dalong Dalong
    5 >>> name = "Jack"
    6 >>> print(name,name2)
    7 Jack Dalong
    8 >>> 

    模块

    练习1:输入用户密码,并打印结果 getpass模块

    1 #!/usr/bin/env python
    2 #_*_coding:utf-8_*_
    3 
    4 import getpass
    5 username = input("username:")
    6 password = getpass.getpass("password:")
    7 print(username,password)

    执行结果

    [root@Python ~]# python3 pass.py 
    username:dalong      
    password:
    dalong 123456

    练习2:if 判断用户名密码是否正确

    #!/usr/bin/env python
    #_*_coding:utf-8_*_
    
    user = 'Dalong'
    passwd = 'Dalong123'
    
    username = input("username:")
    password = input("password:")
    
    if user == username and passwd == password:
        print("Welcome login")
    else:
        print("invalid username or password")

    执行结果

    [root@Python ~]# python if_v2.py 
    username:dalong
    password:123
    invalid username or password
    [root@Python ~]# python if_v2.py 
    username:long
    password:dalong123
    invalid username or password
    [root@Python ~]# python if_v2.py 
    username:dalong
    password:dalong123
    Welcome login

    练习3:猜数字

    猜错3次提示是否继续

    #!/usr/bin/env python
    #_*_coding:utf-8_*_
    
    age = 22
    counter = 0
    for i in range(10):
        if counter <3:
            guess_num = int(input("Input your guess num:"))
            if guess_num == age :
                print("Congratulations!You got it.")
                break #不继续运行,跳出整个循环
            elif guess_num >age:
                print("Think Smaller!")
            else:
                print("Think Big!")
        else:
            continue_confirm = input("Do you want Y:")
            if continue_confirm == 'y':
                counter = 0
                continue
            else:
                print("bye")
                break
        counter += 1  #counter = counter + 1

    执行结果

    Input your guess num:11
    Think Big!
    Input your guess num:33
    Think Smaller!
    Input your guess num:55
    Think Smaller!
    Do you want Y:y
    Input your guess num:11
    Think Big!
    Input your guess num:33
    Think Smaller!
    Input your guess num:22
    Congratulations!You got it.

     Tab命令补全

    >>> import sys  #加载sys模块
    >>> print(sys.path)  #查看pthong环境变量路径
    ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']
    >>> exit()
    
    ubuntu@ubuntu:~$ cat /usr/lib/python3.5/distutils/tab.py  #新建tab.py文件
    #!/usr/bin/env python 
    # python startup file 
    import sys
    import readline
    import rlcompleter
    import atexit
    import os
    # tab completion 
    readline.parse_and_bind('tab: complete')
    # history file 
    histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
    try:
    readline.read_history_file(histfile)
    except IOError:
    pass
    atexit.register(readline.write_history_file, histfile)
    del os, histfile, readline, rlcompleter
    
    >>> in  #再次运行输入命令时,按tab键结果
    in input( int(
     

     

  • 相关阅读:
    jacob根据word模板和书签插入内容,在jacob1.14.3测试成功...
    在.NET上如何根据字符串动态创建控件
    rabbitvcs一款在Linux平台下类似于乌龟的SVN客户端
    平时摘录开发经验
    C#中treeview绑定xml
    ubuntu下SVN服务器安装配置
    网页中的一些常用快捷键
    python 数据类型
    python 删除空文件夹脚本
    删除指定文件的python脚本
  • 原文地址:https://www.cnblogs.com/Liangdalong/p/5302834.html
Copyright © 2011-2022 走看看