zoukankan      html  css  js  c++  java
  • 与python的第一次邂逅

    python简介

    一.什么是python

    • python是一种面向对象、直译式的计算机程序语言,所以有了武老师的那句名言:一切皆为对象
    • python的设计哲学是:“优雅”,“明确”,“简单”
    • python那些能做的事:web程序,GUI开发,自动化运维,领域涉及到数据分析,量化投资,系统编程,组件集成。网络服务,图像处理,数值计算和科学计算,自动化测试,爬虫

    二.和其他语言的对比

      1.python自身的优缺点:

    • python是一种全栈语言,不仅可以做前端,还可以做后端,并且开发效率高,同样的功能比其他语言少得多的代码,而且python拥有丰富的类库,由于其设计哲学,所以python的代码犹如阅读美文样具有易读性

    • 由于python还是一种不成熟的语言,在处理多线程进程表现的不是很完美

      2.其他语言的优缺点:

    • c语言被认为是最基层的语言,和机器直接打交道,代码直接转换成机器码,执行效率高是无可厚非的,而python等语言首先要把代码编译成字节码,然后再编译成机器码,中间就多了那么一步
    • 不过,c语言对内存的拿与放需要频繁的操作,另外提供线程的功能比较少(其实大多数的语言都是基于c语言来做的,而且这些语言的出现就是对c语言的某些方面进行优化,例如java,c#,php,也包括现在讲的python)
    • PHP在前端web网站有着先天性的优势,而在后端,却显得那么憔悴无力,而python做前端和后端都是非常的方便,比如数据分析方向

    三.python的种类和区别

    • 由于python比较火,各大语言都开发了自己版本的python,比如jpython就是Java开发的,rubypython就是ruby开发的...这些不同版本的python都用的是同一套规则
    • 另外,它们唯一的不同就是,代码编译过程都是用自己语言的编译器,比如,jpython就是用Java的编辑器把代码编译字节码的,有一个pypy版的python,它的代码是直接转换成机器码,执行效果高,主要常见于微线程,不过我们现在用是的cPython

    编程要求

    一.语法要求

    • 统一缩进:同一级代码必须保持一致!(建议是每次缩进4个空格)

    二.变量命名

    • ›命名规则
      ›1.只能包含字母、数字、下划线(python对大小写敏感)
      ›2.不能以数字开头
      ›3.不能是python中定义的关键字

    python的安装与更新

    一.安装python

    • 下载安装包:https://www.python.org/downloads/
    • 安装默认路径:C:python3.5
    • 配置环境变量:  【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    • linux:linux自带,无需安装

    二.更新python

    • windows:卸载重装即可
    • linux:
    • 查看默认Python版本
      python -V

      1、安装gcc,用于编译Python源码
          yum install gcc
      2、下载源码包,https://www.python.org/ftp/python/
      3、解压并进入源码文件
      4、编译安装
          ./configure
          make all
          make install
      5、查看版本
          /usr/local/bin/python2.7 -V
      6、修改默认Python版本
          mv /usr/bin/python /usr/bin/python2.6
          ln -s /usr/local/bin/python2.7 /usr/bin/python
      7、防止yum执行异常,修改yum使用的Python版本
          vi /usr/bin/yum
          将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6

    第一次写python

    一.执行方式

    •   解释器编写
    •   文件编写,在终端执行文件(python 路径)
    •   指定python解释器的路径 #! /usr/bin/env python

    二.写下第一句代码

    print('hello world')
    

       print 打印(python2.7可以不加括号,但python3一定要加)

    三.编码

    •   ascii码,8位制,由于计算机语言发明时只考虑了发明者国家的文字语言
    •   unicode,万国码,兼收了多国的文字语言,至少用两个字节,其中汉字3个字节(弊端:占内存)
    •   gbk和utf-8,对Unicode加工归类,精简
    •   # -*- coding:utf-8 -*-    告诉程序用什么编码(py2.7用中文加上这行就是默认ascii转换,py3.0默认utf-8)

    四.初识模块和字节码

    •   虽然在python的执行方式中的执行文件扩展名可以.txt或.py,但为了规范,统一.py
    •   单行注释用#(快捷键--ctrl+/),多行注释用三引号
    •   import 文件名(等同吧这个文件名的代码导入到了当前程序)
    •   文件代码执行过程中就伴随字节码文件的生成.pyc,而且执行时优先找.pyc文件,找不到再找源文件,根据源文件生成一个.pyc文件,然后再执行.pyc文件

    五.用户交互

    •   交互器:py2.7是raw_input,py3.0是input
    username = input('please input your username:')
    passward = input('please input your passward:')
    print('用户名:',username,'密码为:',passward)
    
    •  输入的结果为:用户名: 拍省先生 密码为: 123

    六.编写流程梳理

    •   创建xxx.py文件(文本文件改名)--注:不要有中文路径
    •   写代码:1.头两行(指定解释器,指定文件编码) 2.功能代码
    •   执行代码:1.打开中终端  2.python 文件路径python
    •       python编码转换图

    #在python2.7中编码转换有一个中转过程
    #windows终端能对unicode编码自动转换成默认类型gbk
    # temp = '李杰'
    #解码,需要指定原来是什么编码
    # temp_unicode = temp.decode('utf-8')
    # temp_gbk = temp_unicode.encode('gbk')
    # print(temp_gbk)
    
    #而在python3.5中不用人为中转了,程序会自动转换,
    # 而且在python3移除了python的unicode的类型
    temp = '李杰'
    temp_gbk = temp.encode('gbk')
    print(temp_gbk)   #结果为b'xc0xeexbdxdc'

    七.初识python数据类型

    •   数字:age = 18
    •   字符串: a1 = ’after‘    只要是英文单引、双引、三引引起来的内容
    •   布尔值: Ture/False(因为python对字母大小写敏感,所以要注意布尔值的首字母要大写)

    八.python变量与内存

    name1 = 'wupeiqi' 
    print(id(name1)) #结果为11911888
    name2 = name1
    print(id(name1),id(name2)) #结果为11911888 11911888
    name2 = 'alex' print(id(name2)) #结果为11914576

      当name1和name2等于同一个值,显示为指向同一个内存地址,而name2等于另外一个值时,name1和name2指向的内存地址就不同了,从中得出,python是根据值来开辟内存空间的

    九.基本条件语句

     1.语法格式if 条件:

              内容1
              内容2
           else:
              内容3

              内容4

     2.同级别保持同样的缩进

     3.执行规则:按顺序来,先满足先执行,后满足不执行

    n1 = 1
    n2 = 2
    if n1 < n2:
       print('yes')
    else:
       print('no')
    name = input('username:')
    pwd = input('passward:')
    if name == 'alex' and pwd == '123':
        print('yes')
    else:
        print('no')

      4.if...elif...else结构

        if 条件:
          代码块
        elif 条件:
          代码块
        else:
          代码块

    inp = input('>>>')
    if inp == '1':
        print('111')
    elif inp == '2':
        print('222')
    elif inp == '3':
        print('333')
    else:
        print('....')

    十.while 循环

      语法结构:

    while condition:      #条件不成立是跳出循环
            do someting   #又叫循环体

      如果条件一直成立,那么就会一直循环下去,称为死循环

    import time
    n1 = True
    while n1:        #如果条件一直为真,就发生死循环
        print('1')
        time.sleep(1) #如果不确定是不是死循环,可以用time来延迟消耗内存的时间
        n1 = False    #改变循环条件,让循环退出
    print('end')

       好,我们来看个小实例:输出10以内的所有的正整数

        1.第一个可以通过控制循环的条件来输出自己想要的数

    n = 1
    while n < 11:
        print(n)
        n = n + 1
    print('End')

        2.设置标识符来控制条件

    import time
    kaishi = 1
    flag = False             #你知道吗?这就是传说中的标识符
    while flag:
        print(kaishi)
        if kaishi == 10:     #标识符起作用前要先判断下
            flag = False     #当标识符再次出现,循环就要退出了
        kaishi = kaishi + 1  #循环计数器,也叫迭代器
        time.sleep(1)        #这是预防死循环的有效缓冲机制
    print('End')

      3.好的,那么我们接下来介绍一下,一对双胞胎兄弟:break和continue

      •   这两个小兄弟是干嘛的呢?都有中断循环的天生能力
      • 不过,break力气大了点,一力中断了整个循环,而continue只中断本次循环,进入下次循环

        好,那掌声响起,看看break这个兄弟的精彩的表演吧

    kaishi = 1
    while True:
        print(kaishi)
        if kaishi == 10:
            break
        kaishi = kaishi + 1

        看到没,等于10时就跳出真个循环了

        好!接下来是continue兄了,等等,由于你只中断本次循环,进入下次循环,所以你更容易进入死循环,所以我请来time兄来给你助阵,可以开始了

    import time
    while True:
        print('123')
        time.sleep(0.2)
        continue
        print('456')

        你看,continue兄开始自己打转转了,一直输出123,它后面的456都看不到

        不过这这两兄弟搭配干活,简直就是绝配啊,来,我们瞧瞧吧

        现场有人给这两兄弟出了一道难题,就是你把1-10,不过不包7的数字输出

    i = 1
    while True:
        if i == 7:
            i +=1
            continue
        print(i)
        if i == 10:
            break
        i += 1

        漂亮,它们做到了,真是一对黄金搭档啊

                                                               欢迎大家对我的博客内容提出质疑和提问!谢谢

                                                               笔者:拍省先生   

  • 相关阅读:
    NAT和PAT
    谷歌浏览器如何正确离线网页
    安全
    VLAN
    交换
    动态路由
    静态路由
    配置Cisco网络设备
    导数表和基本积分表
    HNOI/AHOI2018题解
  • 原文地址:https://www.cnblogs.com/xinsiwei18/p/5494819.html
Copyright © 2011-2022 走看看