第十章 Python语句简介
Python的代码书写要求,以及换行等
语句可以扩越多行,只要将其封闭在圆括号内,方括号内或大括号内即可,可以使用分号终止.
用\可以允许我们跨越多行
一个简单的交互式循环
while True:
input=raw_input("Please input text")
if input=='stop':
break
print input.upper()

while True:
input=raw_input("Please input text:")
if input=='stop':
break
elif not input.isdigit():
print 'bad'*5
else:
print int(input)**2
print bye

while True:
reply=raw_input('Enter text:')
if input=='stop':
break
try:
num=int(input)**2
except:
print 'bad'*8
else:
print num
print 'bye'

第十一章 赋值,表达式和打印
赋值语句
赋值语句建立对象引用值
变量名在首次赋值时候会被创建
变量名在引用前必须先赋值
隐式赋值语句
赋值语句形式
spam='spam'
spam,ham='yum','YUM'
[spam,ham]=['yum','YUM']
a,b,c,d='spam'
spam=ham='lunch'
spams+=42
多目标赋值以及共享引用时候
注意引用的对象是可变还是不可变
变量命名规则 通用
以单一下划线开头的变量名不会被from module import *语句导入
前后有下划线的变量名是系统定义的变量名,对解释器有特殊意义
以两下划线开头,但结尾没有两个下划线的变量名,是类的本地变量
通过交互模式运行时候 只有单个下划线的变量名会保存最后表达式的结果
重定向输出流
print x
等价于
import sys
sys.stdout.write(str(x)+'\n')

import sys
sys.stdout=open('log.txt',a)
...
print x,y,z

log=open('log.txt','w')
print>>log,1,2,3
print>>log,4,5,6
log.close()

第十二章 if测试
通用格式
if:

elif:

else:
字典默认get
branch={'soam':1.25,
'ham':1.99,
'eggs':0.99}
print branch.get('ham','bad')
print branch.get('eggs','bad')
真值测试
2 and 3,3 and 2
返回(3,2)
因为第一行的操作数都是真,所以Python会计算两侧,并返回右侧的对象,在第二个测试中,左侧的操作数为假,所以Python会在该处停止并将其返回作为测试结果
if/else三元表达式
A=Y if X else Z

第十三章 while和for循环
while循环
例子
x='spam'
while x:
print x,
x=x[1:]

a=0;b=10
while a<b:
print a,
a+=1

break 跳出最近所在的循环
continue 调到最近所在循环开头处
pass 什么事也不做,空占位语句
循环else块
只有当循环正常离开时候才会执行

while x
if match(x[0]):
print 'ni'
break
x=x[1:]
else:
print 'not found'

while True:
x=next()
if not x:break
....

x=1
while x:
x=next()
if x:
...
x=next()
while x:
...
x=next()

for循环
for x in ['spam','eggs','ham']:
print x,

sum=0
for x in [1,2,3,4]:
sum=sum+x

prod=1
for item in [1,2,3,4]:
prod*=item

s='lumberjack'
t=('and','I\'m','okay')
for x in s:
print x,
for x in t:
primt x,

在for循环中的元组赋值
T=[(1,2),(3,4),(5,6)]
for (a,b) in T:
print a,b

items=['aaa',111,(4,5),2.01]
tests=[(4,5),3.14]
for key in tests:
for item in items:
if item==key:
print key,"was found"
break
else:
print key,"not found"

文件扫描
file=open('test.txt','r')
print file.read()

file=open('text.txt')
while True:
line=file.readline()
if not line:
break
print line,

file=open('test.txt','rb')
while True:
chunk=file.read(10)
if not chunk:
break
print chunk,

for line in open('test.txt').readline():
print line

迭代器
for x in [1,2,3,4]:
print x**2
for x in (1,2,3,4):
print x**3,
for x in 'spam':
print x*2,
文件迭代器
f=open('test.py')
f.readline()
f.eardline()

f=open('test.py')
f.next()
f.next()

for line in open('test.txt'):
print line.upper()

迭代器在Python中是以C语言的速度运行的,而while循环是通过Python虚拟机器运行Python字节码的.

其他内置类型迭代器
L=[1,2,3]
I=iter(L)
I.next()
I.next()

D={'a':1,'b':2,'c':3}
for key in D.keys():
print key,D[key]

for key in D:
print key,D[key]

字典有一个迭代器,在迭代环境中,会自动依次返回一个键,所以完全不需要在内存中实际建立键列表

in成员关系测试,map内置函数以及其他内置工具也采用了迭代协议
upper=[line.upper() for line in open('test.py')]
map(str.upper(),open('test.py'))
'y=2\n' in open('test.py')
sorted(open('test.py'))

L=[1,2,3,4,5]
for i in range(len(L)):
L[i]+=1

并行遍历:zip和map
L1=[1,2,3,4]
L2=[5,6,7,8]
zip(L1,L2)
for (x,y) in zip(L1,L2):
print x,y,'--',x+y
当参数长度不同的时候,zip会以最短序列的长度为准来阶段所得到的元组

