先做几个练习题

练习计算一个四乘四矩阵的所有元素的和,以及对角线之和

#encoding=utf-8

a=[[1,2,3,4],

[2,5,2,3],

[1,5,3,2],

[5,3,2,5]

]

#encoding=utf-8

a=[[1,2,3,4],

[2,5,2,3],

[1,5,3,2],

[5,3,2,5]

]

total_sum=0

diagonal_sum=0

‘‘‘

for i in a:

print "i:",i

for j in range(len(i)):

print i[j],

total_sum+=i[j]

print total_sum

‘‘‘

#正对角线之和

for i in range(len(a)):

diagonal_sum+=a[i][i]

print diagonal_sum

c:\Python27\Scripts>python task_test.py

14

#反对角线之和

for i in range(len(a)):

diagonal_sum+=a[i][len(a)-i-1]

print diagonal_sum

.c:\Python27\Scripts>python task_test.py

16

第二题:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

#encoding=utf-8

a=[]

while True:

try:

content=raw_input("input the interger number:")

if content.strip()==‘over‘:

break

else:

a.append(int(content))

except:

print "input error, input again!"

print a

max_num=max(a)

min_num=min(a)

a[a.index(max_num)] = a[0]

a[0]=max_num

a[a.index(min_num)] = a[-1]

a[-1]=min_num

print a

第三题:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

#encoding=utf-8

a=[1,2,3,4,5,6,7,8,9,0]

m=3

print "a:",a

print "m",m

a_first=a[-m:]

a_second=a[:-m]

print a_first

print a_second

print "a:",a_first+a_second

c:\Python27\Scripts>python task_test.py

a: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

m 3

[8, 9, 0]

[1, 2, 3, 4, 5, 6, 7]

a: [8, 9, 0, 1, 2, 3, 4, 5, 6, 7]

找到模块或包的三种方法:

把包或模块放到与当前文件同一个目录下

#encoding=utf-8

import a

print a.add(1,3)

c:\Python27\Scripts>python task_test.py

4

把包或模块的路劲放到path里

#encoding=utf-8

import sys

print "sys.path:",sys.path

sys.path.append("d:\\")

print "sys.path:",sys.path

import a

c:\Python27\Scripts>python task_test.py

sys.path: [‘c:\\Python27\\Scripts‘, ‘C:\\Windows\\SYSTEM32\\python27.zip‘, ‘C:\\Python27\\DLLs‘, ‘C:\\Python27\\lib‘, ‘C:\\Python27\\lib\\plat-win‘, ‘C:\\Python27\\lib\\lib-tk‘, ‘C:\\Python27‘, ‘C:\\Python27\\lib\\site-packages‘]

sys.path: [‘c:\\Python27\\Scripts‘, ‘C:\\Windows\\SYSTEM32\\python27.zip‘, ‘C:\\Python27\\DLLs‘, ‘C:\\Python27\\lib‘, ‘C:\\Python27\\lib\\plat-win‘, ‘C:\\Python27\\lib\\lib-tk‘, ‘C:\\Python27‘, ‘C:\\Python27\\lib\\site-packages‘, ‘d:\\‘]

4

把sys加入path部分注释掉:

c:\Python27\Scripts>python task_test.py

Traceback (most recent call last):

File "task_test.py", line 8, in

import a

ImportError: No module named a

把模块放到lib下的C:\Python27\Lib\site-packages

#encoding=utf-8

import a

print a.add(1,3)

c:\Python27\Scripts>python task_test.py

4

当导入一个模块时,Python解析器会去搜索该模块存在的位置,其搜索顺序为:

?当前目录

?如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。

?如果都找不到,python会查安装路径lib下的site-packages。Unix下,默认路径一般是/usr/local/python/。 模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH由安装过程决定的默认目录。

包:文件夹下有一个__init__.py的文件,

模块:就是一个python文件

From import把包里的命名空间引入到当前的命名空间,缺点该命名空间里的同名函数会被本地的同名函数覆盖

Globals(), locals()

根据调用地方的不同,globals()和locals()函数可被用来返回全局和局部命名空间里的名字。

如果在函数内部调用locals(),返回的是所有能在该函数里访问的命名。

如果在函数内部调用globals(),返回的是所有在该函数里能访问的全局名字。

