您的位置:

python实现组织架构图的简单介绍

本文目录一览:

python查询AD域信息的方法总结

很多公司都在使用AD域来管理用户及组织架构,我们可以使用Python来进行自动化运维。网上很多资料不全而且都很古老,特地根据最近的代码编写经历,编写了如下通过python查询AD域信息方法总结:

环境:

原理汇总 :

通过LDAP协议来连接及访问AD域服务,可以把AD域理解成某种类型数据库,我们通过AD账号和密码来访问其中存储数据库字段信息。为了更好地了解其中字段及含义,建议下载一个ADExplorer.exe绿色工具软件,直接去微软官网下载免费的绿色软件,以下是下载链接(查看左边的菜单Networking Utilities中包含的Active Directory Explorer):

通过这个软件,我们可以很方便地查看各种字段信息,为后面的连接获取足够的前提信息 。

#建立和关闭域连接

以上代码把连接和关闭连接分开,是为了避免在一个程序中需要频繁调用连接时,避免经常关闭,可以节省大量的资源和时间,可以在程序开头建立连接,在程序退出时才关闭即可

#模糊查询组信息

#模糊查询域中的workstation信息

查询到所需信息以后,还可以直接调用pandas,保存为excel文件

RobotFramework 自动化框架环境搭建及使用

一、为什么要做自动化?

前提:主流程稳定,周期长,脚本可重复利用。

1.节省人力资源

2.提高效率

3.面试需要

二、什么是RobotFramework:

基于Python的关键字驱动的自动化框架。

1. 基于Python:就是由python语言开发的这个框架。

2.关键字驱动:关键字驱动测试又称为表格驱动测试,是自动化测试的一种方法,是数据测试的一种改进方法。关键字驱动主要包括测试步骤、测试步骤中的对象,测试对象执行的动作,测试对象需要的数据

3.自动化框架?:是应用于自动化测试,框架提供可重用的基础自动化测试平台,提供自动化测试执行和管理功能的组织架构。

三、pip的常用方法:

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

以下在win10_x64 cmd中操作:

安装:pip install 包名

eg:pip install robotframework

安装指定版本:pip install 包名==版本号

eg:pip install robotframework==1.7.4.1

升级指定包:pip install --upgrade 包名

eg:pip install --upgrade robotframework

卸载:pip uninstall 包名

eg:pip uninstall robotframework

搜索安装包:pip search 包名

eg:pip search robotframework

查看当前电脑上已经安装的包:pip list

查看当前电脑上可以升级的包:pip list -o

四、rf的安装:

安装RF自动化框架:pip install robotframework

安装RF自动化框架IDE:pip install robotframework-ride

安装wxpython(ride依赖wxpython):pip install wxpython

ps :实际上新版本pip在安装ride时会自动安装所需依赖,也就是wxpython

版本信息:Win10 x64 + Python 3.7.7 + rf 3.1.2 + ride 1.7.4.1 + wxpython 4.0.7.post2

ps :ride 1.x版本不支持Python 3.8及以上,ride 2.x(开发中)支持Python 3.8

rf日志中文乱码解决方法:修改文件 python安装目录下 Libsite-packagesrobotidecontrib estrunner estrunnerplugin.py 第 565 行,将 SYSTEM 改成 OUTPUT ,重启ride工具。

五、元素定位:

id :以百度搜索输入框为例

在RF中写法: id=kw

name :以百度搜索输入框为例

在RF中写法: name=wd

xpath :Xml Path Language

1. 绝对路径:从html根部逐级(从上至下)查找

/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input

在RF中写法:xpath=/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input

2.相对路径:根据节点的上下文进行查找

eg://p/form/span/input 这里是在html中找一个p,p里面包含一个form,form包含一个span,span包含一个input,找有这样一个四层的关系的input标签,要注意如果html中有多个符合这种层级关系的input,会默认选第一个,也就是说这种方式未必是完全准确的。

3. xpath相对定位我们还可以根据元素的属性来查找:

eg://p/form/span[1]/input[@type] 这里是找符合这样一个层级关系并且有'type'这个属性的input标签

在RF中写法:xpath=//p/form/span[1]/input[@type]

eg://p/form/span[1]/input[@type='submit'] 这里是找符合这样一个层级关系并且'type'这个属性的值为'submit'的input标签

