1.print和import

在Python 3.0中,print不再是语句而是函数(功能基本不变)

可以使用print打印多个表达式,用逗号分隔就行

print('Age'+':',42) #Age: 42

print的参数并不能像我们预期的那样构成一个元组

对于很多应用程序来说,使用logging模块记日志比print语句更合适

import:导入功能

from math import *   #从给定模块导入所有功能
print(sqrt(4))  #2.0

可以在语句末尾增加一个as子句,在该子句后给出名字,为整个模块提供别名

import math as foobar1
print(foobar1.sqrt(9))  #3.0

还可以给函数取别名

from math import sqrt as foobar2
print(foobar2(169)) #13.0

2.赋值

2.1 序列解包

允许函数返回一个以上的值并打包成元组,然后通过一个赋值语句很容易进行访问

包序列中的元素数量必须和放置在赋值符号=左边的变量数量完全一致

让多个赋值操作可以同时进行

x,y,z=1,2,3
print(x,y,z)    #1 2 3

还可以用它交换两个 (或更多个)变量

x,y,z=y,x,z
print(x,y,z)    #2 1 3

假设需要获取 (和删除)字典中任意的键值对,可以使用popitem方法,这个方法将键值对作为元组返回,然后这个元组就可以直接赋值到两个变量中

scoundrel={'name':'Robin','girlfriend':'Marion'}
key,value=scoundrel.popitem()
print(key+':',value) #girlfriend: Marion

Python 3.0中有另外一个解包的特性:可以像在函数的参数列表中一样使用星号运算符(将所有其他参数放在一个变量中)

使用星号的变量可以放在第一个,此时它会包含一个列表

a,b,*rest=[1,2,3,4]
print(a,b,rest)  #1 2 [3, 4]

2.2 链式赋值

是将同一个值赋给多个变量的捷径

x=y=somefunction()
#等价于
y=somefunction()
x=y

2.3 增量赋值

增量赋值对其他数据类型也适用

value*=2
print(value)    #MarionMarion

3.语句块:缩排的乐趣

语句块是在条件为真时执行或执行多次的一组语句
冒号用来标识语句块的开始,块中的每一个语句都是缩进的(缩进量相同)
当回退到和己经闭合的块一样的缩进量时,就表示当前块已经结束了

4.条件和条件语句

Python中所有值都能被解释为真值

false、None、0、""、[]、{}会被解释器看作假,其它的一切会被解释为真

print(bool([])) #False

if、else和elif

# name=input("What is your name?")
name="Gumby"
if name.endswith('Gumby'):    #if语句if name.startswith('Mr.'):  #if语句中嵌套if语句print('Hello,Mr.Gumby')elif name.startswith('Mrs.'): #elif语句:else if的简写,是有条件的else语句print('Hello,Mrs.Gumby')else:print('Hello,Gumby')    #Hello,Gumby
else:   #else语句print('hello, stranger')

用在条件中最基本的运算符就是比较运算符

#比较运算符
x=y=[1,2,3]
z=[1,2,3]
print("x==y:",x==y) #x==y: True
print("x==z:",x==z) #x==z: True
#同一性运算符(x和y是同一个对象)
print("x is y:",x is y) #x is y: True#
print("x is z:",x is z) #x is z: False
#成员资格运算符
# name=input('What is your name?')
name="Gumby"
if 's' in name:     print('You name contains the letter "s".')
else:print('Your name does not contains the letter "s".')    #Your name does not contains the letter "s".
#布尔运算符:使用and、or和not这三个运算符可以随意结合真值
# number=int(input('Enter a number between 1 and 10:') or 9)    #短路逻辑
number=9
if number <=10 and number >=1:print('Great!') #Great!
else:print('Wrong!')

断言assert:用于在程序中置入检查点,确保程序中的某个条件一定为真才能让程序正常工作

在检查函数参数的属性时使用,或者作为初期测试和调试过程中的辅助条件

age=10
assert 0<age<100
age=-1  #报错
assert 0<age<100,"The age must be realistic"    #条件后可以添加字符串用来解释断言

5.循环

5.1 while循环

while语句非常灵活,它可以用来在任何条件为真的情况下重复执行一个代码块

x=1
while x<=5:print(x)x+=1

5.2 for循环

如果能使用for循环就尽量不使用while循环

for循环可以在循环中使用序列解包

