python 零散记录(五) import的几种方式 序列解包 条件和循环 强调getattr内建函数
用import关键字导入模块的几种方式:
#python是自解释的,不必多说,代码本身就是人可读的 import xxx
from xxx import xxx
from xxx import xx1,xx2,xx3
from xxx import *
import xxx as xxx
from xxx import xxx as xxx
序列解包赋值:
x,y,z = 1,2,3 #右侧1,2,3实际是一个(1,2,3)的tuple,然后解包出来再分别赋值 x,y = y,x #同理,交换赋值
if和布尔:
#True False 实际就是1 0 同样可拿来运算
True + 1 == 2
False - 1 == -1 #bool(xx): #将表达式转换为布尔值
'''注意:'''#虽然[]与{}都是假值,但是他俩之间直接比较是不相等的
[] != {}
#这样才相等
bool([]) == bool({}) == False #比较运算符:
x is y #x与y是同一个对象引用
x is not y #同上一个道理
#is 关键字比较的是同一性,==比较的是相等性 #可以连续比较:
1<2<3 == 1<2 and 2<3 #布尔运算符:
and or not #模拟bool:a?b的三元运算符
#方法1
(bool and [a] or [b])[0]
#首先知道,[a] [b]都是真值
#当bool为True时,and 运算结果为[a],or运算结果也为[a],再[0]取出a
#当bool为False时,and结果为False,or结果取决于[b],再[0]取出b #方法2
a if b else c #b 为1时,则a 否则c
循环:
#for 多用于序列或可迭代对象 range(a, b):
#包含下限不含上限,生成列表 zip(list1, list2);
#将两个序列压缩在一起,形如:[(list1[1],list2[1]),(list1[2],list2[2])]
#长度不同时取短的那个 while True/if break:
#很好用,代码整洁又没有重复 for/else:
for n in range(10):
if xxx:
break
else:
#dosomething
强调一个内建函数:
#强调一个内建函数 getattr
l = [1,2,3,4]
l.pop() func = getattr(l, 'pop')
func() #上面两小段代码是一样的效果 都是弹出最后的元素 #getattr字面就是返回属性,返回 参数 l 的 pop 属性
python 零散记录(五) import的几种方式 序列解包 条件和循环 强调getattr内建函数的更多相关文章
- 命令行运行Python脚本时传入参数的三种方式
原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...
- Python中的可变、不可变对象和赋值技巧序列解包
可变对象和不可变对象 在python中一切皆对象.在Python中不存在所谓的值传递调用,一切传递都是对象的引用,也可认为是传址. python中,对象分为可变(mutable)和不可变(immuta ...
- 多表连接的三种方式详解 hash join、merge join、 nested loop
在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式.多表之间的连接有三种方式:Nested Loops,Hash Join 和 Sort Merge Join.具体适用哪 ...
- Python——序列封包与序列解包
一.序列封包与序列解包 把多个值赋给一个变量时,Python会自动的把多个值封装成元组,称为序列封包. 把一个序列(列表.元组.字符串等)直接赋给多个变量,此时会把序列中的各个元素依次赋值给每个变量, ...
- Python特色的序列解包、链式赋值、链式比较
一.序列解包 序列解包(或可迭代对象解包):解包就是从序列中取出其中的元素的过程,将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中. 一般情况下要解包的序列包含的元素个数必须与你在等 ...
- 第4.7节 Python特色的序列解包、链式赋值、链式比较
一.序列解包 序列解包(或可迭代对象解包):解包就是从序列中取出其中的元素的过程,将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中. 一般情况下要解包的序列包含的元素个数必须与你在等 ...
- python 序列解包(解压缩)
序列解包(解压缩) 所学的解压缩 如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢? name_list = ['nick', 'egon', 'jason'] x = ...
- Python中序列解包与函数的参数收集之间的关系
在<第4.7节 Python特色的序列解包.链式赋值.链式比较>中老猿介绍了序列解包,<第5.2节 Python中带星号的函数参数实现参数收集>介绍了函数的参数收集,实际上函数 ...
- 在python中元组与列表的区别及序列解包
一. 元组与列表的区别 元组中的数据一旦定义就不允许更改. 元组没有append().extend()和insert()等方法,无法向元组中添加元素. 元组没有remove()或pop()方法,也无法 ...
随机推荐
- 【制作镜像】安装VMwareTool
vmware tools是虚拟机VMware Workstation自带的一款工具,它的作用就是使用户可以从物理主机直接往虚拟机里面拖文件. 启动虚拟机,切换到xwindows 在VMware Wor ...
- (hdu)5546 Ancient Go
Problem Description Yu Zhou likes to play Go with Su Lu. From the historical research, we found that ...
- 自定义类模板 重载<<遇到的问题
类内声明 friend ostream& operator<<(ostream& os,const store<T> &item); 类外实现 temp ...
- 浅析JAVA设计模式(三)
4.接口隔离原则: ISP(Interface Segregation Principle) 客户端不应该依赖它不需要的接口,或者说类的依赖的关系应该建立在最小的接口上.举个例子,直接上代码: 1 ...
- DataTable操作(建表,建行,建列,添加数据)
public DataTable GetNewTable() { DataTable dt2 = new DataTable("NewDataSet"); //创建一个新Table ...
- jquery tab mouseover 特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- React组件三
<script> <!-- getDefalutPros 设置组件的默认值--> <!--var Mytitle=React.createClass({ getDefau ...
- hbuilder工具快捷键 http://www.qq210.com/shoutu/android
http://www.qq210.com/shoutu/android 创建HTML结构: h 8 (敲h激活代码块列表,按8选择第8个项目,即HTML代码块,或者敲h t Enter)中途换行: ' ...
- Couldn't get lock for %t/vertx.log
今天在启动vertx框架的项目时,报“Couldn't get lock for %t/vertx.log”的错误. 解决方案: 1,找出vertx.log的目录.一般在(C:\Users\Admin ...
- git之环境配置(window+git+github)
本地安装git 下载最新版的git:https://msysgit.googlecode.com/files/Git-1.9.0-preview20140217.exe 安装步骤:http://jin ...