使用zip来构造字典
key=['spam','eggs','toast']
vals=[1,3,5]
D={}
for (k,v) in zip(key,vals):
D[k]=v

D1=dict(zip(key,vals))

产生偏移和元素:enumerate
s='spam'
for (offer,item) in enumerate(s):
print item,'appears at offset',offset

E=enumerate(s)
E.next()
E.next()

列表解析:初探
L=[x+10 for x in L]
lines=[line.rstrip() for line in lines]

扩展列表解析语法
lines=[line.rstrip() for line in open('test.py') if line[0]=='p']
res=[]
for line in open('test.py'):
if line[0]=='p':
res.append(line.rstrip())

Python 学习---------Day4的更多相关文章

  1. python学习day4软件目录结构规范

    为什么要设计好目录结构? 参考:http://www.cnblogs.com/alex3714/articles/5765046.html "设计项目目录结构",就和"代 ...

  2. Python学习-day4

    学习装饰器,首先听haifeng老师讲解了一下准备知识. 1.函数即变量 2.高阶函数+嵌套函数==>装饰器 装饰器的作用是在,1)不改变源代码,2)不改变原函数的调用方式的前提下为函数增加新的 ...

  3. Python学习day4 数据类型Ⅱ(列表,元祖)

    day4 知识补充&数据类型:列表,元祖 1.知识补充 1.编译型/解释型 编译型:在代码编写完成之后编译器将其变成另外一个文件教给你算计执行. 代表语言:Java,c,c++ ,c#, Go ...

  4. python学习day4 数据类型 if语句

    1.变量的内存管理 cpython解释器垃圾回收机制 什么是垃圾,当一个值身上没有绑定变量名时,(该值的引用计数=0时)就是一个垃圾 age=18 #18的引用计数=1 x=age  #18的引用计数 ...

  5. python学习day4之路文件的序列化和反序列化

    json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有 ...

  6. python学习day4之路

    装饰器(http://egon09.blog.51cto.com/9161406/1836763) 1.装饰器:本质是函数: 装饰器(装饰其他函数),就是为其他函数添加附加功能: 原则:1.不能修改被 ...

  7. python学习day4

    目录 一.迭代器 二.yield生成器 三.装饰器 四.递归 五.基础算法 迭代器 #1.在不使用for循环的情况下 li = [11 ,22, 33, 44] #count = len(li) #s ...

  8. python学习Day4 流程控制(if分支,while循环,for循环)

    复习 1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开头__结尾的变量,魔法变量 - ...

  9. python学习 day4 (3月5日)---列表

    列表: 容器性数据 有序  可更改 大量数据 一.增 1.追加    append(objcet) 2.索引增加   Insert(index,元素) 3.迭代追加   extend(object) ...

  10. Python学习笔记,day4

    Python学习第四天 一.装饰器 函数调用顺序: 其他高级语言类似,Python 不允许在函数未声明之前,对其进行引用或者调用 高阶函数: 满足下列条件之一就可成函数为高阶函数 某一函数当做参数传入 ...

随机推荐

  1. struts2的国际化文件在jsp中的引用

    struts.xml中的配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts ...

  2. 【项目】搜索广告CTR预估(二)

    项目介绍 给定查询和用户信息后预测广告点击率 搜索广告是近年来互联网的主流营收来源之一.在搜索广告背后,一个关键技术就是点击率预测-----pCTR(predict the click-through ...

  3. java_js_json_日期格式化

    调用方法: var createBeginTime= createBeginTime.Format("yyyy-MM-dd 00:00:00"); 方法: Date.prototy ...

  4. C/C++入门基础----指针(1)

    指针其实就是一个变量, 和其他类型的变量一样.在32位计算机上, 指针占用四字节的变量.指针与其他变量的不同就在于它的值是一个内存地址,指向内存的另外一个地方, 指针能够直接访问内存和操作底层的数据, ...

  5. 自动生成查找组件的lua代码

    本篇主要解决的问题是使用lua脚本编写unity业务逻辑时,自动生成一些查找组件及绑定控件事件的lua代码! 现在很多unity项目都是用ulua作为热更新解决方案,因此需要用lua来写相关的逻辑,经 ...

  6. RedHat 6.7 Enterprise x64环境下使用RHCS部署Oracle 11g R2双机HA

    环境 软硬件环境 硬件环境: 浪潮英信服务器NF570M3两台,华为OceanStor 18500存储一台,以太网交换机两台,光纤交换机两台. 软件环境: 操作系统:Redhat Enterprise ...

  7. es6之set和map

    1.set ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值,set本身就是构造函数,所以可以通过new的方式来创建对象 // 例一 可以做数组去重用 var set ...

  8. 自定义UISearchBar

    先上系统默认的UISearchBar,然后用KVO修改 UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:_topView.boun ...

  9. JS 获取浏览器和屏幕宽高信息

    网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth ...

  10. WebStorm 8.0.1 注册码

    username:24718-12042010 key:00001h6wzKLpfo3gmjJ8xoTPw5mQvY YA8vwka9tH!vibaUKS4FIDIkUfy!!f 3C"rQ ...