《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)

print 'AB', 123 ==> AB 123 # 插入了一个空格
print 'AB', 'CD' ==> AB CD # 插入了一个空格
print 1,2,3 ==> 1 2 3
print (1,2,3) ==> (1, 2, 3)
#在脚本中以下ABCD连在一起输出
print 'AB',
print 'CD'

import somemodule #导入模块
from somemodule import somefunction #导入函数
from somemodule import function1,function2... #导入函数
from somemodule import *
module1.open() #使用模块中函数
module2.open()
import math as foobar #为模块提供别名
foobar.sqrt(4)
from math import sqrt as foobar #为函数提供别名
foobar(4)

序列解包
x,y,z=1,2,3; print x,y,z ==> 1 2 3
x,y,z=1,2,3; x,y=y,z; print x,y ==> 2 3
x=1,2,3; a,b,c=x; print a,b,c ==> 1 2 3
d={'key1':'value1','key2':'value2'}; key,value=d.popitem(); print key,value ==> key2 value2

链式赋值
x=y=z={'key1':'value1'}; x is y ==> True
x=y=z={'key1':'value1'}; x==y  ==> True

增量赋值
x+=1; x*=1;

可以用tab或空格分层缩进代码;推荐用四个空格来缩进。用Tab缩进更方便,比空格更快。

: 表示语句块的开始

布尔值:True, False, bool()
这些被看为False: False, None, 0, "", (), [], {}
True==1  ==> True
False==0  ==> True
True+False+4   ==> 5

bool('ABC') ==> True
bool('') ==> False
bool(3) ==> True
bool(0) ==> False

if expression:
    block1
    
if expression:
    block1
else:
    block2
    
if expression1:
    block1
elif expression2:
    block2
else:
    block3

比较运算符
x==y 相等运算符
x!=y 不相等运算符
x is y 同一性运算符
x is not y
x in y 成员资格运算符
x not in y

0<age<100 # python可以这样用

'ab'=='ab' ==> True
'ab'=='cd' ==> False
12==34 ==> False

x=y=[1,2]; x==y ==> True
x=y=[1,2]; x is y ==> True
x=y=[1,2]; z=[1,2]; x is z ==> False
x=y=[1,2]; z=[1,2]; x==z ==> True

'ABC'<'ABC' ==> False
[1,2]<[2,1] ==> True

布尔运算符:
and, or, not

断言
age=-1; assert 0<age<100, 'NOTE'
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    age=-1; assert 0<age<100, 'NOTE'
AssertionError: NOTE

while expression:
  block

for item in itemset:
  block

range函数包含下限,不包含上限;
range(0,3) ==> [0, 1, 2]
range(3) ==> [0, 1, 2]

遍历字典
d={'key1':'value1','key2':'value2'};
for key in d:
    print key,d[key]

for key,value in d.items():
    print key,value

并行迭代
a=[1,2,3]; b=['a','b','c']; zip(a,b) ==> [(1, 'a'), (2, 'b'), (3, 'c')]

编号迭代
for index, string in enumerate(strings):
    if 'xxx' in string:
       strings[index]='NewValue'

反转和排序迭代
sorted([3,1,2]) ==> [1, 2, 3]
x=[1,2,3]; list(reversed(x)) ==> [3, 2, 1] # reversed返回可迭代对象

break结束循环
continue进行下一次循环

while True:
   block1
   if expression:
      break
   block2

for item in items:
   block1
   if expression:
      break
   block2
else:
   block3  # 当for执行完毕,并且没有执行过其中的break,此时执行block3

