Python减少循环层次和缩进的技巧分析
本文实例分析了Python减少循环层次和缩进的技巧。分享给大家供大家参考,具体如下:
我们知道Python中冒号和缩进代表大括号,这样写已经可以节省很多代码行数,但是可以更优化,尽可能减少循环的层次和缩进,让代码看起来更简洁,逻辑更清楚。不仅Python语言如此,其他语言也一样。
如图,是两段Python代码,前后两段要实现的功能是一样的,但是第二段明显可读性更好,逻辑更佳清晰。在很多循环嵌套的时候,其实可以用“逆向思维”,用continue跳出不符合条件的循环,而不是成立的时候继续执行,这样只会不断加深循环的层次。
下面是图示中的Python代码:
"""优化前""" for item in items: if is_for_sale(item): cost = compute_cost(item) if cost <= wallet.money: buy(item) """优化后""" for item in items: if not is_for_sale(item): continue cost = compute_cost(item) if cost > wallet.money: continue buy(item)
这样做减少了循环嵌套的层次,使可读性和逻辑性更直观,也没有那么多缩进。
转自:小谈博客 http://www.tantengvip.com/2015/05/python-for-level/
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
VIM中设置php自动缩进为4个空格的方法详解
代码自然少不了文本编辑利器vim,自动缩进是用制表符的,即便自己删掉制表符改成4个空格,也会在下一层次缩进中继续用制表符,这就造成了空格和制表符混用 可以修改.etc/vimrc的信息: 其中相关变量含义: 变量名 缩写 含义 (no)autoindent ai 自动缩进,即为新行自动添加与当前行同等的缩进. (no)cindent ci 类似C语言程序的缩进 (no)smartindent si 基于autoindent的一些改进 变量
-
android TextView设置中文字体加粗实现方法
英文设置加粗可以在xml里面设置: 复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">android:textStyle="bold"</SPAN> 英文还可以直接在String文件里面直接这样填写: 复制代码 代码如下: <string name="styled_text">Plain, <b>bold</b>, <i>italic</
-
android TextView不用ScrollViewe也可以滚动的方法
代码 复制代码 代码如下: TextView textview = (TextView) findViewById(R.id.text); /** * * 只有调用了该方法,TextView才能不依赖于ScrollView而实现滚动的效果. * 要在XML中设置TextView的textcolor,否则,当TextView被触摸时,会灰掉. */ textview.setMov
-
python缩进区别分析
仔细观察下面两个python程序,代码一模一样,但是运行的结果却不同,就是因为最后一行return缩进的不同 复制代码 代码如下: def powersum(power, *args): '''Return the sum of each argument raised to specified power.'''total = 0for i in args:total += pow(i, power)return total 运行时输入powersum(2,3,4)输出25(3的平方加上4的平
-
android实现上下滚动的TextView
一 说明 这里重要应用类 AutoTextView,这是一个自定义的类,继承至TextSwitcher,下面临 AutoTextView类做简要说明: 1. 该类应用的重点,在于设置两个动画, setInAnimation(...) 和 setOutAnimation(...),分离是文字进入的动画和文字退出的动画: 2. 类中定义了一个外部类-Rotate3dAnimation,重要靠该类实现文字进出动画,该外部类继承至Animation.说来偶合,这个恰好是在apiDemo中看到了,
-
使用tab做左缩进和右缩进, 你知道么?
使用tab做向右的缩进, 大家都知道, 使用shift + tab 可以做向左的缩进, 快去试试!! 另外在可以使用tab的地方, shift + tab都是可以做反向的定位的.
-
Android TextView设置背景色与边框的方法详解
1.在drawable文件夹下面创建setbar_bg.xml 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 背景色 --> <solid android:color="#FFE4B5&q
-
android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
布局文件中的TextView属性 复制代码 代码如下: <TextViewandroid:id="@+id/businesscardsingle_content_abstract"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:lineSpacingMu
-
android TextView加下划线的方法
如果是在资源文件里,可以这样写. 复制代码 代码如下: < resources > < string name = "hello" > < u > phone: 1390123456 </ u > </ string > < string name = "app_name" > MyLink </ string > </ resources
-
Android设置TextView首行缩进示例代码
下面是我总结的两种方式,有需要的可以参考借鉴下. 第一种:傻瓜式,空格充当(8个空格占两个汉字的大小). textView.setText(" 设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进设置首行缩进"); 第二种:转义字符. textView.setText("\u3000\u3000" + "设置首行缩进设置首行缩进设
-
python基础教程之缩进介绍
Python的运算符和其他语言类似 (我们暂时只了解这些运算符的基本用法,方便我们展开后面的内容,高级应用暂时不介绍) 数学运算 复制代码 代码如下: >>>print 1+9 # 加法 >>>print 1.3-4 # 减法 >>>print 3*5 # 乘法 >>>print 4.5/1.5 # 除法 >>>print 3**2 # 乘方 >>&
随机推荐
- JSP 中response.setContentType()的作用及参数
- Virtualbox主机和虚拟机之间文件夹共享及双向拷贝(Windows<->Windows, Windows<->Linux)
- Java字符串中删除指定子字符串的方法简介
- Java接口和抽象类的区别深入剖析
- js 调整select 位置的函数
- asp.net ListView交替背景颜色实现代码
- PHP扩展CURL的用法详解
- C语言实现运筹学中的马氏决策算法实例
- NodeJs下的测试框架Mocha的简单介绍
- MySql服务未知原因消失解决方法
- VBS教程:VBScript 基础-使用循环语句
- jquery 无限级下拉菜单的简单实现代码
- 使用Node.js实现HTTP 206内容分片的教程
- 在ASP.NET 2.0中操作数据之四十五:DataList和Repeater里的自定义Button
- JS高级运动实例分析
- Android开发仿IOS滑动开关实现代码
- 在C#中根据HardwareID获取驱动程序信息的实现代码
- 值得分享的超全文件工具类FileUtil
- laravel 之 Eloquent 模型修改器和序列化示例
- mac安装pytorch及系统的numpy更新方法