• Python3入门


    ——Life is short, you need Python, 人生苦短,我用 Python

    0x00预处理

    0x01路径:#!/usr/bin/python3
    0x02编码:# -*- coding: utf-8 -*-
    0x03模块:
    1. 模块导入:import
    2. 调用模块:support.print_func("Runoob")
    3. 引入时不运行:每个模块都有一个name属性,当其值是__main__时,表明该模块自身在运行,否则是被引入。
    4. 包:管理 Python 模块命名空间的形式,包结构:__init__.py
    0x04注释{ 单行#, 多行“`注释内容“`}
    0x05缩进:全文要一致,代替花括号。
    0x06语句{ 一行多句用”;“分隔; 多行一句用反斜杠”“ }
    0x07代码组{以’:”结束}
    0x08标识符+保留字?

    0x10数据类型

    0x10综述
    1. 变量不需要声明。
    2. 变量没有类型,所以一个变量可以通过赋值指向不同类型的对象。
    3. 允许同时为多个变量赋值。a, b, c = 1, 2, “runoob”
    0x11Number
    1. Python3 支持 bool、int、float。
    2. 数值的除法(/)总是返回一个浮点数,要获取整数使用//操作。在混合计算时,Python会把整型转换成为浮点数。
    3. 2**5 #乘方 32
    0x12String
    1. 字符串用单引号(‘)或双引号(“)括起来。
    2. 使用反斜杠()转义特殊字符,如果你不想让转义发生,可以在字符串前面添加一个 r,表示原始字符串
    3. 字符串可以被索引,切片,拼接。(索引值以 0 为开始值,-1 为从末尾的开始位置。)

    #!/usr/bin/python3
    str = 'Runoob'
    print (str)          # 输出字符串
    print (str[0])       # 输出字符串第一个字符
    print (str[2:4])     # 输出从第三个开始到第四个的字符
    print (str[2:])      # 输出从第三个开始的后的所有字符
    print (str[:4])      # 输出第一个到第四个的所有字符
    print (str[2:-1])    # 输出从第三个开始到倒数第二个的字符
    print (str * 2)      # 输出字符串两次
    print (str + "TEST") # 连接字符串

    0x13Tuples
    1. 元组写在小括号()里,元素之间用逗号隔开。tinytuple = (123, ‘runoob’)
    2. 注意构造包含0或1个元素的元组的特殊语法规则。tup1 = (); tup2 = (20,) # 空元组和一个元素,需要在元素后添加逗号
    3. 元组可以被索引,切片,拼接,详见字符串代码,不再赘述。
    0x14List
    1. 元素可以为不同类型:list = [ ‘abcd’, 786 , 2.23, ‘runoob’, 70.2 ]
    2. String, Tuples,List都是序列。List和Tuples的区别是List可以更改元素Tuples不能。
    3. 列表可以被索引,切片,拼接,详见字符串代码,不再赘述。(序列都可以)
    4. 添加方法可以作为栈{将x添加到末尾append(x);指定删除索引默认最后一个pop();}队列{删左边的popleft()}链表等数据结构。
    0x15set
    1. 基本功能是进行成员关系测试和删除重复元素(默认完成)。print(a - b); ‘Rose’ in student; #a和b的差集; 成员测试
    2. 可以使用大括号 { } 或者 set() 函数创建集合。(创建一个空集合必须用 set()):student = {‘Tom’, ‘Jim’, ‘Mary’, ‘Tom’, ‘Jack’, ‘Rose’}
    0x16dict
    1. 无序的对象集合(区别于列表的有序对象),字典当中的元素是通过键来存取的,而不是通过偏移存取。(创建一个空字典用{}):tinydict = {‘name’: ‘runoob’,’code’:1, ‘site’: ‘www.runoob.com’}
    2. 键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
    补充:
    1. strings, tuples, 和numbers 是不可更改的对象,而 list, dict, set则是可以修改的对象。
    2. 类型转换用:int(); float(); str(); dict();list();set();chr(); 函数。、
    3. del语句可以删除对象或者列表的切割。

    0x20逻辑控制

    0x21 条件控制:

    if condition_1:
        statement_block_1
    elif condition_2:
        statement_block_2
    else:
        statement_block_3

    0x22 循环语句:

    while 判断条件:
        语句

    或者(遍历序列用for):

    for <variable> in <sequence>:
        <statements>
    else:
        <statements>

    0x23 迭代器和生成器:
    1. 迭代器遍历集合。迭代器只能往前不会后退。
    2. 迭代器两个基本方法it=iter(list); print(next(it)) #创建迭代器对象、输出下一个对象
    3. 生成器是一个返回迭代器的函数。生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值,作为迭代器集合的下一个元素。

    #!/usr/bin/python3
    import sys
    def fibonacci(n): # 生成器函数 - 斐波那契
        a, b, counter = 0, 1, 0
        while True:
            if (counter > n): 
                return
            yield a
            a, b = b, a + b
            counter += 1
    f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
    while True:
        try:
            print (next(f), end=" ")
        except StopIteration:
            sys.exit()

    0x24 函数:
    1. 函数定义:def printme( str ): #没有结束标志;return就返回;
    2. 函数调用:printme(“我要调用用户自定义函数!”);
    3. 参数传递:不可变类型传值(拷贝),可变类型传引用(指针)。
    4. 参数类型:def printinfo(name,age=35,*vartuple): #必要参数, 默认参数, 和不定长参数。
    5. 匿名函数:sum = lambda arg1, arg2: arg1 + arg2; #可写函数说明,调用方式与正常函数一样。

    0x30内置函数

    0x31 print(): print(‘{name}网址: {site}’.format(name=’菜鸟教程’, site=’www.runoob.com’))
    0x32 range():range(x,y),生成一个[x,y)的迭代器
    0x33 repr():产生一个解释器易读的表达形式repr(x).rjust(2)
    0x34 input():从标准输入读入一行文本
    0x40面向对象
    0x41类的属性:name = ”; __weight = 0 #基本属性和私有属性
    0x42构造函数:def init(self,n,a,w):
    0x43类的方法:不再赘述。。。实例化:t = Test(); t.prt()
    0x44继承和多态
    0x45运算符重载:def add(self,other):return Vector(self.a + other.a, self.b + other.b)
    0x50玩得开心
    0x51正则表达式:检查一个字符串是否与某种模式匹配
    0x52常用库介绍:

    参考资料:
    RUNOOB:http://www.runoob.com/python3/python3-tutorial.html
    cyaron:https://github.com/luogu-dev/cyaron/wiki/Python-30%E5%88%86%E9%92%9F%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97
    一张图看懂:http://blog.csdn.net/guomutian911/article/details/53571552

    说明:2018.2.3的时候弄的,第一遍写的时候没有用markdown,所以排版可能有点,,凉。

  • 相关阅读:
    mysql 索引
    springboot + maven jar打包和linux部署
    个人项目———Java实现WordCount
    第四周助教观察记录
    第三周助教工作观察记录
    2019年春-软件工程原理与方法-助教总结
    第十五周助教小结
    第十一周助教小结
    团队作业-设计 成绩汇总
    团队作业选题及需求分析成绩汇总
  • 原文地址:https://www.cnblogs.com/gwj1314/p/9444893.html
Copyright © 2020-2023  润新知