2017开始学习Python,在网上找了很多教程,最后看到了Vamei的教程,感觉很简单易懂,但是过程中难免有不太容易理解的问题,做一些随笔,加深记忆亦可让以后学习的同学少走一些弯路。
1 Python 进阶03模块 这一节总体还是挺简单易懂,但是到了 模块包 有个地方很容易出错,原文如下
“可以将功能相似的模块放在同一个文件夹(比如说this_dir)中,构成一个模块包。通过
import this_dir.module
引入this_dir文件夹中的module模块。该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。__init__.py可以是一个空文件。”
我按照这个教程在桌面建立了一个mk的文件夹,里面放了三个模块,一个first.py ,一个second.py ,一个__init__.py组成一个模块包,在终端用import mk.moudle 命令调用,出现 ImporError: No module named module 在网上找了半天错误原因,没找到啊。最后发现import mk.moudle后面的module只是一个例子,需要你换成自己模块包里有的模块,比如我换成了import mk.first就好了,也就是说.moudle不是调用格式。
但是导入模块包之后,调用模块包内模块的对象出现错误,比如我在first.py中定义了def laugh(): print('hahaha') 但是import mk.first之后,调用first.laugh 出现name 'first' is not defined还没搞明白什么原因。
2 Python中函数的参数。
(1)函数参数传递方式有位置传递,关键字传递,默认参数传递,包裹传递(包裹位置传递、包裹关键字传递),包裹位置传递在定义函数时,
def func(*name): #参数name前面加上*,调用时func(1,4,6) func(5,6,7,1,2,3),参数个数可以不同,所有的参数类型组合起来其实是tuple,通过type(name)就可以看出。
print type(name)
print name
包裹关键字传递,dict的类型为字典,定义时在dict前面加两个**,type(dict)可以看出类型。调用时dict收集关键字,传递给函数,func(a=1,b=9) fun(m=1,n=8,v=9).
def func(**dict):
print type(dict)
print dict
包裹传递的关键就是在定义函数时,在相应的元组参数或词典参数前面加*或者**。
(2)解包裹。在定义是参数前面加*或者**成为包裹位置传递和包裹关键字传递;在调用时使用*或者**成为解包裹,调用的实参为元组时,前面加*,调用的实参为词典时,前面加**;比如定义函数
def func(a,b,c): #实参为元组args=(1,3,5)时,func(*args);实参为词典dict={'a':1,'b':2,'c':3}时,func(**dict)
print a,b,c
(3)参数传递方式可以混合,先位置,再关键字,再包裹位置,再包裹关键字
3 生成器的主要目的是构成一个用户自定义的循环对象。循环对象是包含有next()方法的对象,方法的目的是进行到下一个结果,结束后出现StopIteration错误。
f=open("text.txt") f.next() 每调用一次出现一个结果,直到出现StopIteration。 open返回的实际就是一个循环对象。
生成器就是用来创建循环对象的,生成器的定义和函数类似,把return改为yield即可。
def gen():
a = 100
yield a
a = a*8
yield a
yield 1000
学习的Python教程中的一些问题的更多相关文章
-
简明的Python教程中的几个疑惑点分析#2
#1简明的Python教程当中第十四章Python标准库介绍中的使用sys模块 假如你没看懂sys模块这一章节,那么没关系,看下面一段代码再看简明的Python教程中的sys模块实例你将很容易看懂 代 ...
-
MVC4学习之官方教程中迁移版本库报错
因工作需要,学习MVC4,但是微软官方教程中迁移版本库步骤在本地测试报错 官方教程地址:http://www.asp.net/mvc/overview/older-versions/getting-s ...
-
python学习:python文件中空格和换行符的捕获和文本文件的转存
0. 背景 之前公司的项目中,需要在嵌入式系统中实现一个http的网页端内容,由于项目历史遗留问题,公司是采用的将html文件转成c语言头文件的方式,每次修改页面端都需要从新编译一下程序,非常的繁琐. ...
-
Python学习-15.Python的中的套接字socket
Python应用最广泛的要数web方面了.因此,socket显得十分重要. 要使用socket,必须引入socket模块,因此在Python脚本开头先写入 import socket 学过socket ...
-
Python教程:Python中的for 语句
Python 中的 for 语句与你在 C 或 Pascal 中可能用到的有所不同. Python教程 中的 for 语句并不总是对算术递增的数值进行迭代(如同 Pascal),或是给予用户定义迭代步 ...
-
简明的Python教程当中的几个疑惑点分析#1
#1简明的Python教程中的第11章面向对象编程学习中的类与对象的方法里面 有这么一个案例:使用类与对象的变量 #coding:utf-8 #类与对象的变量学习 class Person: popu ...
-
学习笔记《简明python教程》
学习笔记<简明python教程> 体会:言简意赅,很适合新手入门 2018年3月14日21:45:59 1.global 语句 在不使用 global 语句的情况下,不可能为一个定义于函数 ...
-
《简明Python教程》学习笔记
<简明Python教程>是网上比较好的一个Python入门级教程,尽管版本比较老旧,但是其中的基本讲解还是很有实力的. Ch2–安装Python:下载安装完成后,在系统的环境变量里,在Pa ...
-
Python学习教程(十)精选 TOP45 值得学习的Python项目
精选 TOP45 值得学习的Python项目 [导读]热门资源博客 Mybridge AI 比较了 18000 个关于 Python 的项目,并从中精选出 45 个最具竞争力的项目.我们进行了翻译,在 ...
随机推荐
-
Django+uwsgi+Nginx安装部署
安装 安装Nginx Nginx是最流行的高性能HTTP服务器. 安装pcre: wget https://sourceforge.net/projects/pcre/files/pcre/8.37/ ...
-
Microsoft Dynamics CRM MVP
MVP 一个响亮的名称, 不是 Kobe Bryant 不是 LeBron Raymone James 这是 Microsoft Dynamics CRM MVP 求证Link: http://mvp ...
-
解决VS2010 C++ DLL不能断点调试的问题
问题产生的过程是这样的,向exe项目(CSharp)中添加dll工程(c++开发)的引用,并将引用工程的属性“Link Library Dependencies”的值设为true,这样,在不加入lib ...
-
Phoenix实现用SQL查询HBase
博客已转移,请借一步说话,http://www.weixuehao.com/archives/111 HBase,一个NoSQL数据库,可存储大量非关系型数据. HBase,可以用HBase shel ...
-
spring boot 实践
二.实践 一些说明: 项目IDE采用Intellij(主要原因在于Intellij颜值完爆Eclipse,谁叫这是一个看脸的时代) 工程依赖管理采用个人比较熟悉的Maven(事实上SpringBoot ...
-
dedecms文章的更新时间问题 每次更改文章时间变成最新的
dedecms 每次更改文章,更新时间这里每次改了后再来看又变成当前最新时间的了. 解决方法: 查找后台目录的 templets/article_edit.htm 这个文件. 然后打开,查找如下代码: ...
-
MrHuo.OAuthLoginLibs社会化登录组件Github
今日写的博客 [原创]旧事重提:只配置参数实现OAuth2登录 引来很多园子里的朋友问候,所以今日花了一些时间整理了代码. 现已发布至github: MrHuo.OAuthLoginLibs:http ...
-
JavaSE中Map框架学习笔记
前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...
-
TLD网络资源汇总--学习理解之(四)
原文:http://blog.csdn.net/mysniper11/article/details/8726649 引文地址:http://www.cnblogs.com/lxy2017/p/392 ...
-
G - 生日蛋糕
7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱.当 ...