Python入门-函数的使用到程序的公布安装
Python入门-函数的使用到Python的公布安装
本文主要适合有一定编程经验,至少掌握一门编程语言的人查看。
文中样例大多都是简单到认识英文单词就能看懂的水平,主要讲的是Python的总体使用方法和结构。不会设计高深层次,对Python入门有一定帮助。
Python和Java对照。会看到Python设计思想在于简洁、有用、强大,每个程序猿都值得学习和掌握。
Python函数的定义及有用
Python中的函数是一个命名的代码块。和Java一样,能够带0个或多个參数。主要形式如
def $函数名($參数):
...
函数体
...
能够看出Python通过缩进语句取代了java中的{},将代码归组到一起。
如Python中的基本语句:
for item in list:
...
do something
...
while true:
...
do something
...
if true:
...
else:
...
写一个通过參数的类型来打印不同的结果样例:
###假设是一个列表类型,则循环打印,否则打印当前
def print_test(is_list):
if isinstance(is_list, list):
for t in is_list:
print(t)
print_test("not list")
else:
print(the_list)
Python中的列表能够理解卫java中的列表,元组看成java中的数组(用小括号扩住),貌似比数据更强大和简洁一点。我们能够理解为“打了鸡血”的数据,能够随便伸缩。相关方法有:
len(list)
list.insert(1,‘’)
list.remove(”)
list.append(”)
上述实例中,用到递归调用。更具传入參数类型类递归调用自己。
能够看到。方法名字前就加了def修饰,參数也是直接随便写。
Python设计哲学把不论什么事物都看成了对象或集合。类型并不关心内部究竟是什么类型。变量标识符根本不须要类型。java中则声明变量时必须要表明类型。能够把Python看成高层集合,对于列表来说,里面能够存储不同类型的数值,仅仅要你给出一个名字。其它的由Python搞定
样例中isinstance 函数为Python内置函数。和java中的 instanceof 相似。
函数的调用。保存method.py, F5执行后,直接在shell和idle中键入:
### 句未加‘。’ 和写多行句子
import method.py
print_test(["item1","item2","item3"])
Python程序的公布和安装
模块化Python代码,像java一样,能够构建复杂而强大的系统。把Python代码模块化为类库,方便管理,业方便兴许的代码重用和架构。
import sys; sys.path 产看python在计算机上存储位置。
把上例函数封装为一个模块,然后公布安装为例:
- 为刚写的方法文件建立一个目录:method
把method.py 放到里面 - 新建立一个文件 “setup.py”
文件里为公布的元数据,编辑例如以下:
# 元数据
from distutils.core import setup
setup(
name = 'CankingApp',
version = '1.0',
py_modules = ['method'],
author = 'CankingApp',
author_email = 'king@gmail.com',
url = 'www.baidu.com',
descripthin= 'test',
)
构建公布文件
打开终端键入命令:$python3 setup.py sdist
running sdist
running check
warning: check: missing required meta-data: url
warning: sdist: manifest template ‘MANIFEST.in’ does not exist (using default file list)
warning: sdist: standard file not found: should have one of README, README.txt
writing manifest file ‘MANIFEST’
creating CankingApp-1.0
making hard links in CankingApp-1.0…
hard linking hello.py -> CankingApp-1.0
hard linking setup.py -> CankingApp-1.0
Creating tar archive
removing ‘CankingApp-1.0’ (and everything under it)按装到Python本地副本中
终端中命令:$ sudo setup.py install
/usr/lib/python3.4/distutils/dist.py:260: UserWarning: Unknown distribution option: ‘descripthin’
warnings.warn(msg)
running install
running build
running build_py
creating build
creating build/lib
copying method.py -> build/lib
running install_lib
copying build/lib/method.py -> /usr/local/lib/python3.4/dist-packages
byte-compiling /usr/local/lib/python3.4/dist-packages/method.py to method.cpython-34.pyc
running install_egg_info
操作完后会看到目录中多了build和dist目录及MANIFEST文件。
- 构建成功,測试代码
直接在idle中測试:
import method
method.print_test(["item1","item2","item3"])
測试函数调用须要加上method,是python中命名空间规定。
Python中的全部代码都与一个命名空间关联,主程序中的代码与”main“命名空间关联。我们单独的代码模块自然自己主动创建一个与代码块同名的命名空间。
所以须要带上method.print_test。
from method import print_test
print_test()
//也能够这样用,可是假设此命名空间有同名时会冲突失效,个人觉得还是第一种比較好。
成功打印出item则标识成功安装。
文中实例源码已上传GitHub, 有兴趣的同学欢迎一起交流学习。
Python入门-函数的使用到程序的公布安装的更多相关文章
- Python入门-函数进阶
昨天我们简单的了解了函数的定义,调用,以及传参,其实还有一个更重要的传参:动态传参,让我们继续昨天没有说完的,以及今天我要分享的东西. 一.动态传参 之前我们说过了传参,如果我们需要给一个函数传参,而 ...
- Python入门 - 函数方法
本节主讲python函数的基本用法,主要包括传递参数.匿名函数和变量作用域. 一.传递参数 python除了传递必需参数外,还可以传递默认参数,不定长参数和关键字参数. 1. 传递必需参数 def m ...
- Python入门-函数
定义:将一组语句的集合通过一个名字(函数名)封装起来,要先执行这个函数,只需要调用其函数名即可.特性:1.减少重复代码2.使程序变的可扩展3.使程序变的易维护 函数参数:形参和实参形参:位置参数,关键 ...
- PYTHON定义函数制作简单登录程序(详细)
环境:python3.* 结构: dict_name = {} #定义一个字典,后面用到 def newuser(): #定义注册函数 prompt1='login desired:' while ...
- python入门-函数(二)
1 函数传递参数 def greet_users(names): """向列表中的每个用户都发处问候""" for name in name ...
- python入门-函数(一)
1定义函数并且调用 注释语句""" """ def greet_user(): """显示简单的问候语&qu ...
- python入门(7)Python程序的风格
python入门(7)Python程序的风格 Python采用缩进方式,写出来的代码就像下面的样子: # print absolute value of an integer: a = 100 if ...
- python入门学习:7.函数
python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数 使用关键字def ...
- Python入门篇-函数、参数及参数解构
Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...
随机推荐
- linux----suid\sgid
1.suid和sgid 都是针对二进制程序来说了,bash脚本不在它的作用范围. 2.如果一个二进制文件设置有suid,那么在userA用户执行它时,会以文件所属用户的身份来执行.sgid同理: 3. ...
- Oracle EBS-SQL (MRP-1):检查期间内计划完成的任务.sql
/*期间内车间任务下达记录数不包含配件任务*/ select WE.DESCRIPTION 任务说 ...
- Delphi XE6 试用Android视频采集
FMX支持视频采集,具体见FMX.Media,提供了很类支持音频.视频的处理. 按帮助文档,用Note3做了测试,结果,效率太低,不可用. 具体可查询帮助Video Capturing一节,我就是按这 ...
- editplus使用:非法字符: \65279
众所周知,在跨程序的工程中,统一编码是至关重要的,而目前最普遍的则是统一采用“utf8”编码方案. 但是在采用utf8方案的时候,请注意编辑器的自作聪明. 比如editplus. 原因就在于某些编辑器 ...
- ubuntu texlive 中文的配置方法
\documentclass[12pt]{article} \usepackage{CJKutf8} \usepackage{indentfirst}%设置第一段缩进,英语中从第二段才有缩进 \use ...
- Win7下unetbootin-windows-585工具制作Ubuntu12.04 U盘启动盘
1.下载unetbootin-windows-585工具,网址如下: unetbootin-windows-585 2.unetbootin-windows-585制作U盘启动盘 准备好1个4G的U盘 ...
- linux学习之(三)-文件操作命令
创建一个空文件: touch 文件名 例:touch tom 查看: 查看一个文件的内容命令cat 文件名 例:cat tom 注:cat命令并不能显示文件的所有信息,但屏幕显示的 行数是有 ...
- windows开机启动nginx
1 .http://www.cuplayer.com/player/PlayerCode/Nginx/2014/0919/1577.html 2. http://www.cnblogs.com/xus ...
- 探求C#.Net中ArrayList与Array的区别 【转】
ArrayList与Array的区别概述 ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例如 ...
- Qemu之Network Device全虚拟方案二:虚拟网卡的创建
上文针对Qemu在前端网络流路径的建立方面做了具体的描写叙述.数据包从Host的物理网卡经过Host Linux内核中的Bridge, 经过Tap设备到达了Qemu的用户态空间.而Qemu是怎样把数据 ...