zoukankan      html  css  js  c++  java
  • python3-->基础操作

    说明:教程参考:http://www.liaoxuefeng.com/

    启动和运行

    python3的运行方式有3种:

    1、命令行进入python操作环境,然后以手工输入命令的方式执行,执行的结果会自动显示。

    2、使用 命令"python fileName.py" ,主动调用.py文件,执行过程不会完全显示(比如执行“1 + 2”)。

    3、在unix环境中,在.py文件头注释python命令路径,然后添加可执行权限,便可直接运行。

    #!/usr/bin/python3
    #和shell脚本开头注释一样

    输入和输出

    输出:

    print("string")

    1、与c/c++一致,依然可以使用格式化输出,但需要使用%给元素标记。

    absNewName = abs                                                                                                                                                       
    print("new name value : %d" %(absNewName(-1)))     
    
    #输出:new name value : 1

    2、print可以使用单引号或双引号包括字符串(为了与c/c+一致,使用双引号),通用的转义字符依然可用(比如 ' ')。

    3、可以使用多个双引号同时打印多段字符,通过逗号分隔,逗号最终被解释为空格。

    4、print中未被引号包括的数,会自动进行数值运算。未被引号包括的字符,会解释为变量。

    输入:

    input("string")

    name = input("please enter your name")
    print(name)

    编码:

    为了让python解释器按照utf-8编码读取字符串,需要在文件头加上:

    # -*- coding: utf-8 -*-

    当字符串数据在网络传输,或者存储在磁盘时,为了使传输的字节数尽量的少,需要将utf-8以字节的方式存储。

    #使用b前缀,使字符串以字节为单位
    x = b"ABC"
    
    #使用后缀 .decode('utf-8'),将从网络或磁盘上读取的字节流转换为
    #utf-8格式
    b"xe4xb8xadxe6x96x87".decode('utf-8')
    
    #使用len()函数计算字符串有多少字符
    
    >>> len("中文")
    2

    语法

    注释

    与shell脚本一样,使用"#"注释

    代码块

    当语句以冒号结尾时,缩进的语句视为代码块。

    # print absolute value of an integer:
    a = 100
    if a >= 0:
        print(a)
    else:
        print(-a)

    数据类型

    整数   :任意大小的正负整数,以“0x”开头则表示16进制

    浮点数  :表示方式与c/c++一样,比如"0.123","1.1e-10"

    字符串  :以单引号或双引号包括的字符,支持中文输入。

    #支持r ''string'' 格式,代表string中的内容不转义
    print(r"abc 
     def")
    #输出 abc 
     def 
    
    #可以用 ord函数反算对应的 unicode码
    print("中对应的 Unicode:",ord(''))

    布尔值  :使用 "True"和"False"

    #可以使用  and / or / not运行
    print(True and False)

    空值   :None

    list

    list类型是c/c++中数组与链表的一个结合体,具有如下特性。

    #1、定义list,list中也可以嵌套list
    listName = ["a","b","c"]
    
    list2 = ["d",listName,"e"]
    #list中的数据类型也可以不同
    list3 = [123,list2]
    
    #2、得到list的值
    #用下标访问元素,下标为 “-1”时,代表最后一个元素,
    #为-2时代表倒数第二个元素,以此推类
    
    print(list3[-1])
    
    输出:['d', ['a', 'b', 'c'], 'e']
    
    #3、使用len()函数得到元素的个数
    #4、使用append()方法添加元素到末尾
    list3.append("f")
    
    #5、使用insert()方法插入元素到指定位置
    list3.insert(1,"g")
    
    #6、使用pop()方法,删除指定位置元素
    list3.pop(1)

    tuple

    tuple是list的固定形式,使用括号"()"定义,也就是说tuple初始化好以后就不能变了。

    注意:

    1、可以在tuple中引用list元素,这样list元素是可变的。tuple元素就类似于c/c++的 const指针,既指针指向的内容可变,但指针不变。

    2、当定义只有一个元素的tuple时,需要添加一个逗号,不然会被解析为一个变量。

    #tuple
    t = (1,)
    
    #变量
    t= (1)

    变量

    python的变量为动态的,不需要指定变量类型。

    #a是整数
    a = 123
    
    #a是字符串
    a = "ABC"

    运算符

    需要特别说明除法,与c/c++不一样:

    a / b  代表得出浮点值

    a // b 代表只得整数

    a % b 代表只得余数

    条件判断

    #注意冒号
    if <条件判断1>:
        <执行1>
    elif <条件判断2>:
        <执行2>
    elif <条件判断3>:
        <执行3>
    else:
        <执行4>

    循环

    #将元素依次赋值给变量,并在循环体中运行
    
    for <变量> in <元素>:
        <循环体>
    
    #当条件为真时,循环体执行
    while <条件> :
        <循环体>
    
    #使用break可以退出循环
    #使用continue可以跳过这次循环,开始下一次循环

    dict

    dictionary 的简称,通过{"名称",数值}的方式存放数据,可以快速的通过名称,查找到数值。

    #使用大括号定义,"名称":数值方式赋值
    
    d = {"a":1,"b":2}
    
    #取值使用方括号
    print(d["a"])
    
    #通过in判断"名称"是否有对应的数值,有则返回True,否则为False
    
    print("a" in d)
    
    #通过get()方法也可以判断"名称"是否有数值
    d.get("a")  #若有则返回True,否则无返回
    d.get("a",-1) #若没有则返回-1
    
    #使用pop()方法删除一组元素,对应的数值也删除
    d.pop("a")

    注意:dict中的元素,都必须是常量!

    set

    set可以看成数学意义上的无序和无重复元素的集合,若有重复元素,会自动被过滤。

    #使用set(list)方式初始化
    s = set([1,2,3,3,4])
    
    #结果为 {1,2,3,4}
    
    #使用add()方法添加元素
    s.add(5)
    
    #使用remove()方法删除元素
    s.remove(4)

    注意:set中的元素,都必须是常量!

     函数

    python内建函数及其使用说明

    #通过将函数名赋值给变量的方法,等同于给函数取别名
    
    a = abs
    a(-1)

    自定义函数,使用如下格式

    def <函数名> (<形参>) :
        <函数体>
        return <返回值>
    
    #若<函数体>为pass时,就是一个空函数
    #返回值可以有多个,使用逗号隔开,实际上返回的是tuple类型
    #形参中可以为其指定默认值,这样在调用函数时可以不用输入默认参数
    #注意,默认参数需要指向常量
    def power (x, n = 2):                                                                                                                                                                                     
         s = 1                                                                                                                                                                                                 
         while n > 0:                                                                                                                                                    
               n = n -1                                                                                                                                                                                          
               s = s * x                                                                                                                                                                                         
                                       
        return s 
                                                                                                                                                                                                
       print(power(5))  

    可变参数的定义如下

    #当在形参前面加入星号"*",表示一个可变参数,其内部自动组装为tuple
    
    def calc(*numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
        return sum
    
    #当输入的参数是list或者tuple时,也可以在前面加"*",代表依次传入参数
    
    nums = [1, 2, 3]
    calc(*nums)

    关键字参数的定义如下:

    #当在形参前面加入两个星号"**",便是关键字参数,其内部是dict
    #在内部可以只传入必选参数
    def person(name, age, **kw):
        print('name:', name, 'age:', age, 'other:', kw)
    
    #当外部是dict时,也可以在前面加"**",代表依次传入参数
     extra = {'city': 'Beijing', 'job': 'Engineer'}
     person('Jack', 24, **extra)
    
    #可以用命令关键字参数来限制关键字参数的名字,需要分隔符 *
    def person(name, age, *, city, job):
        print(name, age, city, job)
    
     person('Jack', 24, city='Beijing', job='Engineer')
    
    #当函数定义中有了可变参数,则不需要分隔符 *
    person(name, age, *args, city, job):
         print(name, age, args, city, job)

    注意:

    1、参数的定义顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

    2、对于任意参数,都可以通过func(*args, **kw)的形式调用

    3、函数依然可以使用递归调用

     高级特性

    切片

    切片操作可以从list或tuple中输出指定的一段数据,比如:

    L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
    
    #打印从索引0开始,到3为止,但不包括索引3的元素
    print(L[0:3])
    #如果第一个索引是0,可以省略
    print(L[:3])
    #也可以支持倒数,此时0也可以省略
    print(L[-2:0])
    
    #也可以指定输出间隔,表示输出前10个数,每两个取一个
    print(L[:10:2])
    
    #所有元素,每2个取一个
    print(L[::2])

    列表生成式

    用于快速简单生成list

    #生成列表 1*12*2、.......11*11,
    #注意表达式 x*x需要放在for前面,整个表达式需要方括号包围
    d = [x * x for x in range(1,11)]
    
    #可以在for循环后面加入条件判断
    #注意中间并没有冒号
     d = [x * x for x in range(1,11) if x % 2 == 0]     
    
    #可以使用两层循环
    [m + n for m in 'ABC' for n in 'XYZ']
    #输出:['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

    生成器

    列表生成式用于一次性产生一个完整的List,而生成器用于每次调用只往后产生一个结果。

    #生成生成器 1*12*2、.......11*11,
    #注意表达式 x*x需要放在for前面,整个表达式需要圆括号包围
    d = (x * x for x in range(1,11))
    
    #可以多次使用print(next(d)),不断输出结果
    #也可以使用for循环迭代输出
    for n in d:
        print(n)
    
    #也可以定义函数类的生成器,此时odd()函数返回的类型就是生成器,
    每调用一次,函数在yield处返回,下次调用则在上次yield后继续执行
    def odd():
          print("step 1")
          yield 1
          print("step 2")
          yield 3
          print("step 3")
          yield 5
    
    #比如:
     n = odd()
     print(next(n))
     print(next(n))
     print(next(n))
    #输出:
    step 1
    1
    step 2
    3
    step 3
    5
  • 相关阅读:
    mysql日志
    MYSQL-事务中的锁与隔离级别
    MYSQL事务的日志
    Innodb核心特性-事务
    Innodb存储引擎-表空间介绍
    innodb存储引擎简介
    MYSQL之存储引擎
    MYSQL之索引配置方法分类
    MYSQL之索引算法分类
    MYSQL之select的高级用法
  • 原文地址:https://www.cnblogs.com/KcMeterCEC/p/5919432.html
Copyright © 2011-2022 走看看