在RF中写法:xpath=//p/form/span[1]/input[@type='submit']

eg://p/form/span[1]/input[contains(@type,'sub')] 这里是找符合这样一个层级关系并且'type'这个属性的值包含'sub'的input标签

在RF中写法:xpath=//p/form/span[1]/input[contains(@type,'sub')]

以上是根据属性,如果是下面这样的a标签,我们还可以根据链接文字来进行定位

点我

eg://a[contains(text(),'点我')] 这样就是找所有a标签并且文字为'点我'的元素了

在RF中写法:xpath=//a[contains(text(),'点我')]

小技巧:

在 Chrome-F12-Console 中根据Xpath寻找元素:使用 $x (""),引号中填写xpath路径,如$x("/html/body/p[1]/p[1]/p[3]/p/p/form/span[1]/input")

css:

id: 以百度搜索输入框为例

在RF中写法: css=#kw

class: 以百度搜索输入框为例

在RF中写法: css=.s_ipt

css根据属性定位 :

[id='kw'] 表示查找id值为'kw'的元素

[name^='w'] 表示查找name值为'k'开头的元素

[class$='ipt'] 表示查找class值为'ipt'结尾的元素

[autocomplete*='f'] 表示查找autocomplete值中包含'f'的元素

[id='kw'] [name^='w'] 表示查找id值为'kw'并且name值为'k'开头的元素

在RF中写法:css=[id='kw'] [name^='w']、css=[class$='ipt']、

css=[maxlength='255']、css=[autocomplete='off']

ps:id和class也是属性,只是在css中针对id和class多了一种简单的写法,如上面的

css=#kw、css=.s_ipt

css根据标签定位:

input

表示查找当前页面所有input标签

在RF中写法:css=input

a,input

表示查找当前页面所有a标签和input标签

在RF中写法:css=a,input

span input

表示查找span标签下的所有input标签,哪怕是span下下级的input

在RF中写法:css=span input

spaninput

表示查找父元素为span标签的所有input标签,注意和span input的区别

在RF中写法:css=spaninput

span+input

表示查找紧挨在span元素后的第一个input元素

在RF中写法:css=span+input

span~input

表示查找紧挨在span元素后的所有input元素

在RF中写法:css=span~input

ps :其实大家都知道,因为页面上只依靠标签定位的话重复的可能性太大了,所有我们可以采用 标签 + 属性 的方式来进行定位

例如 spaninput[id='kw'][name^='w'] 意思是查找所有父标签为span的input标签,并且该标签中有属性id的值为kw且属性name的值为w开头

在RF中写法:css=spaninput[id='kw'][name^='w']

小技巧:

在 Chrome-F12-Console 中根据css寻找单个元素:

使用 $ (""),引号中填写css选择器,如$("spaninput[id='kw'][name^='w']")

在 Chrome-F12-Console 中根据css寻找多个元素:

使用 $ (""),引号中填写css选择器,如$("spaninput[id='kw'][name^='w']")

好程序员Python技术之五分钟了解Django框架设计

Python编程语言的持续火爆,在最新Tiobe编程语言排行榜中位列第五,热度持续增加,尤其是在 AI 和 大数据时代,Python是 AI 和大数据时代的第一开发语言。这已经是一个不争的事实了,唯一的悬念就是谁能坐上第二把交椅了。Python是胶水语言,应用及其广泛。在web应用领域,国内知名互联公司:有号称文艺青年的圣地--豆瓣评分,曾经主打高端问答知识社区的--知乎,唯有爱和美食不可辜负的--下厨房……

谈到在web应用领域,除了Python的语法,Django是Python后台一个最重要的框架。今天千峰教育的讲师和大家简单的聊一下Django框架。

方法/步骤

问题1:什么是软件框架? 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职,通过部门之间的配合来完成工作,这些部门就形成了一个公司的组织架构。从某种意义上来说,公司就是一种框架。那么对应到软件设计上来说,软件框架是由其中的各个模块组成的,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发。 一个公司,它是针对某一市场而成立的,而软件框架的设计,也是针对某一类软件问题而设计的,其目的主要是提高软件开发效率。

问题2:Django的简介和设计思想? Django是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发原则。