d={'x':1,'y':2,'z':3}
for key,value in d.items(): # d.items:将键-值对作为元组返回print(key,'corresponds to',value)   #x corresponds to 1
#                                       y corresponds to 2
#                                       z corresponds to 3

5.3 一些迭代工具

并行迭代:程序可以同时迭代两个序列

names=['anne','beth','george','damon']
ages=[12,45,32,102]
for i in range(len(names)):print(names[i],'is',ages[i],'years old.')
# anne is 12 years old.
# beth is 45 years old.
# george is 32 years old.
# damon is 102 years old.

内建的zip函数可以把多个序列压缩在一起,用来实现并行迭代

print(zip(names,ages)) #<zip object at 0x10f955048>
for i in zip(names,ages):print(names,'is',ages,'years old.')   #
# ['anne', 'beth', 'george', 'damon'] is [12, 45, 32, 102] years old.
# ['anne', 'beth', 'george', 'damon'] is [12, 45, 32, 102] years old.
# ['anne', 'beth', 'george', 'damon'] is [12, 45, 32, 102] years old.
# ['anne', 'beth', 'george', 'damon'] is [12, 45, 32, 102] years old.

编号迭代:有些时候想要迭代序列中的对象,同时还要获取当前对象的索引

可以使用内建的enumerate函数:在提供索引的地方迭代索引值对

for index,name in enumerate(names): if 'damon' in name:names[index]='[censored]'
for name,age in zip(names,ages):print(name,'is',age,'years old')
# anne is 12 years old
# beth is 45 years old
# george is 32 years old
# [censored] is 102 years old

排序迭代(返回的是列表):作用于任何序列或可迭代对象上,不是原地修改对象,而是返回排序后的版本

print(sorted('Hello,world!'))   #['!', ',', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']

翻转迭代(返回的是可迭代对象):作用于任何序列或可迭代对象上,不是原地修改对象,而是返回翻转后的版本

print(list(reversed('Hello,world!')))   #['!', 'd', 'l', 'r', 'o', 'w', ',', 'o', 'l', 'l', 'e', 'H']

5.4 跳出循环

break:结束或跳出循环

from math import sqrt
for n in range(99,0,-1):  #range(上限,下限,步长)root=sqrt(n)if root==int(root):print(n)    #81break 

continue:当前迭代结束,“跳”到下一轮循环的开始

while True/break:第一部分负责初始化,第二部分在循环条件为真的情况下使用第一部分初始化好的数据

while True:x+=1    if(x>3):break   #条件满足时结束print(names[x])
# anne
# beth
# george
# [censored]

循环中的else语句:仅在没有调用循环内的break时执行

from math import sqrt
for n in range(99,81,-1):  root=sqrt(n)if root==int(root):print(n)break
else:print("didn't find it!")    #didn't find it!

6.列表推导式——轻量级循环

列表推导式[]:利用其它列表创建新列表(类似于数学术语中的集合推导式)

print([x*x for x in range(10) if x%3==0])   #[0, 9, 36, 81]

7.pass、del和exec

pass:可以在代码中做占位符使用

当程序需要一个if语句并进行测试,但是缺少其中一个语句块的代码时

name='Enid'
if name=='Ralph Auldus Melish':print('Welcome!')
elif name=='Enid':pass   #表示还没完,如果不写这个,会报错,空代码块是非法的。
elif name=='Bill Gates':print('Access Denied')

del:不仅会移除一个对象的引用,也会移除那个名字本身,但不会删除值

x=['Hello','world']
y=x
y[1]='python'
del x
print(y)    #['Hello', 'python']

exec:执行存储在字符串中的代码(会有严重的潜在安全漏洞)

最有用的地方在于可以动态地创建代码字符串

exec("print( 'Hello world!')")  #Hello world!

eval:会计算以字符串形式书写的Python表达式,并且返回结果值

print("eval:",eval("6+18*2"))   #eval: 42

