美文网首页
Python基础知识

Python基础知识

作者: 奋斗的bidHead | 来源:发表于2019-02-25 13:18 被阅读0次

    对老廖网站Python的个人总结
    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
    @[toc]

    1.Python的缺点

    1.运行速度慢,Python是解释型语言,代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。
    2.代码不能加密,解释型的语言,必须把源码发布出去。

    2.基本知识

    两个版本

    Python 2.+
    Python 3.+
    input()和print() 输入和输出

    3.数据类型

    整数
    浮点数
    字符串
    • \:转义字符
    • r'':默认不转义
    • '''···''' 多行
    布尔值
    • True、False
    • and、or和not运算
    空值
    • None
    变量
    常量
    • 大写表示,Python没有机制保护,还是可以改变

    两种除法

    • /:计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数
    • 地板除//:整数的地板除//永远是整数

    4.字符串和编码

    Python 3中字符串是Unicode编码,由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。

    ord():获取字符的整数表示

    ord('A')
    65
    

    chr():把编码转换为对应的字符

    chr(66)
    'B'
    

    bytes类型的数据用带b前缀的单引号或双引号表示:

    b'ABC'
    

    encode():以Unicode表示的str通过encode()方法可以编码为指定的bytes

    'ABC'.encode('ascii')=b'ABC'
    '中文'.encode('utf-8')=b'\xe4\xb8\xad\xe6\x96\x87'
    

    decode():要把bytes变为str,就需要用decode()方法

    b'ABC'.decode('ascii')='ABC'
    b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')='中文'
    

    如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节

    b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
    

    len():要计算str包含多少个字符,可以用len()函数:

    len('ABC')=3
    len('中文')=2
    

    len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数:

    len(b'ABC')=3
    len(b'\xe4\xb8\xad\xe6\x96\x87')=6
    len('中文'.encode('utf-8'))=6
    

    如果没有特殊要求编码使用UTF-8。

    5.字符串格式化

    在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:

    'Hello, %s' % 'world'
    'Hello, world'
    'Hi, %s, you have $%d.' % ('Michael', 1000000)
    'Hi, Michael, you have $1000000.'
    
    //指定是否补0和整数与小数的位数
    print('%2d-%02d' % (3, 113))
    print('%.2f' % 3.1415926)
     3-01
    3.14
    

    还可以用format()实现格式化{0},{1},...

    'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
    'Hello, 小明, 成绩提升了 17.1%'
    

    6.list和tuple

    list

    list是一种有序的集合,可以随时添加和删除其中的元素

    #### 创建list
    classmates = ['Michael', 'Bob', 'Tracy']
    
    //最后一个元素的索引
    len(classmates) - 1
    
    //倒数第一个,即最后一个 'Tracy'
    classmates[-1]
    
    //末尾追加:['Michael', 'Bob', 'Tracy', 'Adam']
    classmates.append('Adam')
    
    //指定位置插入:['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
    classmates.insert(1, 'Jack')
    
    //删除list末尾的元素:['Michael', 'Jack', 'Bob', 'Tracy']
    classmates.pop()
    
    //删除指定位置的元素:['Michael', 'Bob', 'Tracy']
    classmates.pop(1)
    
    //把某个元素替换成别的元素:['Michael', 'Sarah', 'Tracy']
     classmates[1] = 'Sarah'
     
    //list里面的元素的数据类型也可以不同,比如:
    L = ['Apple', 123, True]
    
    //list元素也可以是另一个list,比如:
    //要拿到'php'可以写p[1]或者s[2][1],因此s可以看成是一个二维数组
    p = ['asp', 'php']
    s = ['python', 'java', p, 'scheme']
    
    //空的list,它的长度为0:
    L = []
    
    

    tuple

    和list非常类似,但是tuple一旦初始化就不能修改

    //这个tuple不能变,没有append(),insert()这样的方法
    classmates = ('Michael', 'Bob', 'Tracy')
    classmates[0]
    classmates[-1]
    
    //空的tuple
    >>> t = ()
    
    //1个元素的tuple,只有1个元素的tuple定义时必须加一个逗号,来消除歧义
    t = (1,)
    

    7.条件判断

    根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。
    如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else

    age = 20
    if age >= 6:
        print('teenager')
    elif age >= 18:
        print('adult')
    else:
        print('kid')
    

    8.循环

    • Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来。
    • 第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。
    n = 0
    while n < 10:
        n = n + 1
        if n>6:
            break
        if n % 2 == 0: # 如果n是偶数,执行continue语句
            continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
        print(n)
    print('END')
    

    9.dict和set

    dict

    全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度

    //新建dictionary
    d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
    
    //通过key放入
    d['Adam'] = 67
    
    //key不存在,dict就会报错
    d['Thomas']
    //可以判断是否存在key:Thomas
    'Thomas' in d
    //也可以通过get,如果key不存在,可以返回None,或者自己指定的value
    d.get('Thomas')
    d.get('Thomas', -1)
    
    //删除
    d.pop('Bob')
    
    

    set

    和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    要创建一个set,需要提供一个list作为输入集合:

    //传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,
    //显示的顺序也不表示set是有序的
    s = set([1, 2, 3])
    s{1, 2, 3}
    
    //重复元素在set中自动被过滤:
    s = set([1, 1, 2, 2, 3, 3])
    s{1, 2, 3}
    
    //通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
    s.add(4)
    s{1, 2, 3, 4}
    s.add(4)
    s{1, 2, 3, 4}
    
    //通过remove(key)方法可以删除元素:
    s.remove(4)
    s{1, 2, 3}
    
    //set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
    s1 = set([1, 2, 3])
    s2 = set([2, 3, 4])
    s1 & s2
    {2, 3}
    s1 | s2
    {1, 2, 3, 4}
    

    set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。

    相关文章

      网友评论

          本文标题:Python基础知识

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