设为首页 收藏本站
查看: 451|回复: 0

[经验分享] Head First Python学习笔记1

[复制链接]
累计签到:5 天
连续签到:1 天
发表于 2015-12-1 13:37:41 | 显示全部楼层 |阅读模式
# 递归
def recursion(movies):
for item in movies:
# isinstance是一个判断类型的函数
if isinstance(item,list):
recursion(item)
else:
print(item)
#

  正在学习python,记录一下,话说这本书好像不太适合没有编程基础的人啊,上来就讲列表和递归是闹哪样啊。
python是动态语言,即类型不用声明(想C#里那样List 、int什么的),比如列表要声明可以直接  movies = ["西游记之大圣归来","侏罗纪世界",1,["马达加斯加的企鹅"]],这里还嵌套了列表,所以接下来就是用递归遍历列表了。
  学过c#的我认为上面那段代码还是好懂的,def是声明函数的关键字,括号里是参数,for..in..:类似c#里的foreach循环,然后用isinstance判断是否是列表,是则再次调用函数,这是典型的递归了。
  再次吐槽:这真的是入门教程吗,不先介绍数据类型和一些基本关键字就直接开始解决问题(书里是为了解决问题:某人收藏了很多电影数据,要求管理一下),仔细想想,这样似乎也不错,就是完全没有编程基础的人可以要吃亏了。
  然后把这段代码打包成模块发布(我怎么感觉有点跟不上了),模块有点像是c#里的dll。
  先建立文件夹,把源码保存值文件夹内,然后新增一个setup.py的文件,



from distutils.core import setup
setup(
name        = '程序名称',
version     = '1.0.0',
py_modules  = ['模块名称'],
author      = '作者',
author_email= '邮箱@gmail.com',
url         = '',
description = 'a simple recursion',
)

  然后在命令行里进入文件夹,运行:python setup.py sdist 就可以打包你的模块了,打包完成后:python setup.py install,安装。这个时候在进入IDLE用import(相当于C#里Using)关键字导入模块,再使用模块名调用函数就可以了。
  先总结一下内容:
  1.一些术语:BIF内置函数,组(Suite)代码块,python里通过缩进来区分代码分组
  2.快捷键:在IDLE里Alt+P显示上一段代码,Alt+N显示下一个,Tab键可以完成代码,另外如果是从c#转来的一定要注意:按Tab显示出来的函数等代码不要用回车确定要用Tab(有时可能需要按两下Tab),我已经有很多次用回车结果python直接执行代码了
  3.定义变量不用声明类型如:int a=1,可以直接a=1,python会识别类型。
  4.print()函数会在屏幕上显示一个消息。由于python可以直接执行,所以理论上来说这会是我们用的最多的函数。
  5.列表是一个数据集合,但是列表里可以存放任何数据类型,如上一篇里的data=["aaa",1,[True]],这应该算是动态语言和静态语言的区别了吧。另外列表可以自由伸缩,不用担心长度问题
  6.for xx in xxx:循环,如果xxx是列表,那就相当于c#里的foreach,如果xxx换成range(0,3)(这里表示0<=xx<3python里大部分这样的截取都是包含左边,不包含右边)就是c#里的for循环了,还有别忘了冒号,定义函数,判断语句,循环等都需要冒号来确定和分行
  7.def关键字定义函数,不需要定义返回值类型和参数类型,参数可以设置默认值,比如def add(a,b=0)你可以只传入一个参数,也可以传两个,但是要注意,如果有多个缺省参数而你只传一个,一定要指定参数名,如:def add(a,b=0,c="a")调用add(1,c="b")这种方式可以非常容易实现重载,不过我还是不建议在一个函数里重载,会增加复杂度
  8.isinstance(data, int)用于判断数据类型
  9.import关键字用于导入模块(python里的模块相当于c#里的类库)
  写完发现这些其实是包含了一二章的内容,不过第二章主要介绍怎么打包python程序,所以放一起也不错。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145912-1-1.html 上篇帖子: 老李分享:pep8 python代码规范 下篇帖子: 测试开发Python培训:实现屌丝的黄色图片收藏愿望(小插曲)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表