两个函数的返回类型都是字典。所以名字们能用keys()函数摘取。

#encoding=utf-8

xiaxiaoxu="xiaxiaoxu"

def func():

print "calling func()..."

aStr="bar"

anInt=23

print "func()‘s globals:",globals().keys()

print "func()‘s locals:",locals().keys()

print "__main__‘s globals:",globals().keys()

print "__main__‘s locals:",locals().keys()

func()

c:\Python27\Scripts>python task_test.py

__main__‘s globals: [‘__builtins__‘, ‘__file__‘, ‘__package__‘, ‘func‘, ‘__name__‘, ‘xiaxiaoxu‘, ‘__doc__‘]

__main__‘s locals: [‘__builtins__‘, ‘__file__‘, ‘__package__‘, ‘func‘, ‘__name__‘, ‘xiaxiaoxu‘, ‘__doc__‘]

calling func()...

func()‘s globals: [‘__builtins__‘, ‘__file__‘, ‘__package__‘, ‘func‘, ‘__name__‘, ‘xiaxiaoxu‘, ‘__doc__‘]

func()‘s locals: [‘aStr‘, ‘anInt‘]

包的概念

在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。包是一个分层的文件目录结构,它定义了一个由模块及子包和子包下的子包等组成的Python的应用环境。

包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹被当作包使用时,文件夹中需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,表示全部导出定义过的模块。如果希望调用同一个package中的module,则直接import即可

创建包,在同一目录下

#encoding=utf-8

import xia.cal

print xia.cal.add(2,3)

c:\Python27\Scripts>python task_test.py

5

__init__.py中的__all__限制了这句话from xx import *的使用范围

__all__ = [‘bar‘, ‘baz‘]在一个模块中,用这个限制调用的范围

使用文件:

a1.py:

#encoding=utf-8

__all__ = [‘bar‘, ‘baz‘]

waz = 5

bar = 10

def baz(): return ‘baz‘

task_test.py:

#encoding=utf-8

from a1 import *

print bar

print baz

print waz

运行task_test.py:

c:\Python27\Scripts>python

task_test.py

10

baz at 0x0000000002EE5AC8>

Traceback

(most recent call last):

File "task_test.py", line 8, in

print waz

NameError:

name ‘waz‘ is not defined

a1.py中改为:

#encoding=utf-8

__all__

= [‘bar‘, ‘baz‘,‘waz‘]

#encoding=utf-8

__all__=[‘bar‘,‘baz‘,‘waz‘]

waz=5

bar=10

def baz():

return ‘baz‘

c:\Python27\Scripts>python

task_test.py

10

baz at 0x0000000002C85AC8>

5

使用包,建立一个testmodule的目录,目录中有3个文件:a.py、x.py、__init__.py

a.py:

waz = 5

bar = 10

def baz(): return ‘baz‘

x.py:

name=‘gloryroad‘

def sub(a,b):

return a-b

__init__:

__all__ = [‘x‘]

b.py:

from testmodule import *

print a.bar

print a.baz

print a.waz

c:\Python27\Scripts>python

b.py

Traceback

(most recent call last):

File "b.py", line 3, in

print a.bar

NameError:

name ‘a‘ is not defined

x.py改为:

__init__:

__all__ = [‘a]‘]

c:\Python27\Scripts>python

b.py

10

baz at 0x0000000002FFDAC8>

5

包方法1:有一个gloryroad目录,有个子目录submodule,两个目录中有如下几个文件: gloryroad a.py含有函数add(a,b)(当然可以包含多个函数或属性) gloryroad /submodule/b.py含有函数multiple (a,b)

现在在gloryroad目录下创建文件__init__.py ,里面不写任何内容

现在在gloryroad目录的submodule下创建文件__init__.py ,里面不写任何内容

经过如上处理后,在gloryroad目录的同级目录下,生成task_test.py。

#encoding=utf-8

import gloryroad.a

import gloryroad.submodule.b

print gloryroad.a.add(10,30)

print gloryroad.submodule.b.multiple(10,5)

c:\Python27\Scripts>python

task_test.py

40

50