列表推导式
[x*x for x in range(3)] ==> [0, 1, 4]
[x*x for x in range(3) if x%2==0] ==> [0, 4]
[(x,y) for x in range(3) for y in range(3)] ==> [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

pass # 占位符,类似于空语句
del # 删除对象
exec # 执行一个字符串
exec "print 'ABC'" ==> ABC
from math import sqrt; scope={}; exec 'sqrt=1' in scope; sqrt(4); scope['sqrt'];

eval 求值,类似于 exec
eval(raw_input(""))
1+1
2

scope={}; scope['x']=2; scope['y']=3; eval('x*y',scope) ==> 6

《python基础教程(第二版)》学习笔记 语句/循环/条件(第5章)的更多相关文章

  1. Jquery基础教程第二版学习记录

    本文仅为个人jquery基础的学习,简单的记录以备忘. 在线手册:http://www.php100.com/manual/jquery/第一章:jquery入门基础jquery知识:jquery能做 ...

  2. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第10章 | 充电时刻

    第10章 | 充电时刻 本章主要介绍模块及其工作机制 ------ 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 一个简 ...

  3. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第11章 | 文件和素材

    打开文件 open(name[mode[,buffing]) name: 是强制选项,模式和缓冲是可选的 #假设文件不在.会报以下错误: >>> f = open(r'D:\text ...

  4. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第04章 | 字典

    第04章:字典 当索引不好用时 Python唯一的内建的映射类型,无序,但都存储在一个特定的键中.键能够使字符.数字.或者是元祖. ------ 字典使用: 表征游戏棋盘的状态,每一个键都是由坐标值组 ...

  5. &lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第12章 | 图形用户界面

    Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/ ------ ...

  6. 第二章、元组和列表(python基础教程第二版 )

    最基本的数据结构是序列,序列中每个元素被分配一个序号-元素的位置,也称索引.第一个索引为0,最后一个元素索引为-1. python中包含6种内建的序列:元组.列表.字符串.unicode字符串.buf ...

  7. python基础教程第二版 第一章

    1.模块导入python以增强其功能的扩展:三种方式实现 (1). >>> Import math >>> math.floor(32.9) 32.0 #按照 模块 ...

  8. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver

    1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...

  9. Docker技术入门与实战 第二版-学习笔记-8-网络功能network-3-容器访问控制和自定义网桥

    1)容器访问控制 容器的访问控制,主要通过 Linux 上的 iptables防火墙来进行管理和实现. iptables是 Linux 上默认的防火墙软件,在大部分发行版中都自带. 容器访问外部网络 ...

随机推荐

  1. nginx proxy cache配置和清理

    1.nginx需要编译Purge模块 2.nginx.conf 配置cache: proxy_cache_path  /home/cache/xxx levels=1:2  keys_zone=cac ...

  2. elk升级文档

    1.kibana等都统一版本了,5.4版本的kibana要5.4版本的elasticsearch 2.现有架构: logstash logstash读取日志-------->内网redis做队列 ...

  3. python常见面试题(二)

    1. 到底什么是Python?你可以在回答中与其他技术进行对比(也鼓励这样做). 下面是一些关键点: Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需 ...

  4. bean对应mapper.xml字段

    在bean中set的时候最好写上这个,避免报空指针............... public void setImgAddress(String imgAddress) { this.imgAddr ...

  5. iOS CAGradientLayer白色渐变至上向下

    项目需求当显示富文本内容高度太高的的时候不全部显示出来,而是显示查看更多按钮,当点击查看更多时把全部内容展开.同时未展开部分要加一个渐变模糊的效果. 上效果图: 这里要用到CAGradientLaye ...

  6. windows下python安装Numpy、Scipy、matplotlib模块(转载)

    python下载链接     Numpy下载链接 python中Numpy包的安装及使用 Numpy包的安装 准备工作 Python安装 pip安装 将pip所在的文件夹添加到环境变量path路径中 ...

  7. Linux的各个文件夹名称解释(FHS)

    对于接触和已经接触过一段时间Linux的使用者来说,系统的各个文件夹名字还是挺让人费解的,什么etc,usr,var等等,大部分也是耳濡目染才有一个大概的概念,例如usr是存放自己编译安装的软件,et ...

  8. css 选择器之子元素

    /*html*/ <div class="wrap"> <span>1</span> <span>2</span> &l ...

  9. Android自定义action与permission!!! (转)

    原文地址:http://blog.csdn.net/android_tutor/article/details/6310418#reply 大家好,今天给大家简单分享一下Android中自定义acti ...

  10. cvm母机宕机重启后数据库修复

    下午正在开周会,然后收到短信,说是X.X.X.X的机器ping不通了,一轮测试过后,发现是某台数据库服务器挂了,先不急着重启,问下tencent客服... 乖乖的好家伙,母机的主板坏了....一个小时 ...