美文网首页
浅学Python

浅学Python

作者: cooljoel | 来源:发表于2020-06-29 21:36 被阅读0次

    Python3简介

    Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

    Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

    Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

    Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

    Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。


    Python基础语法

    多行注释可以用多个 # 号,还有 ''' 和 """

    例:

    # 第一个注释

    # 第二个注释

     '''

    第三注释

    第四注释''' 

    """

    第五注释

    第六注释

    """

    行与缩进

    python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

    缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

    String用法

    字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

    头下标从-1

    例:

    str='Runoob'

    print(str)                # 输出字符串

    print(str[0:-1])          # 输出第一个到倒数第二个的所有字符

    print(str[0])              # 输出字符串第一个字符

    print(str[2:5])            # 输出从第三个开始到第五个的字符

    print(str[2:])            # 输出从第三个开始后的所有字符

    print(str * 2)            # 输出字符串两次

    print(str + '你好')        # 连接字符串

    print('------------------------------')

    print('hello\nrunoob')      # 使用反斜杠(\)+n转义特殊字符

    print(r'hello\nrunoob')    # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

    数据类型

    Python3 中有六个标准的数据类型:

    Number(数字)

    String(字符串)

    List(列表)

    Tuple(元组)

    Set(集合)

    Dictionary(字典)

    不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

    可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。


    List翻转字符串实例用法

    def reverseWords(input): 

        # 通过空格将字符串分隔符,把各个单词分隔为列表

        inputWords = input.split(" ")

        # 假设列表 list = [1,2,3,4], 

        # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)

        # inputWords[-1::-1] 有三个参数

        # 第一个参数 -1 表示最后一个元素

        # 第二个参数为空,表示移动到列表末尾

        # 第三个参数为步长,-1 表示逆向

        inputWords=inputWords[-1::-1]

        # 重新组合字符串

        output = ' '.join(inputWords)

        return output

    if __name__ == "__main__":

        input = 'I like runoob'

        rw = reverseWords(input)

        print(rw)

    Tuple(元组)

    元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。元组中的元素类型也可以不相同。

    string、list 和 tuple 都属于 sequence(序列)。


    Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else

    例:

    if condition_1:

        statement_block_1

    elif condition_2:

        statement_block_2

    else:

        statement_block_3

    for语句

    for <variable> in <sequence>:

        <statements>

    else:

        <statements>

    break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

    continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

    迭代器

    迭代是访问集合元素的一种方式。

    迭代器是一个可以记住遍历的位置的对象。

    迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

    迭代器有两个基本的方法:iter() 和 next()

    字符串,列表或元组对象都可用于创建迭代器:

    创建一个迭代器

    把一个类作为一个迭代器使用需要在类中实现两个方法 __iter__() 与 __next__() 。

    __iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成。

    _next__() 方法会返回下一个迭代器对象

    StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 __next__() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。

    生成器

    在 Python 中,使用了 yield 的函数被称为生成器(generator)。

    跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

    在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

    调用一个生成器函数,返回的是一个迭代器对象。

    集合

    是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。

    可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;后者创建一个空的字典。

    字典

    序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。

    理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。

    一对大括号创建一个空的字典:{}。

    输出格式化

    Python两种输出值的方式: 表达式语句和 print() 函数。

    第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。

    如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。

    如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。

    str(): 函数返回一个用户易读的表达形式。

    repr(): 产生一个解释器易读的表达形式

    rjust() 方法, 它可以将字符串靠右, 并在左边填充空格。


    读写文件

    open() 将会返回一个 file 对象 open(filename, mode)

    filename:包含了你要访问的文件名称的字符串值。

    mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

    常用方法:

    f.read()

    f.readline()

    f.readlines()

    f.write()

    f.close()

     f.read()

    pickle 模块

    python的pickle模块实现了基本的数据序列和反序列化。

    pickle.dump(obj, file, [,protocol])

    x = pickle.load(file)

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

    file: 必需,文件路径(相对或者绝对路径)。

    mode: 可选,文件打开模式

    buffering: 设置缓冲

    encoding: 一般使用utf8

    errors: 报错级别

    newline: 区分换行符

    closefd: 传入的file参数类型

    异常

    例:

    while True:

         try:

            x = int(input("请输入一个数字: "))

             break

         except ValueError:

             print("您输入的不是数字,请再次尝试输入!") 

    else:

         try:

             with open('file.log') as file:

            read_data = file.read()

         except FileNotFoundError as fnf_error:

             print(fnf_error)

    finally:

         print('这句话,无论异常是否发生都会执行。')

    还可以使用 raise 语句抛出一个指定的异常。

    相关文章

      网友评论

          本文标题:浅学Python

          本文链接:https://www.haomeiwen.com/subject/vogwfktx.html