问题3:MVC简介 MVC的全拼为Model-View-Controller,最早在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。 现MVC是一种架构设计模式,是一种设计理念。是为了达到分层设计的目的,从而使代码解耦,便于维护和代码的复用。MVC是3个单词的缩写,全称:Model-View-Controller(模型-视图-控制器)。MVC就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。

当前主流的开发语言如Java、PHP、Python中都有MVC框架。 Web MVC各部分的功能 M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。 V全拼为View,用于封装结果,生成页面展示的html内容。 C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果 问题4:Django框架遵循MVC设计,并且有一个专有名词:MVT MVT各部分的功能: M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。 V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。 T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

Python精选5篇教学心得

Python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言,越来越多被用于独立的,大型项目的开发,已被逐渐广泛应用于系统管理任务的处理和Web编程。下面给大家带来一些关于Python 学习心得 ,希望对大家有所帮助。

python学习心得1

最近这段时间我们学习了很多内容,增长了很多关于Python的知识,万事万物是相通的,正如学习新的知识就像吃饭一样。

吃多了就会消化不良,反映到学习上也是一样,不知各位最近的感觉怎样,反正学记是需要一些时间好好消化,掌握到手中,为下一步的知识补齐缺口。

接下来,学记和大家一起回顾一下最近学习的内容,循序渐进,循序渐进。

分支结构

分支结构就像上图一样,是用来选择道路的。

所用的关键字是

If elif else

这三个词的意思分别是

如果 否则如果 其他的

分支语句的写法需要将与关键字与关键字对齐

循环结构

循环结构应用于一些重复的进程

通常我们只接触两种循环

for-in循环 和 while循环

for-in循环适用于

确切的知道到底循环几次

while循环适用于

不知道到底有几次循环

此时要搭配bool 来进行

即 True 和 Flase

关键字

关键字的熟练运用对于今后的开发工作

有非常重要的作用,但这么多关键字我们不能去死记硬背

只有在一个一个代码的验证当中去熟悉去掌握

那样是最可靠的

def 设置模组

len 计算字符串长度

capitalize 获得字符串首字母大写的拷贝

upper 获得字符串变大写后的拷贝

find 从字符串中查找子串所在位置

index 与find类似但找不到子串时会引发异常

startswith 检查字符串是否以指定的字符串开头

endswith 检查字符串是否以指定的字符串结尾

center 将字符串以指定的宽度居中并在两侧填充指定的字符

rjust 将字符串以指定的宽度靠右放置左侧 填充指定的字符

isdigit 检查字符串是否由数字构成

isalpha 检查字符串是否以字母构成

isalnum 检查字符串是否以数字和字母构成

append 添加元素

remove 删除元素

clear 清空元素

sorted 排序

大家可能会有些疑惑,学习这些东西真的有用吗?这些随处可见的基础方面的知识真的有用吗?

我可以非常肯定地告诉大家

有用的!

这些知识就像是建筑工地随处可见的砖石,不管这些砖石怎样的不起眼,但是没有一幢建筑可以离开砖石,学习的过程是枯燥的,不过这也正符合非常现实的一条规律。

学如逆水行舟,不进则退!

也正是因为它枯燥苦闷,学习有难度,才保证了,我们学习了这些知识以后,可以靠它们为生,在这个知识时代闯出自己的一片天!

不要放弃,绝对不要放弃!

黎明之前是最黑暗的!

为了自己的未来好好坚守吧!

青年学记 陪伴着各位青年

python学习心得2

python是一门非常有潜力的高级语言,历经多年的发展,其在编程上发挥着越来越大的作用。在这学期中,通过选修python课上的基础知识学习,我对python也有了一定的认识。而且,在字符串上的处理,python相对于c语言也是给程序员极大的便利。而python不仅如此,它的库也很多,正因为它强大的库,让编程变得不再艰难。但是,我认为python虽然在许多方 面相 对于c语言比较方便,但也有其相对于弱一点的方面,比如说for循环等方面。虽然一学期下来,我对python的学习也仅仅只是它的基础方面,但python的强大,也是足足地吸引着我,希望自己能够在不断地学习中,将python学习的更加好。

