学python lesson3

准备发布:

1.首先为模块创建一个文件夹;

创建好之后,将nester.py模块文件复制到这个文件夹中。简单起见,文件夹命名为nester;

2.在创建好的文件夹中创建一个名为setup.py的文件;

这个文件包含有关发布的元数据。编辑这个文件,增加下面的代码:

from distutils.core import setup      # 从python发布工具导入“setup”函数

setup(

            # setup函数的参数名

            name = 'nester',

            version = '1.0.0',

            py_modules = ['nester']                  # 将模块的元数据与setup函数的参数关联

            author =  'abc'                                 # 自定义模块使用的值

            author_email = 'zzz@qwe.net',       # 自定义模块使用的值

            url = 'http://wwwabc.net',                 # 自定义模块使用的值

            description = 'A test for ',                 # 自定义模块使用的值

)

构建发布:

3.构建一个发布文件;

发布工具包含有构建一个发布所需的所有功能。在nester文件夹中打开一个终端窗口,键入一行命令:python setup.py sdist

4.将发布安装到你的Python本地副本中;

仍然在终端窗口,键入命令:sudo python setup.py install

发布速览

利用Python的发布工具,你的模块已经转换为一个发布,并且安装在你的Python本地副本上。

开始时只有一个函数,这个函数输入到一个名为nester.py的文件中,这就创建了一个模块。然后创建一个名为nester的文件夹存放这个模块。通过在这个文件夹中增加一个名为setup.py的文件,从而能够构建和安装你的发布,这会生成一组额外的文件,并在nester文件夹中出现两个新的文件夹。这些文件和文件夹都是由发布工具为你创建的。

 

python是动态语言,而静态语言是?

静态语言(强类型语言)

静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。例如:C++、Java、Delphi、C#等。

动态语言(弱类型语言)

动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。

.pyc文件,字节码。

pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由Python的虚拟机来执行的,这个是类似于Java或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的。

导入模块并使用

既然已经构建了模块,并作为发布打包和安装,下面来看使用时还需要什么。要使用一个模块,只需要把它导入到你的程序中,或者导入到交互式shell:

import nester                   # import是python关键字,nester是模块名

 

Python的模块实现命名空间

Python中的所有代码都与一个命名空间关联。

主Python程序中的代码与一个名为__main__的命名空间关联。将代码放在其单独的模块中时,Python会自动创建一个与模块同名的命名空间。所有,你的模块中的代码会与一个名为nester的命名空间关联。

假设你目前正在某个命名空间,如果想指示另外一个模块命名空间中的某个函数,就需要用该模块的命名空间对这个函数的调用作出限制。

所有,不能简单的通过print_lol(cast)调用这个函数,而需要限定为nester.print_lol(cast),这样一来,Python解释器就会知道去那里找这个函数。命名空间限定的格式如下:首先是模块名,然后是一个点,再后面是函数名,如nester.print_lol(cast)。

采用from nester import 函数名,可以直接引用函数,但是不建议这样做,因为可能本命名空间存在同名函数,会覆盖本命名空间的属性。

Pypi社区上传?

Python包索引(PyPI)是Python编程语言的软件存储库。

         PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库。
pip可正常工作在Windows、Mac OS、Unix/Linux等操作系统上,但是需要至少2.6+和3.2+的CPython或PyPy的支持。python 2.7.9 和3.4以后的版本已经内置累pip程序,所以不需要安装。

 

s = "abc汉字"      

len(s)       # 5

type(b"abc")     # bytes

type(u'abc')      # str

str(2.2)             #str

"学习{0},还要学习{1}".format('C语言','Python')

s = "a,b,c"

l = s.split(',')       # l = ['a','b','c']

ll = ','.join(l)        # ll = 'a,b,c'

s.find('a')           #0

s.find('b')           #2

l.sort.__doc__          # 'L.sort(key=None,reverse=False)

x = ['abc','a','bc','abcd']

x.sort(key=len)          # x = ['a','bc','abc','abcd']

num = '1',                  # num = ('1',)

num = ('1',)               # num = ('1',)

type(num)                # tuple

num = ('1')                # num = '1'

type(num)                 # str

num = '1','2','3'          # num = ('1','2','3')

num = ('1','2','3')       # num = ('1','2','3')

a,b,c = num             # a = '1',  b = '2',  c = '3'

l = list(num)             # l = ['1','2','3'],  num = ('1','2','3')

ll = tuple(l)               # ll = ('1','2','3')

想要元素不可变,用元组。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值