Python是一门语法优雅,功能强大,开发效率高,应用领域广泛的解释性语言. 其有非常多的优点,但是也并不是完美的,除了大家都知道的执行速度不够快,Python2和Python3的兼容问题,以及GIL锁,在其语法上也有一些特点(是否是缺点见仁见智啦): 1. 使用可变对象作为函数默认值 代码如下: 在Python中,字典,集合,列表等等对象不适合作为函数默认值.因为这个默认值在函数创建时就会生成, 每次调用都调用了这个对象的”缓存”. 2. bool是int的子类 我们可以用以下代码来测试: 我…
Python中支持相对导入语法,即可以相对于某一个package进行导入,具体语法如下: # 导入"./dir2/spam.py", .表示当前目录 from .dir2 import spam # 导入"./../dir3/spam.py", .表示当前目录, ..表示上一级目录 from ..dir3 import spam 要使用相对导入语法,必须满足以下3个条件: 1 该语法只能在package中使用(即使用该语法的文件位于可以位于一个普通的package中…
python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了,对象需要靠表达式建立处理,而表达式往往存在于语句中,多条语句组成代码块,多个代码块再组成一整个程序.python的核心其实是由语句和表达式组成.所以在这里简单探讨一下python中的语句和表达式. 因为以后可能会接触到两个版本的python,所以这里讲一讲python2与python3的语句差异: 1.python2中没有nolocal语句. 2.prin…
在Python中,如果import的语句比较长,导致后续引用不方便,可以使用as语法,比如: import dir1.dir2.mod # 那么,后续对mod的引用,都必须是dir1.dir2.mod dir1.dir2.mod.X 那么,为了简化输入,可以使用as语法: import dir1.dir2.mod as m # 那么,后续对mod的引用,可以直接使用m m. X # 需要注意的是,使用as语法之后,只能通过as后面名字来访问导入的moudle import mod as m m.…
在Python中,一个目录被称为一个package.import和from语法除了导入module文件之外,还可以导入package,语法如下: # import语法 import dir1.dir2.mod #from语法 from dir1.dir2.mod import x 上面的导入语句中,.用来分割目录和文件名,上面导入的目录结构为dir1/dir2/mod.py.当然,也可以只导入目录: import dir1 import dir1.dir2 from dir1 import di…
python 函数 定义 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 特性 减少代码重复 使程序变得可扩展 使程序变得易于维护 函数的创建 python中创建函数,需要使用__def__关键字,后面写函数的名字,然后是形参列表,大体如下: def 函数名(形参列表): 函数体...... return 返回值 其中形参列表和 return返回值并不是必须的. 函数的使用 想要调用函数程序,需要以函数名加括号的形式进行调用,而括号内可以传入参数…
from module import *的语法在Python 3.X和Python 2.X中的使用稍有区别: 在Python 3.X中,from module import *无法在函数里面使用,而在Python 2.X中,虽然可以使用,但是Python会给警告,原因是,这样用,Python无法在编译期(即函数运行之前)检测出这些导入进来的局部变量.…
“”“” 什么是装饰器? """ 还是通过一个例子来慢慢说明 先看下面的例子 def func_1(x): return x*2 def fun_2(x): return x*3 def fun_3(x, y i, j): return x(i)+y(j) r = func_3(func_1,func_2,2,3)  #把函数引用作为参数传递给func_3 print(r) #通过上面的例子明白:函数的参数可以是函数,也可以是一个类,其实可以是任何类型 def runtime…
目录: 生成随机数 将一个字符串变为datetime类型,并且获取星期几 1.生成随机数 假设我们要操作的list如下: >>> import random >>> list1 = ['apple','pen','piple','have','an'] 1.1 随机选取某个字符串 >>> random.choice(list1) 'piple' >>> random.choice(list1) 'an' choice函数的后面只能跟一…
解释: Python 中的isinstance函数,isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo) 如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True.如果object不是一个给定类型的的对象, 则返回结果总是False. 如果classinfo不表示一个类(类型对象), 那么它要么是一个类的元组, 或者递归地包含这样的(由数据类型构成的)元组.其他的序列类…
Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下   "备忘"的定义 "memoization"(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词"memorandum"(备忘录),意思是"被记住".虽然它和单词"memorization"在某种…
isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo)   如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True.如果object不是一个给定类型的的对象, 则返回结果总是False. 如果classinfo不表示一个类(类型对象), 那么它要么是一个类的元组, 或者递归地包含这样的(由数据类型构成的)元组.其他的序列类型是不被允许的. 如果classinfo不是一种…
python中最基本的语法格式大概就是缩进了.python中常用的循环:for循环,if循环.一个小游戏说明for,if ,break的用法. 猜数字游戏: 1.系统生成一个20以内的随机数 2.玩家有6次机会进行猜猜看,每次猜测都会有反馈结果,猜大了,猜小了或是猜对了--结束 3.6次机会中,猜对了,玩家赢 4,6次机会中,没猜对,系统赢. 代码如下: [root@localhost python-scripts]# cat 12.py #!/usr/bin/python#coding=utf…
在Python中,除法有两种:/和//. X / Y 对于Python2.X来说,如果两个操作数都是整数,那么结果将向下取整(这个和C里面的不同,C里面是向0取整),也就是说,如果结果本来是-2.5,那么向下取整为-3,如果结果本来是2.5,那么向下取整为2:如果两个操作数有浮点数,那么就是浮点数除法,结果就是浮点数除法:对于Python3.X来说,不管操作数有没有浮点数,都是浮点数除法: / - #.X #.X . #C . / - #.X . 余数:-1.0 #.X . 余数:-1.0 #C…
Python中少有人回答的问题 The Python IAQ: Infrequently Answered Questions 1 Q: 什么是"少有人回答的问题(Infrequently Answered Question)" ? 一个问题之所以很少有人回答,要么是因为很少有人知道问题的答案,要么是因为它涉及到一个晦涩而隐蔽的知识点(但可能是你关心的).我过去认为是我在Java IAQ中发明了这个词组,但是它也出现在了以数据丰富而著称的About.com Urban Legends网…
1.简介 在Python中定义函数的基本格式为: def <函数名>(参数列表): <函数语句> return <返回值> Python中的函数形式比较灵活,声明一个函数不需要声明返回值类型,也不需要声明参数类型.在使用函数之前必需先定义函数. 下面是一个基本使用案例: ''' 多行注释:定义sum函数,求和. ''' def sum(t): result = 0; for e in t: result+=e; return result; #单行注释:将set对象传入…
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python中的lambda的“一个语法,三个特性,四个用法,一个争论”.欢迎阅读和沟通(个人微信: slxiaozju). 由于文章是从我的公众号上复制过来的,因此排版不整齐,但是内容绝对充实,欢迎关注公众号[测试不将就],阅读原文 一个语法在Python中,lambda的语法是唯一的.其形式如下: lamb…
在其他程序语言中,else 似乎只是与 if 关键字有缘分.而与其他的关键字没有联系,不能搭配使用,而在python中,else 除了与 if 匹配外, 还可以与for.while/ try等关键字匹配使用. for 只有当 for 循环进行完毕时,也就是说 for 循环中没有关键字 break 来终止循环,else 中的代码才能执行,在java .C++等语言中,我们通常通过一个标示来判断循环有没有执行完,而在Python中,通过 else 代码块可以很简单的实现这个功能,如寻找一个字符串是否…
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python中的lambda的"一个语法,三个特性,四个用法,一个争论".欢迎阅读和沟通(个人微信: slxiaozju). 由于文章是从我的公众号上复制过来的,因此排版不整齐,但是内容绝对充实,欢迎关注公众号阅读原文 一个语法 在Python中,lambda的语法是唯一的.其形式如下:  lambd…
#Python的基本语法: #1.了解缩进 #Python中没有{}来表示一个代码块,但是Python使用缩进来完成区别代码框架 #那么在Python中一个缩进一般等于4个空格,当然你也可以使用TAB键来完成缩进,但是必须保证长度一致即可 #当表达分支.循环.函数.类的时候通过使用冒号(:)来表名进行缩进   #2.了解注释 #Python中的单行注释是采用#+注释来完成的 #Python中的多行注释是'''+注释内容+'''来完成的 ''' 多行注释的例子: 这是一个最好的时代,也是一个最坏的…
当我发现要写python的面向对象的时候,我是踌躇满面,坐立不安呀.我一直在想:这个坑应该怎么爬?因为python中关于面向对象的内容很多,如果要讲透,最好是用面向对象的思想重新学一遍前面的内容.这个坑是如此之大,犹豫再三,还是只捡一下重要的内容来讲吧,不足的内容只能靠大家自己去补充了. 惯例声明一下,我使用的版本是 python2.7,版本之间可能存在差异. 好,在开讲之前,我们先思考一个问题,看代码:…
Python的for...else和while...else语法,这是Python中最不常用,最为误解的语法特性之一. Python中的for.while循环都有一个可选的else分支(类似if语句和try语句那样),在循环迭代正常完成之后执行.换句话说,如果我们不是除正常以外的其他方式退出循环,那么else分支将被执行.也就是在循环体内没有break语句.没有return语句,或者没有异常出现. 1.break情况 下面我们来尝试在循环中执行break退出 lucky_number.py lu…
Python中导入module文件有两种方式:import和from.这里并不会列举import和from的具体使用方法,而是比较两者之间的差别. 对于from语句来说,它其实是等价于下面的import语法: from module import name1, name2,... # 等价于 import module name1 = module.name1 name2 = module.name2 del module 通过等价语法,我们可以发现: 1 from语法实际上还是需要导入整个模块…
Python中复制语法有6种 Basic Form >>>spam = 'spam' Tuple assignment >>>spam, ham = 'spam', 'ham' List assignmen >>>[spam, ham] = ['spam', 'ham'] Sequence assignment >>>a, b,c,d = 'spam' Extended sequence unpacking(Python 3.X) &…
"人生苦短,我用Python".Python编程语言是最容易学习.并且功能强大的语言.只需会微信聊天.懂一点英文单词即可学会Python编程语言.但是很多人声称自己精通Python,然后自己却写不出Pythonic的代码,对很多常用的包不是很了解.万丈高楼平地起,咱们先从Python中最最基础的开始. 01 Python的优点 Python是一种类似人类讲话的语言 极其简单易学的语言 也是开源的语言之一 可移植性良好,在各大平台都可以运行,比如Windows.Mac.Linux上都可运…
问:python中如何判断一个集合是另一个集合的子集? 答:用issubset()方法 语法: A.issubset(B) 返回: True 如果A是B的子集. False 如果A不是B的子集. 样例: A = {1, 2, 3} B = {1, 2, 3, 4, 5} C = {1, 2, 4, 5} # Returns True print(A.issubset(B)) # Returns False # B is not subset of A print(B.issubset(A)) #…
正则表达式是用来处理字符串的强大工具,他并不是某种编程云. 正则表达式拥有独立的承受力引擎,不管什么编程语言,正则表达式的语法都是一样的. 正则表达式的匹配过程 1.一次拿出表达式和文本中的字符比较. 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符则匹配失败. 3.如果表达式中有两次或便捷,这个过程会稍微有一些不同. 下面举例一些符号 [....] 字符集(字符类).对应的位置可以是字符集中任意字符.字符集中的字符可以猪哥列出,也可以给出范围,如[abc]或[a-c].第一个字符…
用python也用了两年了,趁这次疫情想好好整理下. 大概想法是先对python一些知识点进行总结,之后就是根据python内核源码来对python的实现方式进行学习,不会阅读整个源码,,,但是应该会把数据结构的实现.函数调用过程.以及python虚拟机的基本原理根据源码解释下. 当然限于笔者只是一个弱鸡,,,如内容有疏漏的地方或者是一些错误,希望看到的大佬不吝赐教. 第一部分 python语法总结 当然如果对python语法还是一无所知的同学请移步缪雪峰或者菜鸟教程等学习网站看一遍再过来,,,…
这篇文章主要介绍了Python中的特殊语法:filter.map.reduce.lambda介绍,本文分别对这个特殊语法给出了代码实例,需要的朋友可以参考下filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回: >>> def f(x): return x % 2 != 0 and x % 3 != 0>&…
在python中,@符号常被称作语法糖(装饰器),在某函数定义时,用以包装该函数,以达到截取,控制该函数的目的. def d(f): print('d...') k=f #此处保留了传进来的原函数 f def f(x): return k(x)*2 return f #此处不能写成f(x),f是函数句柄,如果带(),则调用,这里只返回句柄. @d def e(x): return x**2print(e(3)) 比如上面代码,@d,就等价于e=d(e),d(e)的返回值为f,f在d中是一个函数句…