python是一门非常有潜力的高级语言,历经多年的发展,其在编程上发挥着越来越大的作用。在这学期中,通过选修python课上的基础知识学习,我对python也有了一定的认识。

在学习python的第一节课上,其对我的最初的印象就是,相较于我学习过的c语言编程,它更加的简洁。所有的变量都不需要像c语言编程那样需要提前去定义,这样给了编程者很大的自由空间与方便。如x=2,即可同时完成变量的定义与赋值。对于简化程序的代码,起到了许多的作用。而且,在字符串上的处理,python相对于c语言也是给程序员极大的便利。在c语言中,只能用字符类的数组对字符串进行相应的操作,步骤也是相对于比较繁琐的,而在python中,当我们需要创建一个字符串的时候,只需要在创建字符串的时候用“s=”就可以了。而python不仅如此,它的库也很多,正因为它强大的库,让编程变得不再艰难。我们只需要调用库中的函数,而对于函数的具体实现,也没有特殊的需求。

但是,我认为python虽然在许多方面相对于c语言比较方便,但也有其相对于弱一点的方面,比如说for循环等方面。不过也依然不会影响到python的强大,而随着近几年来的发展,python的受欢迎度也越来越高,而它的运用的领域也是越来越多,比如人工智能和大数据等领域,python都是在其中扮演者重要的角色。虽然一学期下来,我对python的学习也仅仅只是它的基础方面,但python的强大,也是足足地吸引着我,希望自己能够在不断地学习中,将python学习的更加好。

python学习心得3

由于我是自学Python,非科班出生,所以只能分享一些关于我的学习心得,如果有不对地方欢迎指正。

不过非科班出生虽然是一个痛点,但是在工作上,我其实不输给我其他同事,这点我倒是很有自信,而且我也统一一句话“目前互联网上的免费编程课程,足够让你成为一个合格的码农”。

编程入门

我刚开始学习编程,主要是因为自己想动手做个网站,但是由于技术原因,再加上朋友都比较忙,最后抱着“求人不如求己”的想法,干脆自学。

编程难不难?

这个问题我觉得所有认真学过的人,都一定会肯定告诉你编程不难,但是精通那是相当困难的。

如果你还没去学习,就觉得编程一定很难,那么其实你是没有资格说这句话的,任何事情一定是要去尝试后,才能这么说。

编程其实很像堆积木,然后根据需求,把东西造出来,可以是房子,也可以是桥梁。

学习编程无非运用这些积木,来创造你要的东西。

编程语言选择

这边说个题外话,关于当时编程语言的选择,很多时候我觉得不是你选择编程语言,而是编程语言选择你,也就是你的“本命编程语言”。

人的性格会影响你适合的编程语言,比如你做事有条理,喜欢定期清理房间,那么可能C语言很适合你;如果你不喜欢打扫房间,实在受不了,才打扫一次,可能你适合Java。

哈哈,开个玩笑,不过确实有这种很玄的存在。

我当时在编程语言的选择上,用了一个笨 方法 。

我跑到w3cschool上面,把所有编程语言的第一章都去试了一遍,看看自己喜欢哪个语言,然后就选哪个语言,如果你不知道选哪门语言,可以用我的方法试试看。

至于编程语言,没有高低之分,因为无论你学习哪门语言,你都非常有市场,而且你都能够拿到高薪,关键是哪门语言适合你,并且能够让你有兴趣学下去,能学好,这个很关键。

兴趣是学习编程最大的驱动力!

为什么是Python

说下为什么选择Python?

因为简单,Python是公认的最容易入门的编程语言,而且也是公认有发展前景的编程语言,适用于机器人、大数据、人工智商等未来高科技。

基于以上的原因,我选择Python来作为自己的入门语言,而且我觉得我适合Python这么语言。(因为我很懒)

之前有个梗,大概就是其他编程语言在讨论某个问题,怎么解决,而Python的程序员已经下班了,由此可见Python的效率。

总结 :Python的语言特点就是“一气呵成,痛快如拉稀”。

学习心得

由于我是自学的,所以参考的网站比较多,小伙伴可以按照我的学习路线,一般来说不会出现什么问题。

基础:教程+视频

进阶:视频+实践

进阶pro:视频+实践+书籍+交流

基础

刚开始学习的时候,我比较推荐w3cschool和菜鸟教程这两个网站。

