python中content的用法_学python吗,教你5个python现学现用的有趣用法
在我们使用python的过程中也会遇到一些有意思的用法,这里找到了一些总结有趣的
话不多说,接着看下去吧!!!!python高薪就业(视频、学习路线、免费获取)shimo.im
for-else用法
循环正常结束则执行else语句。一般用于循环找符合条件的元素.
如果找到则 break 调出循环,不会触发 else ;
如果没有找到(完整运行循环)
则 print not found《Effictive Python》
一书中对for-else用法提出了质疑,
主要观点是可以通过封装成函数来取代这一用法,
而封装成函数是更加通用易懂的做法,所以一般不会使用for-else用法.
try-else用法
如果没有触发异常就执行 else
参考
解包用法.
类似这样 a,b,c = ['a', 'b', 'c']
python有趣的解包用.
单行if-else
a = 1b = 3 if a == 1 else 2print('it is one' if a == 1 else 'no')
迭代器传入函数中不用加括号
# 一般是这样a = (i for i in range(10))sum(a)
# 我们可以这样sum((i for i in range(10)))
# 但我们还可以这样sum(i for i in range(10))
# 类似的有' '.
join(str(i) for i in range(10))
or的用法
python中 x or y 表示如果x为真就是x的值,否则为y的值。
我们会经常看到类似这样的用法
(比如函数的一个 value 参数没有设置默认值,这样使用就允许它不赋值)
value = value or {}
# 相当于value = value if value else
{}
and的用法
python中 x and y 表示如果x是假,结果就是x的值.
否则就是y的值x and y and z 多个and连接时.
如果全是真结果就是最后一个的值;如果中间有假的值,结果就是第一个假的值。
举一个例子
def not_empty(a):
return a and a.strip()not_empty(' a ')
# 值为 'a'not_empty(None)
# 不会报错(如果 return a.strip() 就会报错)
# 在处理None的问题上相当于def not_empty(a):
if a is None:
return None
else:
return a.strip()
细细品味and和or的差别,他们逻辑类似,但是实现的功能是不可以相互替代的.or 是结果如果不满意有个善后工作
and是要做一件事之前先检验一下,不能做就不让它做.
if value:
# 要用if value:# 不要用if value == True:
这里总结一下这种情况下什么时候是 True ,什么时候是 .
FalseFalse: 0 0.0 '' []
{}
()
set() None False
True:
' ' 'anything' [''] [0] (None, )
没有内容的可迭代对象.
另外要注意一点,我们用 if 判断一个对象是不是 None 的时候.
要 if a is None 而不要直接 if a .
因为如果是后者,有非常多不是 None 的情况也会判定为 False .
比如空字符串、空列表等,为了精确指定 None 还是要用前者,这也是一种规范。
下划线的特殊使用
python中下划线是一种特殊的变量和符号,有一些特殊的用途.
文档字符串
python有一种独一无二的注释方式,在包、模块、函数、类中第一句,
使用 '''doc''' 这样三引号注释,就可以在对象中用 __doc__ 的方式提取
比较规范的写法是这样的(这里参考 grequests 模块的写法).
def myfun(a, b):
'''add two numbers
:param a: one number
:param b: another number
:returns: a number
'''
print(a + b)print(myfun.__doc__)# 结果为
add two numbers :
param a: one number :
param b: another number :
returns: a number
其实参数还有其他的写法.
除此之外,函数注释还有另一种方式,函数名可以直接调用某个参数的注释,
详见 Python 的函数注释 .
有用的函数
sum的本质
本质:
sum(iterable, start=0) 将可迭代对象使用 + 连接 所以 sum([[1,2],[3,4]], [])
返回结果为 [1, 2, 3, 4]
range(start, stop[, step])
可以直接用 for i in range(10, 0, -1) 降序循环
enumerate循环索引.
for index, item in enumerate(['a', 'b', 'c']):
print(index, item)
输出:a
b
c
管道操作
func1(func2(func3(a)))写成类似a %>% func3 %>% func2 %>% func1.
清晰展示函数执行的顺序,增强可读性.
python本身不带有这样的用法,只是一些库提供了这样的用法.比如pandas和 syntax_sugar
其他
另外,就是一些基础的列表推导式
装饰器
生成器
map reduce filter
链式比较
类的魔术方法
更新补充
for-else的更多讨论
下面引用《Effictive Python》一书中内容:
a = 4 b = 9
for i in range(2, min(a, b) + 1):
print(‘Testing’, i)
if a % i == 0 and b % i == 0:
print(‘Not coprime’)
break
else:
print(‘Coprime’)
随后作者写到:
实际上,您不会以这种方式编写代码。
相反,您需要编写一个助手函数来进行计算。
这样的助手函数是用两种常见的样式编写的。
第一种方法是在找到所要寻找的条件时尽早返回。
如果您通过循环,则返回默认结果。
def coprime(a, b):
for i in range(2, min(a, b) + 1):
if a % i == 0 and b % i == 0:
return False
return True
第二种方法是有一个结果变量,该变量指示您是否在循环中找到了要查找的内容。
一旦你发现什么,你就会跳出圈套。
def coprime2(a, b):
is_coprime = True
for i in range(2, min(a, b) + 1):
if a % i == 0 and b % i == 0:
is_coprime = False
break
return is_coprime
结尾
对于不熟悉代码的读者来说,这两种方法都要清楚得多。
从Other块中获得的表现力并不比那些希望在将来理解您的代码的人(包括您自己)所承受的负担更重。
像循环这样的简单构造在Python中应该是不言自明的,您应该完全避免在循环之后使用其他块。
总结起来就是for-else的优势是可以被写函数的方式替代的
读者福利,点击链接即可领取相关学习福利包:python高薪就业(视频、学习路线、免费获取)shimo.im
是安全网站放心,继续访问就可以领取了
就业系列:
有方向有目标的学习才能节省时间,没有方向目标的学习,就纯粹浪费时间。
部分视频展示:
电子书系列:
视频容易理解,电子书作为辅助,有时候看视频不方便可以用电子书作为辅助
python人工智能系列:.
python中content的用法_学python吗,教你5个python现学现用的有趣用法相关推荐
- python中系列的含义_一篇文章让你彻底搞清楚Python中self的含义
刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数? 你看完这篇文章后就会明白所有的疑问. self代表类的实例,而非类. ...
- python中哪些是无序_关于无序集合:无序集合 – 在python中设置
本问题已经有最佳答案,请猛点这里访问. 很抱歉,如果这是一个基本问题,但是我想了解set类型在python中是如何工作的. 来自文档: A set object is an unordered col ...
- python中install语法错误_在“ npm install”之后,出现有关python中语法错误的错误吗?...
我正在尝试为Exokit安装必要的依赖项,但是却收到与Python语法错误有关的错误. 这是我想尝试在浏览器中涉及VR的新内容.我已经从他们的github重新克隆了存储库,并直接从他们的网站下载了.我 ...
- python中如何调用函数_我写了一个函数,如何在python中调用
匿名用户 1级 2015-03-06 回答 Python的特色简单 Python是一种代表简单主义思想的语言.阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Pyth ...
- python中break怎么用_详解Python中break语句的用法
详解Python中break语句的用法 在Python中的break语句终止当前循环,继续执行下一个语句,就像C语言中的break一样. break最常见的用途是当一些外部条件被触发,需要从一个循环中 ...
- python中break的作用_详解Python中break语句的用法
在Python中的break语句终止当前循环,继续执行下一个语句,就像C语言中的break一样. break最常见的用途是当一些外部条件被触发,需要从一个循环中断退出. break语句可以在while ...
- Python中单个下划线“ _”变量的用途是什么?
这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...
- python中的下划线_讲解
python中,下划线 "_""_"" \_" 不管是单独作为变量名或者作为变量名的前缀或者后缀,是有特殊含义的,下面简要的来总结一下. 1 ...
- Python中单个下划线“_”变量的目的是什么?
在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...
- python逻辑与界面分离_一种数据与逻辑分离的Python单元测试工具
一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...
最新文章
- iOS-仿膜拜贴纸滚动(物理仿真)
- 微积分学习笔记四:空间向量基础
- Starting MySQL... ERROR! The server quit without updating PID file 问题解决
- c语言中gets函数可以输入空格吗_C语言中scanf()与gets()函数的区别,哪一个可以读入空格啊?...
- [D3D] - 用PerfHUD来调试商业游戏
- 从Flash到Silverlight进阶教程-用代码来创建动画
- spring cloud config的bootstrap.yml与application.proterties的区别
- 彩色粉末粉尘喷溅高清素材,让热烈气氛烘托到极致
- 洛谷P3152 正整数序列
- React学习笔记一 JSX语法组件
- Python多线程小例子
- mac命令行压缩解压rar文件
- 降低数据压力的几种解决方案
- 【摘自csdn】一场我没有看懂的相亲
- 内容仓库Apache JackRabbit
- Java基础 println print 实现输出换行
- 小程序getLocation需要在app.json中声明permission字段
- 家乡的春节html,家乡的春节作文(通用10篇)
- 不写默认无参构造方法,调用自定义构造方法时报错No constructor found in com...
- 《最伟大的投资习惯》读书笔记
热门文章
- OSI、TCP/IP or Five-layer(Protocols Use) Model
- jQuery 1.7.1 代码研究 extend
- linux的常用操作——共享库
- 计算机操作系统——经典进程的同步问题
- Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式
- 正则不能输入特殊字符_正则表达式语法学习和在线练习
- mugen4g补丁如何使用_CAD如何去除教育版戳记?
- C++链表插入节点函数为什么要传递头节点的二维指针
- 设置numpy的随机种子
- The value of a feed cannot be a tf.Tensor object.