一、导入模块的两种方式

  1.直接使用import

 import 模块名

 #调用
模块名.方法名()

  2.使用from…import…

 from 模块名 import 方法名1,方法名2(from 模块名 import *)

 #调用
4 方法名()

  3.__name__:直接使用解释器调用模块时,值为__main__,在其他地方调用模块时, 会显示为模块名,通过这一特性可以更好的测试

def test1(object):
print('') def test2(object):
print('') if __name__ == '__main__':
test1()
test2()

  4. 一个模块在导入后进行修改,修改后的内容是无法直接生效的,如果想要让修改后的内容生效,可以用下面的办法

from imp import *

reload(模块名)

  5.修改导入模块的默认路径

import sys

print(sys.path)    #会打印出模块加载的默认路径,是一个列表

sys.path.append('/home/itcast/xxx')
sys.path.insert(0, '/home/itcast/xxx') #可以确保先搜索这个路径

  5.模块的循环导入问题

    (1)首先定义一个a模块和一个b模块,在a模块中想要调用b模块中的b函数,在b模块中想要调用a模块中的a函数,这样就会形成一个死循环,报错

from b import b

def a():
print('----a----')
b() a()
from a import a

def b():
print('----b----') def c():
print('----c----')
a() c()

    (2)要谨防上面问题的发生,解决该问题应该写一个新的模块,在新的模块中调用

二、其他

  1.__all__

__all__ = ["test1"];

def test1():
print("") def test2():
print("") #在模块中__all__后的部分添加模块中的方法名,如果在外部使用from ... import *时,只会导入__all__中的方法

  2.让程序自动导入在下一级目录下的模块,可以在下一级目录创建一个名为__init__.py的文件(此时该目录称之为包),然后在__init__.py文件中输入__all__ = ['模块名']的内容(注:该方法只是在导入模块式使用from ... import *时生效,想直接使用模块见下条)

  3.如果想直接使用该目录下的模块,需要在__init__.py文件中使用from . import 模块名进行导入

  4.列表推导式

a = [x for x in range(4)]
print(a) #结果为:[0, 1, 2, 3] a = [x for x in range(3, 4)]
print(a) #结果为:[3] a = [x for x in range(3, 19, 2)]
print(a) #结果为:[3, 5, 7, 9, 11, 13, 15, 17] a = [x for x in range(10) if x % 2 == 0]
print(a) #结果为:[0, 2, 4, 6, 8] a = [x for x in range(3) for j in range(2)]
print(a) #结果为:[0, 0, 1, 1, 2, 2] a = [(x, y) for x in range(3) for j in range(2)]
print(a) #结果为:[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]

三、集合

  1.集合的定义:a = {11, 22, 33}

  2.集合的特点:集合会自动去重

  3.集合和列表的相互转换:set() list()  利用集合会自动去重的特点,可以对列表进行去重

python--模块、列表生成式、集合元祖列表的更多相关文章

  1. 关于Python元祖,列表,字典,集合的比较

      定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'], ...

  2. day007 列表类型、元祖类型、 字典类型、 集合类型的内置方法

    目录 列表数据类型的内置方法 作用 定义方式 优先掌握的方法 需要掌握的方法 元祖类型的内置方法 作用 定义方式 优先掌握的方法(参考列表方法) 字典类型的内置方法 作用 定义方式 优先掌握的方法 需 ...

  3. 学习python的第十天(内置算法:列表数据类型,元祖数据类型,字典数据类型)

    5.8自我总结 1.列表类型内置算法 1.必须掌握 1.按索引取值(正向取值+反向取值),即可存也可以取 #用于取其中一个值 name = ['yang','wen','yi'] ##正方向取wen, ...

  4. Python字符串/元祖/列表/字典互转

    #-*- coding:UTF-8 -*- #author:RXS002 #1.字典 dict = {'name':'Zara','age':7,'class':'First'} #字典转换为字符串, ...

  5. 列表list和元祖tuple

    list和tuple list列表: Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: ...

  6. 列表操作方法,元祖,for循环嵌套

    li = ['alex','wusir''女神']增 1.增加到列表末位 li.append() 连续增加,输入q停止 li = ['alex','wusir''女神'] while 1: s = i ...

  7. python-列表 字典 集合 元祖 字符串的相关总结练习

    1.执行python脚本的两种方式指定解释器执行在交互器中执行 2.简述位.字节的关系:ASCII1个二进制位是计算机里的最小表示单元1个字节是计算机里最小的储存单元二进制位=8bits(位)8bit ...

  8. python基础一数据类型之元祖

    摘要: python基础一中写到数据类型元祖,那么这篇主要讲元祖. 1,元祖定义 tuple1 = (1,2,'a','b') 元祖是不可变数据,所以又名只读列表.那么如何让是元祖可变呢?可以在元祖中 ...

  9. python 基础知识3-列表元祖

    1.列表增. # append 追加,给列表的最后面追加一个元素 li = ['alex','wufa','太白','大白'] li.append('教师') li.append(1) print(l ...

随机推荐

  1. mybatis进阶案例之多表查询

    mybatis进阶案例之多表查询 一.mybatis中表之间的关系 在数据库中,实体型之间的关系主要有如下几种: 1.一对一 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之 ...

  2. 解决git推不上去1

    在使用 Android Studio 对源代码进行push到码云时可出错,报错如下: error: failed to push some refs to 'https://gitee.com/文件路 ...

  3. C++ for循环练习

    #include <stdio.h> //题目:现有公鸡5元一只,母鸡3元一只,小鸡1元3只(小鸡不能单买 最少3只起卖),此时顾客有100元,请问有多少种购买方案. int main() ...

  4. Spring注解 - 组件的注册

    Spring Boot的出现极大的简化了我们的开发,让我们无需再写繁杂的配置文件,其正是利用了注解的便捷性,而Spring Boot又依赖于Spring,因此深入学习Spring的注解是十分必要的. ...

  5. 项目部署Django+celery+redis

    celery介绍 1.celery应用举例 1.Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,   如果你的业务场景中需要用到异步任务,就可以 ...

  6. Spring框架——IOC 容器的创建与使用

    企业级开发框架 Spring Framework 是整个 Spring 生态的基础,各个模块都是基于 Spring Framework 衍生出来的. Spring 的两大核心机制 IOC 控制翻转.A ...

  7. 从零开始学习R语言(一)——数据结构之“向量”(Vector)

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...

  8. java web 获取 网页访问次数

    ServletContext context = request.getServletContext(); /** * 从ServletContext中获取计数器对象 */Integer count ...

  9. 理解Golang组件protobuf

    什么是protobuf protocol buffers 是一种语言无关.平台无关.可扩展的序列化结构数据的方法,它可用于(数据)通信协议.数据存储等.是一种灵活,高效,自动化机制的结构数据序列化方法 ...

  10. 单片机的 HexToStr HexToBcd BcdToStr 几个转换函数

    今天写单片机一个程序 要检查一些数据,想发到串口调试的软件上在电脑上查看 有些转换函数 想网上找一个 看看都是很多的垃圾文章 很多的程序都不能用,那些发文章的人也不用心 所以我还是自己动手写一下吧 写 ...