w3cschool-学编程,从w3cschool开始!

菜鸟教程 - 学的不仅是技术,更是梦想!

这两个网站在我看来,是编程自学的福音。

w3cschool这个网站手册非常棒,另外这个网站的编程微课以及编程实战对新手来说非常友好!

我当时就是靠这两个,引发我学习的乐趣,不然对着枯燥的代码,说实话,很无聊的。

菜鸟教程,这个网站的实例是最棒的,很多时候,你不仅仅要自己看教程,还要去看看为什么,而菜鸟教程的实例就能够让你清晰的知道,为什么,并且会原来如此。

总的来说,这两个网站就像新手村刚出来的剑和盾!是新手入门绝对不能少的,尤其是w3cschool,强烈推荐。

还有一个就是视频,视频我是在慕课网上面看的,我很喜欢慕课网这个网站,网站风格很棒,而且视频也很清晰。

也可以在阿里云上面看Python的视频,也很不错,并且是免费的。

进阶

进阶结束后,代表你是个初级工程师。

这一步实践非常重要,你要自己动手,做一些小玩意,实践才是最重要的,在实践中发现问题,那是学习最快并且效率最高的时刻。

你可以先给自己定下一个目标,比如我要做一个简单的页面,或者我要做一个简单的小程序。

然后就开始动手去实践,这步很重要。

同时还是要多看书籍。

进阶pro

到这一步,我建议务必买书,你需要书籍帮你反向梳理你的知识,这决定了你以后的高度,而不是这个也懂,那个也懂,但是东西就是做不出来。

我记得当时我买完书,看完后的第一感受就是:原来这个世界是这样的!

书会非常系统性的帮你梳理你自己学过的知识!

这里只推荐两本书:《Python入门手册》和《Python核心编程》

小伙伴可以自己去亚马逊购买。

然后就是和身边的小伙伴交流!

多看看别人的代码,自己多敲敲代码,是必经之路,也是一定要做的。

以上,希望对想入门Python的小伙伴能够提供一点点帮助。

python学习心得4

017年11月,一群编程零基础的小伙伴们成立了Python学习小组,12名学员从此夜以继日地奔赴学习的征程。一个月过去了,从在屏幕上用最简单的语句打印出“Hello, Python; Hello, World”开始,我们逐步地学习Python语法,学习操作列表、字典,学习For,While,If语句,现在遇到了第一个难点:类。通过研读、练习、交流、讨论,作为程序界的小白,我们逐步地理解了类的概念,明白了面向对象与面向过程编程的差异,以下是我们的小小心得,与大家分享:

编程基本思想

现实世界中,每个复杂的事务都可以拆分为多个组成部分,其中的每一部分就可称之为对象。比如要实现一个很大很复杂的项目,我们可以把项目拆分成不同的组成部分,然后分别对不同部分通过编程实现,最终再把各个部分组装起来完成整个项目。这让我们能够从整体上来控制项目,从而让程序开发更有效。

比如汽车制造,汽车厂所做的仅仅是各个部件的组装和匹配,而各个部件的生产是由相对专业的厂商完成。如果需要研发新型号汽车,整车厂所考虑的是如何对各个新式的零部件进行新的组装和匹配,而不是从头到尾重新生产一辆汽车。

面向对象的编程

VS

面向过程的编程

面向过程编程是针对一个需求的具体实现过程,但是对于大型项目的复杂需求,一步一步的做,这种编程效率显然是低下的。

面向对象编程则是对项目进行拆分后(一般按照功能拆分),分别实现,再将各个对象组装起来。因此简单的小程序使用面向过程方法编程更适合。面向对象的编程特性是易维护(可读性高),效率高,质量高(重用性),扩展性好(高内聚,低耦合)。

对象

通俗的讲,对象就是事物,一个公司、一个部门、一个人,甚至一本书都可以是一个对象,程序员可以自由决定把什么作为对象。

比如eHR系统,需要对组织架构,员工进行管理,所以使用的对象可能是公司,部门,岗位,员工,等等。对象可大可小,可复杂也可简单,如果仅仅是做一个考勤系统,员工这个对象一定要比eHR系统中的员工对象简单。

