zoukankan      html  css  js  c++  java
  • python学习——简介和入门

    一、Python简介:

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

      最新的TIOBE排行榜,Python仅次于Java,c和c++占据第四!!!

      TIOBE排行榜链接:https://baijiahao.baidu.com/s?id=1614267655137624496&wfr=spider&for=pc

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

      Python是一门跨平台、开源、免费的解释型高级动态编程语言,支持伪编译将Python源程序转换为字节码来优化程序和提高运行速度,支持使用py2exe、pyinstaller或cx_Freeze工具将Python程序转换为二进制可执行文件。

      Python支持命令式编程(How to do)、函数式编程(What to do),完全支持面向对象程序设计,语法简洁清晰,拥有大量的几乎支持所有领域应用开发的成熟扩展库。

      胶水语言:可以把多种不同语言编写的程序融合到一起实现无缝拼接,更好地发挥不同语言和工具的优势,满足不同应用领域的需求。

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

     

    二、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……

      以上除PyPy之外,其他的Python的对应关系和执行流程如下:

                                                                                              

      PyPy,在Python的基础上对Python的字节码进一步处理,从而提升执行速度!

    三、python环境:Windows

      1、python的安装

        python的官方下载地址: https://www.python.org/downloads/

        python目前的版本:(比较特别,python2.7和python3.0某些地方不兼容)

          python2.7:目前都在往python3兼容,此版本有可能成为python的遗产。

          python3.7:正在发行,逐渐成长,越来越强大!

        python安装路径:默认在c盘下(c:python27或者c:python37)

        python环境变量配置:【右键计算机】-->【属性】-->【高级系统设置】-->【高级】-->【环境变量】-->【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

          如:原来的值;C:python27(;C:python37),切记前面  有分号 有分号 有分号

      2、python的更新

        直接卸载重装

      3、python入门

        在 /home/dev/ 目录下创建 hello.py 文件,内容如下:

       1 print('hello world')

        执行 hello.py 文件,即: python /home/dev/hello.py

        python内部执行过程如下:

      

    四、解释器

      

      上一步中执行 python /home/dev/hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

      如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:

    1 #!/usr/bin/env python
    2 
    3 print "hello,world"

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

    五、编码

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

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

     

     

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

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

      UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

    所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话就会报错:ascii码无法表示中文

      

    1 #!/usr/bin/env python
    2 
    3 print "你好,世界" 

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

      

    1 #!/usr/bin/env python
    2 
    3 # -*- coding: utf-8 -*-
    4 
    5 print "你好,世界"

    六、注释
      1.单行注释:#注释内容

      2.多行注释:"""注释内容"""(三个双引号)

    七、执行脚本传入参数

      Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

        Python内部提供的模块

        业内开源的模块

        程序员自己开发的模块

      Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行python脚本时传入的参数   

    1 #!/usr/bin/env python
    2 
    3 # -*- coding: utf-8 -*-
    4 
    5 import sys
    6 
    7 print sys.argv 

    八、pyc文件

      执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。(代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。)

    九、变量

      1、声明变量

    1 #!/usr/bin/env python
    2 
    3 # -*- coding: utf-8 -*-
    4 
    5 name = "liulonghai"

        

      上述代码声明了一个变量,变量名为: name,变量name的值为:"liulonghai"

      变量的作用:代指内存里某个地址中保存的内容(如下图)

     

      变量定义的规则:

        变量名只能是 字母、数字或下划线的任意组合

        变量名的第一个字符不能是数字

        以下关键字不能声明为变量名 ['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 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 
    4 import keyword
    5 
    6 print(keyword.kwlist)

      

      2、变量的赋值

        

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 
    4 name1 = "liulonghai"
    5 name2 = "luoshengyun"

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 
    4 name1 = "liulonghai"
    5 name2 = name1

    九、输入

      

     1 #!/usr/bin/env python
     2 
     3 # -*- coding: utf-8 -*-
     4 
     5 # 将用户输入的内容赋值给 name 变量
     6 
     7 name = raw_input("请输入用户名:")
     8 
     9 # 打印输入的内容
    10 
    11 print name

      输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

     1 #!/usr/bin/env python
     2 
     3 # -*- coding: utf-8 -*-
     4 
     5 import getpass
     6 
     7  # 将用户输入的内容赋值给 name 变量
     8 
     9 pwd = getpass.getpass("请输入密码:")
    10 
    11  # 打印输入的内容
    12 
    13 print pwd

    十、流程控制和缩进

      情景一、用户登陆验证(提示输入用户名和密码,验证用户名和密码,如果错误,则输出用户名或密码错误;反之,输出“欢迎,XXX”)

     1 #!/usr/bin/env python
     2 # -*- coding: encoding -*-
     3 
     4 import getpass
     5 
     6 name = raw_input('请输入用户名:')
     7 
     8 pwd = getpass.getpass('请输入密码:')
     9 
    10 if name == "liulonghai" and pwd == "cmd":
    11 
    12     print "欢迎,liulonghai!"
    13 
    14 else:
    15 
    16     print "用户名和密码错误"

      情景二、根据用户输入内容输出其权限(根据用户输入内容打印其权限,刘龙海:超级管理员 罗盛运:普通管理员 冯乾波:业务主管 其他:普通用户)

     1 #!/usr/bin/env python
     2 # -*- coding: encoding -*-
     3 name = raw_input('请输入用户名:')
     4 
     5 if name == "liulonghai" 6 
     7     print "超级管理员"
     8 
     9 elif name == "luoshengyun":
    10 
    11     print "普通管理员"
    12 
    13 elif name == "fengqianbo":
    14 
    15     print "业务主管"
    16 
    17 else:
    18 
    19     print "普通用户"

      外层变量,可以被内层变量使用

      内层变量,无法被外层变量使用

      在学习函数的时候你会知道关键字global和local以及nonlocal就完美的诠释了上面这两句话

     
    十一、循环
      1、while循环(注意:容易导致程序进入死循环 死循环 死循环 “和递归函数相似”   所以要给出明确的循环结束条件,能用for循环尽量不用while循环
        
    1 while 条件:
    2 
    3     # 循环体
    4 
    5     # 如果条件为真,那么循环体则执行
    6 
    7     # 如果条件为假,那么循环体不执行

      2、break(用于跳出整个循环

    1 while True:
    2 
    3     print "123"
    4 
    5     break
    6 
    7     print "456"

      3、continue(用于跳出当次循环,进入下一次循环

    1 while True:
    2 
    3     print "123"
    4 
    5     continue
    6 
    7     print "456"

      4、for循环只要是可迭代对象都可以进行for循环,反之能进行for循环就一定是可迭代对象

    1 #输出100以内所有偶数
    2 for i in range(101):
    3     if i % 2 == 0:
    4         print(i,end=' ')
    5     else:
    6         print('{}不是偶数'.format(i))

      有关循环的代码将在以后的随笔中给出

  • 相关阅读:
    升级windows 11小工具
    windows 10更新升级方法
    您需要了解的有关 Oracle 数据库修补的所有信息
    Step by Step Apply Rolling PSU Patch In Oracle Database 12c RAC Environment
    Upgrade Oracle Database Manually from 12.2.0.1 to 19c
    如何应用版本更新 12.2.0.1.210420(补丁 32507738 – 2021 年 4 月 RU)
    xtrabackup 安装、备份和恢复
    Centos_Lvm expand capacity without restarting CentOS
    Centos_Lvm_Create pv vg lv and mount
    通过全备+relaylog同步恢复被drop的库或表
  • 原文地址:https://www.cnblogs.com/lcs-LLH/p/9862751.html
Copyright © 2011-2022 走看看