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人工智能系列:.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据量大的sql怎么做优化_搜索引擎关键词优化怎么做

搜索引擎关键词优化怎么做新媒体营销的兴起,而且是方兴未艾,因此与客户建立起良好关系,保持良好的口碑关系,让客户信任你,公司适合增值服务:或者利润多,同时能在业务管理、销售管理、人事管理等…

vba显示正在加载_简单、易用的VBA过程积木代码

分享成果,随喜真能量(这是我视频教程的开场白)。大家好,今天继续和大家分享VBA编程中常用的简单“积木”过程代码第76-80讲,内容是:保存当前工作簿的副本到其它位置备份;不显示警告框&#xff1…

sqoop从oracle导入hive分区,sqoop从oracle导入hive Hive exited with status 64

导入命令./sqoop import -Dmapreduce.map.java.opts-Xmx3000m -Dmapreduce.map.memory.mb3200 --connect jdbc:oracle:thin:192.168.113.17:1521:btobbi --username tianlianbi --P --table BIO_PRODUCT_MAIN --hive-import --hive-overwrite -m 4数据已经进入到hdfs了&#xf…

linux关机_Linux中shutdown,halt,poweroff,init 0区别

1)shutdown命令我们较常使用的是shutdown这个命令,这个命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以…

php static_castunsigned int,static_cast揭密

本文讨论static_cast<> 和 reinterpret_cast<>。介绍大多程序员在学C前都学过C&#xff0c;并且习惯于C风格(类型)转换。当写C(程序)时&#xff0c;有时候我们在使用static_cast<>和reinterpret_cast<>时可能会有点模糊。在本文中&#xff0c;我将说明…

python在国外什么地位-值得收藏!国外最佳Python博客TOP25

python是一个非常容易上手和易用的语言&#xff0c;目前各大互联网公司都能看到Python语言的影子&#xff0c;并且获得众多业界大咖的推荐。 本次我从众多Python的博客中根据谷歌搜索排名和博客在社交论坛的影响力等因素综合考虑&#xff0c;得出最受欢迎的blog。 关于博客&…

Oracle数据库迁移测试数据,Oracle数据库的数据迁移方法

Oracle数据库的数据迁移方法发表于&#xff1a;2008-04-14来源&#xff1a;作者&#xff1a;点击数&#xff1a;随着数据库管理系统和操作系统平台的更新换代的速度的加快&#xff0c;数据库管理员经常需要在两个不同的数据库之间或在两种不同的系统平台之间进行数据迁移。本文…

大顶堆删除最大值_C++|使用STL算法创建、调整、输出最大堆、最小堆

最大堆(又叫大根堆、大顶堆)和最小堆是二叉堆的两种形式&#xff0c;一类很重要的数据结构&#xff0c;如用于堆排序等。最小堆&#xff1a;根结点的键值是所有堆结点键值中最小者&#xff0c;且每个结点的值都比其孩子的值小。最大堆&#xff1a;根结点的键值是所有堆结点键值…

群晖 root_最新群晖DSM7.0降级教程

小广告:隔壁网1212活动开始,群晖DS920+和DS220+满300减40,购买酷狼8T赠送隔壁网邀请码和1年VIP,大刀价格微信咨询momo。 很多童靴,升级到DSM7.0后第三方套件无法用了,比如transmission,玩PT下载的童靴,需要谨慎升级。 这个方法wjq_xp分享的,非常感谢,前面部分和旧的降…

update关联一个视图的时候特别慢_实现一个简单的Vue.js

原文转自 https://const_white.gitee.io/gitee-blog/blog/vue/mini-vue/Vue响应式原理图片引自 孟思行 - 图解 Vue 响应式原理乞丐版 mini-vue实现mini-vue之前&#xff0c;先看看官网的描述。在Vue官网&#xff0c;深入响应式原理中&#xff0c;是这样说明的&#xff1a;每个组…

接口500什么原因_80%小餐饮店几乎都“活“不过500天,为什么?都在这5个原因里...

餐饮创业分享达人 原创作者&#xff1a;秦.关中我是餐饮创业实战经验分享达人&#xff0c;想要了解和学习更多餐饮实战经验&#xff0c;记得关注我哦&#xff01;希望我的分享能帮助大家在创业的道路上少走弯路&#xff0c;不踩坑&#xff0c;为你创业成功助上一臂之力。无论是…

