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教程中的一些问题的更多相关文章

  1. 简明的Python教程中的几个疑惑点分析#2

    #1简明的Python教程当中第十四章Python标准库介绍中的使用sys模块 假如你没看懂sys模块这一章节,那么没关系,看下面一段代码再看简明的Python教程中的sys模块实例你将很容易看懂 代 ...

  2. MVC4学习之官方教程中迁移版本库报错

    因工作需要,学习MVC4,但是微软官方教程中迁移版本库步骤在本地测试报错 官方教程地址:http://www.asp.net/mvc/overview/older-versions/getting-s ...

  3. python学习:python文件中空格和换行符的捕获和文本文件的转存

    0. 背景 之前公司的项目中,需要在嵌入式系统中实现一个http的网页端内容,由于项目历史遗留问题,公司是采用的将html文件转成c语言头文件的方式,每次修改页面端都需要从新编译一下程序,非常的繁琐. ...

  4. Python学习-15.Python的中的套接字socket

    Python应用最广泛的要数web方面了.因此,socket显得十分重要. 要使用socket,必须引入socket模块,因此在Python脚本开头先写入 import socket 学过socket ...

  5. Python教程:Python中的for 语句

    Python 中的 for 语句与你在 C 或 Pascal 中可能用到的有所不同. Python教程 中的 for 语句并不总是对算术递增的数值进行迭代(如同 Pascal),或是给予用户定义迭代步 ...

  6. 简明的Python教程当中的几个疑惑点分析#1

    #1简明的Python教程中的第11章面向对象编程学习中的类与对象的方法里面 有这么一个案例:使用类与对象的变量 #coding:utf-8 #类与对象的变量学习 class Person: popu ...

  7. 学习笔记《简明python教程》

    学习笔记<简明python教程> 体会:言简意赅,很适合新手入门 2018年3月14日21:45:59 1.global 语句 在不使用 global 语句的情况下,不可能为一个定义于函数 ...

  8. 《简明Python教程》学习笔记

    <简明Python教程>是网上比较好的一个Python入门级教程,尽管版本比较老旧,但是其中的基本讲解还是很有实力的. Ch2–安装Python:下载安装完成后,在系统的环境变量里,在Pa ...

  9. Python学习教程(十)精选 TOP45 值得学习的Python项目

    精选 TOP45 值得学习的Python项目 [导读]热门资源博客 Mybridge AI 比较了 18000 个关于 Python 的项目,并从中精选出 45 个最具竞争力的项目.我们进行了翻译,在 ...

随机推荐

  1. 大型网站的 HTTPS 实践(四)——协议层以外的实践

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt390 1 前言 网上介绍 https 的文章并不多,更鲜有分享在大型互联网站 ...

  2. Winform控件输入的字母转换成大写

    private void textBoxHbh_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar >= 'a' & ...

  3. 关于selenium IDE找不到元素

    selenium IDE ,明明存在元素,却找不到元素 ,报错Element not found 标签: seleniumselenium IDE自动化测试ide 2016-10-31 13:25 1 ...

  4. 【2017集美大学1412软工实践_助教博客】团队作业4——第一次项目冲刺(Alpha版本)小组 成绩

    第四次团队作业成绩公布 题目 团队作业4: http://www.cnblogs.com/happyzm/p/6722264.html 团队成绩 成绩公示如下: 检查项 会议内容 代码签入 心得体会或 ...

  5. 个人作业1——四则运算题目生成程序(基于C++)

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 1 ...

  6. 201521123080《Java程序设计》第2周学习总结

    1.本周学习总结 a.学习了如何建立远程仓库和本地仓库并建立连接. b.学习了一些基础语法. 2.书面作业 Q1.使用Eclipse关联jdk源代码,并查看String对象的源代码(截图)?分析Str ...

  7. sublime text 按下Ctrl + B 显示空白的解决办法

    环境:windows xp , sublime text 2 条件:环境变量也已经设置好,可是无论怎么编译都是空白,如图: 于是鄙人百度之,发现不少网友都有这样的问题,但是网上给出的的解决方案千篇一律 ...

  8. 201521123121 《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 进程:每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销,一个进程包含1--n个线程. 线程:同一类线程 ...

  9. PHP面向对象简单总结

    类和对象对象:一切东西都可以看做对象,对象是类的实例化.类:类是对象的抽象,用来描述众多对象共有的特征. 定义类 class成员变量 和 成员方法访问修饰符 public共有的 private 私有的 ...

  10. openfire:Openfire源代码在eclipse中的运行配置 + 与spark结合进行二次开发

    1.下载源代码:http://www.igniterealtime.org/downloads/source.jsp 2.把源代码解压出的openfire_src文件夹放至eclipse workpl ...