设python中有模块m、如果希望同时导入m中的所有成员_python-模块相关推荐

  1. 设python中有模块m、如果希望同时导入m中的所有成员_python基础入门——深蓝学院课后习题(三)...

    1.python函数有几部分组成?分别是什么? 函数名称 函数参数 表达式 函数返回值 2.可变参数在函数中如何表示?关键值参数是什么? * args 表示多个参数,只有值的可变参数 ** kwarg ...

  2. 设python中有模块m_关于 Python 命令中的 -m 参数(转帖)

    2020-04-20 13:45 在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c com ...

  3. 设python中有模块m_Python 模块

    Python 模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代 ...

  4. python导入xlsxwriter要安装什么吗_Python 模块:XlsxWriter 的使用

    一.安装 XlsxWriter 使用命令: pip3 install xlsxwriter image 二.验证是否安装成功 新建一个 .py 文件,输入下面代码: import xlsxwriter ...

  5. python中如何导入sklearn_Python中常用包——sklearn主要模块和基本使用方法

    在从事数据科学的人中,最常用的工具就是R和Python了,每个工具都有其利弊,但是Python在各方面都相对胜出一些,这是因为scikit-learn库实现了很多机器学习算法. 加载数据(Data L ...

  6. python内置函数可以返回数值型序列中所有元素之和_Python内置函数________________用来返回数值型序列中所有元素之和。...

    [单选题]表达式 ','.join('a     b  ccc\n\n\nddd     '.split()) 的值为______________. [单选题]表达式 'abcabcabc'.coun ...

  7. python的应用领域和常用函数模块有哪些_Python模块导入区别与常用函数案例

    作者:Nature 出品:AI机器思维 Python中包含很多模块,每个领域的应用有关专家开发了相应的模块,必须将其导入到python中,然后才能使用.每个模块安装导入后才能引用,下面通过math模块 ...

  8. python 模块与包_Python 模块与包

    模块:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用python编写的代码(.py文件) 2.已被编 ...

  9. python好用的模块和包_Python模块和包详细讲解与实例分析

    一丶模块 我们经常说模块模块的,究竟什么是模块呢? 一个模块就是包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀 但其实import加载的模块分为四个通用类别: 1.使用Pyth ...

最新文章

  1. [转] 使用模板自定义 WPF 控件
  2. c语言中abc是什么类型,基金分为ABC三类,分别代表什么意思,哪一类适合普通投资者?...
  3. for循环延时_单片机的独立按键学习,实现60秒循环数字的启动暂停与清零
  4. kettle怎么复制资源库的job_#linux系统下调度数据库类型资源库中的kettle job
  5. python来构建多层网络
  6. 四元数乘法_复数的意义——四元数
  7. BZOJ 1597 [Usaco2008 Mar]土地购买 (斜率优化dp)
  8. ubuntu16.04命令行模式和图形界面互相切换
  9. rabbitmq python高性能开发_RabbitMQ工作队列实现高性能任务的负载分发[Python实例]...
  10. 2021/06/20 1+X 大数据应用开发(Java)中级实操考试
  11. python itchat教程_Python itchat.run方法代码示例
  12. 招聘网站分析-前程无忧网站的爬虫设计与实现
  13. iOS 中的编码方式详解(主要讲解Unicode)
  14. python代码画樱花教程-python画樱花树代码 具体代码介绍
  15. Codeup墓地-1123
  16. Laravel 资源管理器 destory方法
  17. SVG 的 foreignObject 标签
  18. 坐标换与雅克比矩阵 Jacobian
  19. 如何用VBA快速批量提取多个工作表名称?
  20. JavaScript中的闭包原理

热门文章

  1. 易语言执行linux脚本,初识易语言到编写SHELL生成器
  2. 学PHP的嫌弃什么歌,抖音再见了互相嫌弃的老同学是什么歌
  3. BOOT INI专辑
  4. 538B. Quasi Binary
  5. php实际应用小例子,PHP4实际应用经验篇(6)
  6. php编译称opcode文件,PHP源码保护和性能加速
  7. python gui开发_python 开发GUI应用之Dabo
  8. 坦克大战代码_坦克大战系列文章-坦克大战简介
  9. js 获取鼠标在画布的位置_云凤蝶如何打造媲美 sketch 的自由画布
  10. leftjoin多表联合查询_leetcode-sql练习精讲系列文章——一、多表如何连接