linux 生成hash值命令,linux-从给定哈希计算base64编码哈希?

我创建了一个文件,并在其中输入了一些随机字符串.touch tesseract && echo TestTestTestTestTest > tesseract现在,如果我使用openssl来计算base64哈希[sha256],请运行以下命令&#xff1a;cat tesseract | openssl dgst -sha256 | openssl base64 -A回到我身边KHN0…

padding-left在ie8中不生效_陆国应 律师从民法典第209条来看房屋未过户买卖合同是否生效?...

基本案例(案例来源于大律师教你怎样打官司)&#xff1a;张某与某公司签订了房屋买卖合同。双方在合同中约定&#xff1a;某公司将三居室一套售于张某&#xff0c;价款30万元&#xff0c;并约定该房屋于2018年2月1日前交付使用。此后&#xff0c;张某先后向某公司支付购房款人民…

linux shadow 时间,Linux Shadow-Password-HOWTO - 7. 将 Shadow Suite 放进来使用(1)

这节描述你需要知道有些程式在安装时就已经有 Shadow Suite。大部分的资讯在操作手册可以找到。7.1 新增、修改和删除使用者Shadow Suite 新增下列指令用来新增、修改和删除使用者。 这也是可以安装 adduser 程式。useradduseradd 使令可用在系统中新增使用者。 你也可以采用此…

电脑反应慢卡怎么解决_电脑键盘失灵怎么解决

键盘是电脑中重要的输入设备之一&#xff0c;但在使用的过程中有时可能会碰到键盘失灵的问题&#xff0c;该怎么办呢&#xff1f;别着急&#xff0c;接下来&#xff0c;小编我就来给大家详细的介绍一下电脑键盘出现怎么办&#xff0c;并将解决键盘失灵的操作方法来分享给你们。…

金山手机控usb调试模式开启工具_话筒坏了无法连麦?一招手机秒变电脑麦克风...

前段时间孩子上网课&#xff0c;沉睡多年的摄像头和麦克风被从箱子底请了出来。当连接妥当后&#xff0c;突然发现麦克风失灵了&#xff0c;几经调试宣布报废&#xff01;当时正处于疫情高发期&#xff0c;电脑城肯定是关了&#xff0c;网购是来不及了&#xff0c;怎么办&#…

linux下openldap版本查询,用openldap进行linux认证

用openldap进行linux认证(时间&#xff1a;2010-11-25)(OS:LDAP SERVER:Linux version 2.6.18-8.el5xenLDAP:openldap-devel-2.3.27-5LDAP CLIENT:Linux version 2.6.32-71.el6.i686)一、LDAP Server 安装(一)安装配置#rpm -ihv openldap-servers-2.3.27-5.i386.rpm在安装过程中…

idea的setting界面怎么进_电脑怎么备份系统

电脑怎么备份系统&#xff1f;提前备份系统可以帮助下次系统出现问题后&#xff0c;随时还原备份的系统。下面小白提供两种备份系统的方法。一、系统自带备份一般现在的电脑系统都自带备份还原的功能&#xff0c;不管是win10还是win7都需要手动去备份。优点&#xff1a;可以增加…

快手用旺旺瓶子做机器人_用罐头瓶子做醪糟容易做好保存

醪糟是湖北四川一带的著名风味小吃&#xff0c;醪糟汤圆、醪糟鸡蛋酸甜可口&#xff0c;非常美味。这些年&#xff0c;北方人喜欢它的人也逐渐多了起来&#xff0c;我们单位食堂每周三都做醪糟汤圆大枣汤&#xff0c;是同事们最喜爱、期待的一道美食。我告诉她们可以自己做醪糟…

linux下关闭网络服务,Linux 关闭网络管理服务

关于各种类型数据char、int、double、float 所占空间长度的计算&#xff0c;而char类型让我长姿势了#include int main() { using namespace std; //int A&#xff1d;10; //double B&#xff1d;6; cout << ...python网络编程【一】TCP/IP 是标准的协议,它可以使用世界范…