Python基础教程(第2版)第五章 条件、循环和其他语句相关推荐

  1. python基础语言与应用第五章_《Python基础教程》 读书笔记 第五章(下)循环语句...

    5.5.1while循环 x=1 while x<=100: print x x+=1 确保用户输入了名字: name="" while not name: name=raw ...

  2. python基础教程读书笔记_《Python基础教程》 读书笔记 第五章(下)循环语句

    导读热词 5.5.1while循环 x=1 while x<=100: print x x+=1 确保用户输入了名字: name="" while not name: nam ...

  3. python基础语言与应用第五章_《Python基础教程》 读书笔记 第五章(下)条件语句...

    5.5.1while循环 1234x=1while x<=100: print x x+=1 确保用户输入了名字: 1234name=""while not name: na ...

  4. Python 基础教程(第二版)读书笔记

    Python 基础教程(第二版) 第一章 在 Python 3 中可直接使用长整数,而不必添加 L 或者 l 的后缀. print在 Python 3 中是函数. 在交互式解释器中使用 if 语句,需 ...

  5. python基础教程第三版电子版百度云-《python基础教程第三版》高清版PDF免费下载...

    下载地址1:http://t.cn/EGxO1sW Python基础教程 第3版Python简明教程书籍 Python编程从入门到实践 灵程序设计丛书 <python基础教程第三版>高清版 ...

  6. python基础教程第三版豆瓣-1024,程序媛/猿请查收!

    点击上方蓝字关注我们 节专享福利:1024程序员 本期活动,不仅有赠书福利,且有购书福利,图灵公司联合当当网特意为{印象python}读者们申请了一波购书福利.感兴趣的读者朋友,请下拉至文末,领取福利 ...

  7. python基础教程pdf百度云-《Python基础教程(第3版)》PDF高清版

    <python基础教程第3版>PDF高清版  百度云资源,内涵教材源代码 百度云链接:百度云盘 提取码:7r7o 编辑推荐 久负盛名的Python入门经典,是非常优秀的基础教程,深入浅出, ...

  8. python基础教程第四版-python基础教程第4版pdf

    python基础教程第4版pdf内容摘要 第二.针对青少年人群的计算机python视频教程.青少年的特点就是有个性.复杂多变.没有耐心.如果他们浏览一个计算机的时候,打开的比较慢,或者是计算机的课程凌 ...

  9. python程序实例教程基础-python基础教程第三版源代码

    [实例简介] python基础教程第三版源代码 python基础教程第三版源代码 [实例截图] [核心代码] Beginning_Python_version3_SourceCode └── Begi ...

  10. 《python基础教程(第二版)》学习笔记 基础部分(第1章)

    <python基础教程(第二版)>学习笔记 基础部分(第1章) python常用的IDE: Windows: IDLE(gui), Eclipse+PyDev; Python(comman ...

最新文章

  1. native react 更新机制_深度使用react-native的热更新能力,必须知道的一个shell命令...
  2. UnicodeEncodeError: 'ascii' codec can't encode character
  3. Mysql 查询一天中,每个小时数据的数量
  4. Nginx在安装过程经常出现的问题
  5. 使用Qt的多线程编程
  6. fluidity详解
  7. c语言equal,C ++中的ratio_equal()示例
  8. C# 8 新提案让泛型 Attribute 成为现实
  9. 初学大数据之Python中5个最佳的数据科学库的学习
  10. python自己创建模块路径_python之本地模块/包使用和创建
  11. ubuntu或者fedora下编译淘宝tair key-value-db的开源内存数据库
  12. python学习笔记2---内置函数
  13. perl语言hello world程序
  14. 这些那些非代码之罪的坑
  15. 【第109期】那碗“我拒绝”的毒鸡汤,坑了多少游戏策划?
  16. 网站 xjjdog.cn,敬请惠存
  17. 如何快速干净的卸载mysql数据库,不影响下次安装
  18. idea无法安装插件
  19. php_uname()函数
  20. mb63.nte.ios.html,2019苹果无限魔力鸟

热门文章

  1. 宝锋UV-5R说明书下载
  2. 公司测试部门来了个00后卷王之王,老油条感叹真干不过,但是...
  3. qnx linux usb驱动,QNX USB device与host模式下驱动脚本详解
  4. 微信公众号 语音录音jssdk
  5. c语言教程在线阅读,《C语言基础教程》.doc
  6. 三十二位计算机游戏推荐,这32种课间游戏不重样,总有一款适合您和学生!| 推荐收藏...
  7. in作为介词的用法_语法专题:介词in的使用规则
  8. (汇总篇)语义SLAM相关开源方案| 全球优秀作者与实验室 | SLAM学习资料整理
  9. 完美二叉树、完全二叉树、完满二叉树
  10. bWAPP解题笔记——A7-Missing Functional Level Access Control