现实世界中,类代表一组有共同特性的事物,把不同对象之间的共性抽象出来,就形成类的概念。比如说男人、女人可以抽象成人这个类;处长、秘书可以抽象成员工类。至于类如何去抽象,粒度的粗细,这是一个需要在学习和实践中摸索的过程。

实例

以下是一个实例,大家体会一下:

1. 定义父类:

class Employee:

def __init__(self, name, age): #抽象员工共性(名字,年龄)

self.name = name

self.age = age

def signON(self):

print(self.name+" sign on.") #抽象签到的动作

def work(self):

print(self.name + " on work.") #抽象工作的动作

2. 继承出子类:

class MEmployee(Employee): #继承父类的共性

def __init__(self, name, age):

super().__init__(name, age)

def work(self): #重写子类的方法(抽象出从事管理岗位工作的动作)

print(self.name + " on manager_work.")

3. 继承出第二个子类:

class TEmployee(Employee):

def __init__(self, name, age, devLanguage): #继承父类的共性,增加语言的属性

super().__init__(name, age)

self.devLanguage = devLanguage

def work(self): #重写子类的方法(抽象出从事技术岗位工作的动作)

print(self.name + " on technology_work.")

def showLanguage(self): #增加子类的方法(抽象出会某种编程语言的动作)

print("use "+self.devLanguage+" language.")

在上面的程序中,我们先定义了一个父类:包含员工的姓名、年龄等一般特性,可以执行签到、工作这两类动作。在第一个子类中,管理层在前面一般特性的基础上,执行管理工作;在第二个子类中,作为一般员工在前面一般特性的基础上,执行技术工作,从事编程。

python学习心得5

1、定义方法

关键字 def 是方法定义的标志。接下来紧跟方法名和被圆括号所包围的参数列表。方法的主

体语句将在下一行开始并且必须缩进。

方法主体的首句可选择性地是一句字符,用来说明方法的主要功能

例如:

"""print a finabo series up to n."""

2、默认参数值

默认值仅被设置一次,这与以前默认值为可变对象(如列表、字典和多数类实

例时)有很大的区别。

例如:

i=5

def f(arg=i):

print(arg)

i=6

f()

将会输出 5

3、关键字参数

可以通过形式关键字参数调用方法

在方法调用中,关键字参数必须遵循位置参数。 所有的关键参数必须符合方法接受的参数

其中之一。但是他们的次序不重要,这包含非选择的参数。没有参数可以多次接受一个值。

当最后一个形参是__ name 时,它可以接受包含除了形式参数之外的所有关键字的字典,

_ name 必须在__ name 之前出现

4、可变参数列表

正常来说,这些可变参数常常放在正式参数列表的后面,因为它们会包揽所有传递给该方法

的剩余输入参数。任何出现在_ args 参数后低的正式参数会被认为是关键字参数,意味着它

们只能当关键字使用而不是位置参数。

def concat(_ args,sep="/"):

...returnsep.join(args)

...

concat("earth","mars","venus")

’earth/mars/venus’

concat("earth","mars","venus", sep=".")

’earth.mars.venus’

5、拆分参数列表

当参数已经存在列表或者元组中,但是需要分拆以供要求分离位置参数调用的方法,如果单独

分开它们无法使用,就需要写一个方法用 _ 操作符来调用实现分拆列表或者元组中的参数。

同样的使用形式,字典可以用__ 操作符实现关键字参数。

6、形式

lamdba a,b:a+b 该函数表示两个数的和,像内嵌函数

7、代码风格

对于 python,PEP8 作为许多项目应该遵守的编码指导书而做的。 它提出了一种可读而悦

目的编码风格。 每位 python 开发者应该读它。这里抽出一个重要的事项与你分享 :

? 用四个空格代替 tab 键

? 每行不要超过 79 个字符。

? 用空行分离方法和类,大块代码中的方法。

? 必要的时候为每行添加注释。

? 用文档字符串

? 在操作符两边用空格

? 用统一的风格命名自定义的方法和类

? 如果你的代码打算用在国际环境中,请不要用想象的字符编码。Python 默认的是

utf-8,在任何情况下可以用 Ascii .

? 同样的,即使有很少机会让说不同语言的人们读代码或者维护代码,但在定义中不

要用非 ASCII 编码字符。