• python基础-------python2.7教程学习【廖雪峰版】(二)


     2017年6月7日14:59:27
    任务:
        看完python基础
    1.计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。
    2.因为感情的事,自己心情真是巨差,差到爆炸,提不起精神来学习,靠。
    3.整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
    4.字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
    5.转义字符可以转义很多字符,比如 表示换行, 表示制表符,字符本身也要转义,所以\表示的字符就是
    6.布尔值
    布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:
    7.布尔值经常用在条件判断中。
    8.空值
    空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
    此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,
    9.变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头
    10.Py是动态语言,变量的类型可以随时变化,但是java是静态语言,变量必须指定为固定的类型。
    1.常量
    所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
    2.整数运算结果永远是精确的
    3.Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。
    4.字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题
    5.要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。
    6.ASCII编码是1个字节,而Unicode编码通常是2个字节。
    7.在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
    8.Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换:
    9.Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示
    10.把u'xxx'转换为UTF-8编码的'xxx'用encode('utf-8')方法:
    1.反过来,把UTF-8编码表示的字符串'xxx'转换为Unicode字符串u'xxx'用decode('utf-8')方法:
    2.在Python中,采用的格式化方式和C语言是一致的,用%实现
    3.%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

    常见的占位符有:
    %d    整数
    %f    浮点数
    %s    字符串
    %x    十六进制整数

    其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
    4.牢记中文要加u:
    name = raw_input(u"请输入你的姓名:")
    总结:看了基础教程对知识又有了一个新的巩固,加油。
    5.list
    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
    list是一个可变的有序表,所以,可以往list中追加元素到末尾:
    ist里面的元素的数据类型也可以不同
    list元素也可以是另一个list,
    总结:list中的数据类型不一定要相同,list中还可以包含list,list是有序的,可以增加,也可以删除元素。
    如果一个list中一个元素也没有,就是一个空的list,它的长度为0
    append() 是在列表或者元组的末尾增加元素 比如append('a') :是指在列表或者元组的最后位置增加'a'这个元素 insert()
    是在列表或者元组的索引范围内的任何地方插入元素 比如insert(1,'a'):是指在列表或者元组的第二个索引位置增加'a'这个元素
    6.tuple

    另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
    不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
    tuple元组中可以套list,其中的list是可变的。
    tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
    list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
    条件判断和循环
    1.if <条件判断1>:
        <执行1>
    elif <条件判断2>:
        <执行2>
    elif <条件判断3>:
        <执行3>
    else:
        <执行4>
    2.循环

    Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:

    names = ['Michael', 'Bob', 'Tracy']
    for name in names:
        print name

    3.所以for x in ...循环就是把每个元素代入变量x
    4.如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列,比如range(5)生成的序列是从0开始小于5的整数
    5.第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
    6.raw_input()读取的内容永远以字符串的形式返回,把字符串和整数比较就不会得到期待的结果,必须先用int()把字符串转换为我们想要的整型:
    7.循环是让计算机做重复任务的有效的方法,有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。
    8.dict

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
    list越长,耗时越长
    为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。

    第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字,无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

    dict就是第二种实现方式,给定一个名字,比如'Michael',dict在内部就可以直接计算出Michael对应的存放成绩的“页码”,也就是95这个数字存放的内存地址,直接取出来,所以速度非常快。

    你可以猜到,这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。
    要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
    和list比较,dict有以下几个特点:

        查找和插入的速度极快,不会随着key的增加而增加;
        需要占用大量的内存,内存浪费多。
    而list相反:
        查找和插入的时间随着元素的增加而增加;
        占用空间小,浪费内存很少。
    所以,dict是用空间来换取时间的一种方法。
    dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
    这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
    要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:
    9.set
    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    要创建一个set,需要提供一个list作为输入集合:
    通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
    通过remove(key)方法可以删除元素:
    set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。
    对象a的内容是'abc',但其实是指,a本身是一个变量,它指向的对象的内容才是'abc'
    所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

    -------------------------------------分割线-----------------------------------

    总结:

      比慕课网上的内容更细,内容上更多,喜欢老师这种风格,加油。下一步该看函数了,

  • 相关阅读:
    数据库多表查询
    链表的经典习题
    数据库基本概念及简单的单表操作
    Categrory
    2021春招冲刺练习目录
    2012春招冲刺-01.01 关于Cookie、什么是闭包、BFC与盒模型
    2021春招冲刺
    JS中bind,call,apply以及new的用法与实现
    2021春招冲刺-12.30 POST与GET | JS异步任务 | 判断变量类型
    2021春招冲刺-12.29-算法、原型与原型链、文档流
  • 原文地址:https://www.cnblogs.com/Worssmagee1002/p/6971287.html
Copyright © 2020-2023  润新知