零基础入门Python,值得推荐的几本书籍!
于我个人而言,我很喜欢Python,当然我也有很多的理由推荐你去学Python我只说两点.一是简单,二是写Python薪资高.我觉得这俩理由就够了,对不对.买本书,装上pycharm,把书上面的例子习题都敲一遍.再用flask,web.py等框架搭个小网站.. 完美...(小伙伴们有问到该学Python2.7还是3.X,那我的答案是:目前大多数实际开发,都是用2.7的,因为实际项目开发有很多依赖的包,都只支持到2.7,你用3.X干不了活.那你能怎么办.所以不需要纠结.等3.X普及,你写的2.7代码,都可以无痛移植,妥妥的不用担心.)
第一个
个人认为《Python学习手册:第3版》是学习语言基础比较好的书了.
《Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地精通核心Python语言基础。读完《Python学习手册(第3版)》,你会对这门语言有足够的了解,从而可以在你所从事的任何应用领域中使用它。
《Python学习手册(第3版)》是作者根据过去10年用于教学而广为人知的培训课程的材料编写而成的。除了有许多详实说明和每章小结之外,每章还包括一个头脑风暴:这是《Python学习手册(第3版)》独特的一部分,配合以实用的练习题和复习题,让读者练习新学的技巧并测试自己的理解程度。
《Python学习手册(第3版)》包括:
类型和操作——深入讨论Python主要的内置对象类型:数字、列表和字典等。
语句和语法——在Python中输入代码来建立并处理对象,以及Python一般的语法模型。
函数——Python基本的面向过程工具,用于组织代码和重用。
模块——封装语句、函数以及其他工具,从而可以组织成较大的组件。
类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。
异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。
讨论Python 3.0。
《Python学习手册(第3版)》让你对Python语言有深入而完整的了解,从而帮助你理解今后遇到的任何Python应用程序实例。如果你准备探索Google和YouTube为什么选中了Python,《Python学习手册(第3版)》就是你入门的最佳指南。
第二个
《Python基础教程(第2版·修订版)》也是经典的Python入门教程,层次鲜明,结构严谨,内容翔实,特别是最后几章,作者将前面讲述的内容应用到10个引人入胜的项目中,并以模板的形式介绍了项目的开发过程,手把手教授Python开发,让读者从项目中领略Python的真正魅力。这本书既适合初学者夯实基础,又能帮助Python程序员提升技能,即使是Python方面的技术专家,也能从书里找到耳目一新的内容。
第三个
《“笨办法”学Python(第3版)》是一本Python入门书籍,适合对计算机了解不多,没有学过编程,但对编程感兴趣的初学者使用。这本书结构非常简单,其中覆盖了输入/输出、变量和函数三个主题,以及一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲授到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。
【大牛评价】hardway(笨办法)比较适合起步编程,作为Python的入门挺不错。
第四个
在这里给大家推荐最后一本《集体智慧编程》
本书以机器学习与计算统计为主题背景,专门讲述如何挖掘和分析Web上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出有用的结论,通过复杂的算法来从Web网站获取、收集并分析用户的数据和反馈信息,以便创造新的用户价值和商业价值。
全书内容翔实,包括协作过滤技术(实现关联产品推荐功能)、集群数据分析(在大规模数据集中发掘相似的数据子集)、搜索引擎核心技术(爬虫、索引、查询引擎、PageRank算法等)、搜索海量信息并进行分析统计得出结论的优化算法、贝叶斯过滤技术(垃圾邮件过滤、文本过滤)、用决策树技术实现预测和决策建模功能、社交网络的信息匹配技术、机器学习和人工智能应用等。
本书是Web开发者、架构师、应用工程师等的绝佳选择。
“太棒了!对于初学这些算法的开发者而言,我想不出有比这本书更好的选择了,而对于像我这样学过Al的老朽而言,我也想不出还有什么更好的办法能够让自己重温这些知识的细节。”
——Dan Russell,资深技术经理,Google
“Toby的这本书非常成功地将机器学习算法这一复杂的议题拆分成了一个个既实用又易懂的例子,我们可以直接利用这些例子来分析当前网络上的社会化交互作用。假如我早两年读过这本书,就会省去许多宝贵的时间,也不至于走那么多的弯路了。”
——Tim Wolters,CTO,Collective Intellect
第五个
其实我觉得很多人也在看《Python核心编程:第2版》.在我自己看来,我并不喜欢这本书.
这本书的原书的勘误表就有够长的,翻译时却几乎没有参考勘误表,把原书的所有低级错误都搬进去了。这本书的原书质量也并不好,书的结构组织并不合理,不适合初学者阅读。有人说,这本书适合进阶阅读,我觉得也不尽然。这本书很多地方都写的欲言又止的,看得人很郁闷。
今天时间不多,给大家分享下Python格式化字串符-format
format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
4.官方推荐用的方式,%方式将会在后面的版本被淘汰
format的一个例子
1 | print'hello {0}'.format('world') |
会输出hello world
format的格式
replacement_field ::= “{” [field_name] [“!” conversion] [“:” format_spec] “}”
field_name ::= arg_name (“.” attribute_name | “[” element_index “]”)*
arg_name ::= [identifier | integer]
attribute_name ::= identifier
element_index ::= integer | index_string
index_string ::= <any source character except “]”> +
conversion ::= “r” | “s” | “a”
format_spec ::= <described in the next section>
format_spec 的格式
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= ”<” | “>” | “=” | “^”
sign ::= ”+” | “-” | ” “
width ::= integer
precision ::= integer
type ::= ”b” | “c” | “d” | “e” | “E” | “f” | “F” | “g” | “G” | “n” | “o” | “s” | “x” | “X” | “%”
应用:
一 填充
1.通过位置来填充字符串
123 | print'hello {0} i am {1}'.format('Kevin','Tom')# hello Kevin i am Tomprint'hello {} i am {}'.format('Kevin','Tom')# hello Kevin i am Tomprint'hello {0} i am {1} . my name is {0}'.format('Kevin','Tom')# hello Kevin i am Tom . my name is Kevin |
foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……
也可以不输入数字,这样也会按顺序来填充
同一个参数可以填充多次,这个是format比%先进的地方
2.通过key来填充
1 | print'hello {name1} i am {name2}'.format(name1='Kevin',name2='Tom')# hello Kevin i am Tom |
3.通过下标填充
123 | names=['Kevin','Tom']print'hello {names[0]} i am {names[1]}'.format(names=names)# hello Kevin i am Tomprint'hello {0[0]} i am {0[1]}'.format(names)# hello Kevin i am Tom |
4.通过字典的key
12 | names={'name':'Kevin','name2':'Tom'}print'hello {names[name]} i am {names[name2]}'.format(names=names)# hello Kevin i am Tom |
注意访问字典的key,不用引号的
5.通过对象的属性
12345 | classNames():name1='Kevin'name2='Tom'print'hello {names.name1} i am {names.name2}'.format(names=Names)# hello Kevin i am Tom |
6.使用魔法参数
123 | args=['lu']kwargs={'name1':'Kevin','name2':'Tom'}print'hello {name1} {} i am {name2}'.format(*args,**kwargs)# hello Kevin i am Tom |
二 格式转换
b、d、o、x分别是二进制、十进制、八进制、十六进制。
数字 | 格式 | 输出 | 描述 |
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | 3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00E+09 | 指数记法 |
25 | {0:b} | 11001 | 转换成二进制 |
25 | {0:d} | 25 | 转换成十进制 |
25 | {0:o} | 31 | 转换成八进制 |
25 | {0:x} | 19 | 转换成十六进制 |
三 对齐与填充
数字 | 格式 | 输出 | 描述 |
5 | {:0>2} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x^4} | x10x | 数字补x (填充右边, 宽度为4) |
13 | {:10} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10} | 13 | 左对齐 (宽度为10) |
13 | {:^10} | 13 | 中间对齐 (宽度为10) |
四 其他
1.转义{和}符号
1 | print'{{ hello {0} }}'.format('Kevin') |
跟%中%%转义%一样,formate中用两个大括号来转义
2.format作为函数
12 | f='hello {0} i am {1}'.format printf('Kevin','Tom') |
3.格式化datetime
12 | now=datetime.now()print'{:%Y-%m-%d %X}'.format(now) |
4.{}内嵌{}
1 | print'hello {0:>{1}} '.format('Kevin',50) |
5.叹号的用法
!后面可以加s r a 分别对应str() repr() ascii()
作用是在填充前先用对应的函数来处理参数
12 | print"{!s}".format('2')# 2print"{!r}".format('2')# '2' |
差别就是repr带有引号,str()是面向用户的,目的是可读性,repr()是面向python解析器的,返回值表示在python内部的含义
ascii()一直报错,可能这个是3.0才有的函数
新的一天开始了,今天的任务很重,未来几天得完成任务了,后面微信公众号得交给助理老师搭理,是个妹子,你们可别欺负她,扫描下方二维码,关注本微信公众号,为你推荐更多优质文章和学习资料,打造一个好的学习平台。