01_python基础

注:该博客仅为个人学习笔记,授课老师@林应 保留所有权利,侵删。

目录

  •  1,为什么要用python
  •  2,环境搭建
  •  3,如何学好python
  •  4,python常用关键字
  •  5,python运算符
  •  6,python基础语法
  •  7,2.x 和3.x的区别

 

  • 1,为什么要用python?
'''
C语言开发效率太低,而shell只是一种胶水语言。作者的目的:创造一种C和shell之间,功能全面,易学易用,可拓展的语言
优点
    简单,容易学习。
    免费开源
    高级语言,细节隐藏。
    解释性,可移植。一次编写,到处运行。
    面向对象
    可扩展。可嵌入C/C++,或者使用C/C++提高性能。numpy库本质就是c,来实现高效率,一般python里的数值运算建议用numpy。
扩展库 语法简单 应用场景丰富 接口测试 UI自动化 数据分析处理 技术成熟,大量参考/例子代码,stackoverflow社区 缺点 慢! shell脚本不友好 一个爬虫小例子,用来爬取某个网站的省份信息。
''' import requests#请求 from xml.parsers.expat import ParserCreate#解析器 '''处理xml文件,边读边解析的方式''' class DefaultSaxHandler(object): def __init__(self, provinces): self.provinces = provinces def start_element(self, name, attrs):#如何去解析元素 if name != 'map': name = attrs['title'] number = attrs['href'] self.provinces.append((name, number)) def end_element(self, name): pass def char_data(self, text): pass #拿到省份信息 def get_provinces(url): content = requests.get(url).content.decode('gb2312')#内容取出来 start = content.find('<map name=\"map_86\" id=\"map_86\">')#找感兴趣的内容位置索引,这里对引号做了转义 end = content.find('</map>') content = content[start:end + len('</map>')].strip()#把需要的内容切出来,并去除空格 print(content) provinces = []#从结果中获取省份信息和邮政编码 handler = DefaultSaxHandler(provinces)#处理xml parser = ParserCreate()#解析器 parser.StartElementHandler = handler.start_element parser.EndElementHandler = handler.end_element#处理起始结束标记 parser.CharacterDataHandler = handler.char_data#处理文本数据 parser.Parse(content)#分析拿到的文本 return provinces provinces = get_provinces('http://www.ip138.com/post') print(provinces)

 

  • 2,环境搭建:anaconda+pycharm,或者ipython notebook

 

  • 3,如何学好python?
  • '''如何学好编程,这可以作为一个通用的范式,在学习一门新的语言时,先从这个框架上掌握,其他遇到问题慢慢搞
    基础部分
        基本语法
            基本数据类型
            对象的定义和声明
            循环和判断:for, foreach, if, while, do...
            逻辑运算
            位运算
        数据结构
            数组
            字符串
            系统标准库自带的类型
            如何实现常用数据结构:链表、堆栈、二叉树...
        输入输出
            标准输出输出:print, echo, input...
            文件读写:文本按行/二进制偏移量和大小
            格式化字符串
        异常处理
            抛出和捕获异常:try/catch, try/except...
            异常和错误的区别以及应用场合
    
    进阶提高
        常用算法
            分治
            贪心
            动态规划
        数据库访问
            建立连接
            执行SQL查询
            读取查询记录
        面向对向
            继承
            多态
            静态变量与方法
        其它
            多线程/进程
            匿名函数
            语言相关特定知识
                Java的反射
                C++的模板
                Python的协程...
    作者提到很重要的一点,可以将这些基础的语法细节做一个整理,用的时候直接贴就行,因为你不可能时时刻刻对语法都记得这么清楚
    然后日常刷算法可以用link code练手,时刻保持状态
    '''

     

  • 4,python常用关键字
'''
    常量
        True
        False
        None,相当于c里面的NULL
    对象和容器
        class
        import
        from
        del
    判断
        if
        elif
        else
        is:判断是什么
        in:判断在不在一个容器里
        assert
    循环
        for
        while
        continue
        break
        pass
    异常
        raise
        try
        except
        finally
        as
'''

 

  • 5,python基础运算符
'''
    算术运算
        +-*/
        %取余
        **幂
        //除法只取整数
    比较运算
        >, >=
        <, <=
        ==
        !=
    逻辑运算,用的单词,位运算用的是符号
        and
        or
        not
    位运算,0b开头是二进制
        >>
        <<左移,乘2的多少次方,右移,除以2的多少次方
        &
        |
        ^亦或
'''

 

  • 6,python基础语法

'''
    缩进,用tab,正规用是4个空格,全局风格要统一
    注释, 单行用#,多行用''' '''
    多行代码换行:\
    中文支持 首行加入# -*- coding: utf-8 -*-
    多行字符串:""" """
    单双引号:无区别,如果两者同时存在,则另一个作为普通字符处理,如'abc"abc"abc'
'''

 

  • 7,2.x 与3.x的区别

'''
    print:3必须加括号
    unicode:3默认unicode编码,即不用担心中文
    除法:3默认整数相除得到浮点数结果
    异常:3只能抛出继承自baseException的异常
    xrange:3没有
    二进制和八进制:3必须写成0开头,0b,0o
    3取消了long,同一为int
    3增加了进制转换 ,print((1024).to_bytes(2, byteorder = 'big'))#高位在前
  
   其他问题,遇到百度即可
'''

 

转载于:https://www.cnblogs.com/jingyiyang/p/9845287.html