一个小示例告诉你Python语言的优雅之处_python

比如, 我们希望希望检测"一段string是否以特定的字符串结尾?", 通常我们使用:

  if needle.endswith('ly') or needle.endswith('ed') or
    needle.endswith('ing') or needle.endswith('ers'):
    print('Is valid')
  else:
    print('Invalid')

十分丑陋是吧? 如果我们检测变量needle是否是以下特定字符串之一的话, 会这样写:

  if needle in ('ly', 'ed', 'ing', 'ers'):
    print('Is valid')
  else:
    print('Invalid')

但是, 我们无法在 endswith function 中使用 in, 但我们换一种想法, 我们需要检查的其实是"一段string的结尾是否是以下字符串的任意一个?", 我们会发现python有内部函数any, 于是我们的代码可以改为:

  if any([needle.endswith(e) for e in ('ly', 'ed', 'ing', 'ers')]):
    print('Is valid')
  else:
    print('Invalid')

相信很多读者在此会不同意我的做法, 或者有更好的写法存在. 但这已经不重要. 我明白你们大多数都会使用类似的写法面对这一相似的问题. 我真正的目的其实是展示一下Python的优雅之处.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
python胶水语言 示例、python代码示例、python示例程序、python 示例、python入门代码示例,以便于您获取更多的相关知识。

时间: 2024-08-18 03:00:21

一个小示例告诉你Python语言的优雅之处_python的相关文章

图片-有关C语言数组的一个小问题

问题描述 有关C语言数组的一个小问题 这是题目 这是我做的 但是不知道为什么我这个写出来只能完成一半 那个"不存在"的提醒不管什么情况都会显示出来 想请教一下啊 谢谢了 解决方案 首先i应该从0开始赋值,否则就会把a[0]也就是T漏掉.其次,判断不存在应该是所有位置都找过以后以后才能判断确实不存在,而不是每个位置都在判断. 具体做法是把不存在的输出放在循环体外面进行判断,然后增加一个变量t并赋初值为0,在找到的时候让t的值变为1,这样一来可以明白:在循环完成之后如果t的值为1就说明找到

c语言-有关C语言数组的一个小问题

问题描述 有关C语言数组的一个小问题 char paidian; paidian = "34567890JQKA2"[(num - 1) / (4 * JIFUPAI)]; 解决方案 C语言中一个小问题c语言中的一个小问题关于<c语言的一个小问题>的补充 解决方案二: 你这个paidian什么意思?"34567890JQKA2"是字符串[(num - 1) / (4 * JIFUPAI)]似乎是个数字?这个没看懂也不知道你的问题是啥 解决方案三: 难道是

c语言-C语言数组的一个小问题

问题描述 C语言数组的一个小问题 题目如图 请问为何我把循环条件设为x[i]!=''的时候,出来的答案就非常大?设为i< 10时,答案就正常了.难道这题x[i]!=''和i< 10这两个条件不等价吗?求解 解决方案 x[i]!='' 你的x是double,怎么和''比较. 解决方案二: 以文本形式贴出你的程序 解决方案三: c语言中的一个小问题C语言中一个小问题关于<c语言的一个小问题>的补充 解决方案四: 你的数组不是字符类型,而是double不存在/0 解决方案五: 你的x是d

《Abaqus GUI程序开发指南(Python语言)》——2.6 运算符

2.6 运算符 运算符是处理数字的最基本工具,在编写程序时经常会遇到各类运算符.与其他编程语言类似,Python中主要包含算术运算符.关系运算符以及逻辑运算符等. 2.6.1 算术运算符 算术运算符包括加.减.乘.除.幂运算,整除运算以及余数运算等,具体如表2.3所示. 需要注意的是,//运算符是floor除法,它把结果向下截断到它的下层,即比真实结果小却又最接近真实结果的整数.其直接效果是向下舍入,并不是严格地截断(trunc),并且对负数也有效,读者在使用floor除法时应注意其与截断的区别

java基础-关于Java的一个小程序

问题描述 关于Java的一个小程序 刚从Python转到Java,感觉不适应.老师让我们编一个简单的小程序不需要用的GUI.但是里面有很多东西没学过.比如在java里随机数怎么生成,以及Point,toString怎么使用.最重要的是java里的类要怎么写.是在一个Package里面写还是要在一个java类里面写.下面是有关的说明,希望有人可以指点一下,谢谢 We can see the following classes in the diagram: ● Ship - handles the

VC实现五子棋游戏的一个算法示例_C 语言

本文讲述了VC实现五子棋游戏的一个算法示例,该算法采用极大极小剪枝博弈算法,感兴趣的读者可以对程序中不完善的部分进行修改与完善. 该设计主要包括:数据结构.估值函数.胜负判断.搜索算法 程序运行界面如下: 具体实现步骤如下: 1.数据结构 //记录每步棋,可以建立链表用来进行悔棋.后退(本程序没有实现) struct Step { int x,y; //棋子坐标 int ball; //表示下子方{BLACK,WHITE} }; //记录棋盘情况,用于搜索过程 class CBoardSitua

用Python程序抓取网页的HTML信息的一个小实例

  这篇文章主要介绍了用Python程序抓取网页的HTML信息的一个小实例,用到的方法同时也是用Python编写爬虫的基础,需要的朋友可以参考下 抓取网页数据的思路有好多种,一般有:直接代码请求http.模拟浏览器请求数据(通常需要登录验证).控制浏览器实现数据抓取等.这篇不考虑复杂情况,放一个读取简单网页数据的小例子: 目标数据 将ittf网站上这个页面上所有这些选手的超链接保存下来. 数据请求 真的很喜欢符合人类思维的库,比如requests,如果是要直接拿网页文本,一句话搞定: ? 1 d

c语言-C语言的一个小问题 求解答

问题描述 C语言的一个小问题 求解答 计算机问题求解答">如题 我的代码是这样 #includeint main(){ double xy; printf(""输入数据:""); scanf(""%lf""&x); if(x<1) y=x;else if(x>=1&&x<=10) y=2*x-1;else if(x>10) y=3*x-11;printf(&quo

ascii-C语言文件读写和类型转换的一个小问题

问题描述 C语言文件读写和类型转换的一个小问题 #include <stdio.h> #include <Windows.h> main() { FILE *f; int c; errno_t err = fopen_s(&f,"E:\workspace\TVPLAY\data\diffFrame\txts\file2.txt","r"); if (err) { printf("can't open filen")