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.转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\
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'
所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

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

总结:

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

转载于:https://www.cnblogs.com/Worssmagee1002/p/6971287.html

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

  1. python高级-------python2.7教程学习【廖雪峰版】(四)

    2017年6月9日17:57:55 任务: 看完高级部分 笔记: 1.掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 2.在Python中,代码不是越多越好,而是越少越 ...

  2. python语言特性-------python2.7教程学习【廖雪峰版】(一)

    开始学习廖雪峰的py2.7教程: 2017年6月5日12:54:28 笔记: 廖雪峰python2.7教程 1.用任何编程语言来开发程序,都是为了让计算机干活.  2.Python是一种相当高级的语言 ...

  3. python基础环境配置教程

    python基础环境配置教程 下载vscode 1.输入网址:https://code.visualstudio.com/ 2.下载windows版vscode并安装. 下载慢的话在自己的浏览器中找到 ...

  4. 超完整 Python基础入门知识教程

    本书旨在帮助Python开发人员发现该语言和相关库的突出特性,并编写简单.流畅.易于阅读和易于维护的代码.特别是生成器.属性描述符(ORM的键)和Python表达式的对象在数据库处理过程中的具体应用: ...

  5. 廖雪峰 php教程,获取廖雪峰老师的Python3教程的php脚本

    P.S. 2019年11月15日更新. 昨天一个朋友问我能否帮忙下载廖雪峰老师的python3教程,于是便写了这个php脚本. 在这里非常感谢廖雪峰老师的辛苦努力.<?php /** * 获取P ...

  6. 如何找到python廖雪峰基础_为什么看不懂廖雪峰的Python学习教程?

    先不要怀疑自己的智商,也许是你完全没有编程基础,这个时候,可以选个视频课程看看,B站还有各路公开课上有很多,自己找找. 或者觉得这样有点麻烦,那就花点钱,买个基础入门课程学学,试试下面的链接. 我觉得 ...

  7. 廖雪峰python教程-福利 | 廖雪峰官方Python教程,拿走不谢!

    原标题:福利 | 廖雪峰官方Python教程,拿走不谢! Python简直就是万能的,你用Python都做过哪些事? 用网页看各大网站的VIP视频,用python下载? 用Python玩跳一跳,跳到5 ...

  8. 会python再学java要多久_【学过python多久能学会java】廖雪峰python教程要学多久

    自学完廖雪峰python可以找到相关工作吗? 如果只是学完廖雪峰的教程我觉得是不够的,你必须对一些方面有更加深入的实践和学习.我是工作中需要用到python,看了廖雪峰的教程,实现快速开发. 学过py ...

  9. python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...

    廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...

最新文章

  1. android百度地图轨迹实现,android 获取GPS经纬度在百度地图上绘制轨迹
  2. 【网络流24题】B、太空飞行计划问题(最大权闭合图转最小割、最小割方案输出)
  3. 智能的源泉,大脑从何而来?
  4. UI常见测试用例-51testing
  5. oracle怎么设置能使用别的账户存储过程的全向_教你怎么重装100%纯净的Win10系统,告别蓝屏,卡顿。...
  6. G - 水陆距离 HihoCoder - 1478(广搜+队列先进先出性质)
  7. 设计模式之禅读书笔记
  8. mysql innodb事务中 出现_MySql InnoDB事务死锁问题
  9. linux中的变量前加__user,linux中的环境变量,别名,变量传递和函数块
  10. QGraphicsView,QGraphicsScene,QGraphicsItem
  11. 新型 Linux 病毒,脚本超 1000 行,功能复杂
  12. kafka事务操作案例演示
  13. 05-不借用第三个变量实现两个变量值互换(运算符)
  14. 计算机考研复试问题回答,关于考研复试问题的官方解答及部分问题答题模板!...
  15. 使用docker-compose 大杀器来部署服务 上(转)
  16. 复联4里的钢铁侠原型是谁?(剧透警告慎入)
  17. python爬豆瓣top250书籍_python爬虫练习-爬取豆瓣图书top250
  18. android 微信分享 源码,记录Android微信分享功能的吐槽与思考
  19. win7加速优化技巧
  20. C++使用ffmpeg解码v模块,支持cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码

热门文章

  1. apk的签名文件(两次Hash+加密)
  2. C++实现简单选择排序
  3. Android中实现日期时间选择器(DatePicker和TimePicker)
  4. @Value@PropertySource@ConfigurationProperties注解使用
  5. Spring框架—IoC容器
  6. 使用 udev 进行动态内核设备管理(转自suse文档)
  7. @RequestParam 绑定List参数
  8. listener:监听器(加载框架配置文件/执行任务调度/session的优化)
  9. 正则表达式: 正向预查和负向预查
  10. 内联元素与块级元素及内外边距的影响