码迷,mamicode.com
首页 > 编程语言 > 详细

3、Python迭代器、列表解析及生成器(0530)

时间:2018-07-21 22:37:49      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:rssi   name   换工作   lis   缓存   nod   回顾   moved   文件的   

回顾:

1、动态语言

  • sys.getrefcount()    //查看对象的引用计数
  • 增加对象的引用计数场景
  • 对象创建时:以赋值的方式,创建变量名的同时就会创建变量
  • 将对象添加进容器时:类似list.append()
  • 当对象被当作参数传递给函数时
  • 多重目标赋值时:s1 = s2 = s3 = ‘abc‘
  • 为对象创建另外的变量名
  • 减少引用计数
  • 引用此对象的某变量名被显示销毁:del x
  • 引用此对象的某变量名重新赋值
  • 从容器中移除对象时,类似list.pop()
  • 容器本身被销毁

 

2.if

if boolean_exprssion:

....

elif boolean_exprssion:

....

else:

....

 

3.while

while boolean_exprssion:

while_suite

if boolean_esprssion2:contine

if boolean_esprssion3:break

else

else_suite

 

4.for

for  exprssion in object:

while_suite

if boolean_esprssion2:contine

if boolean_esprssion3:break

else

else_suite

 

raw_input :输入一个内容

技术分享图片

for循环练习

1、逐一分开显示指定字典d1中的所有元素,类似如下

k1 v1

k2 v2

 技术分享图片

2、逐一显示列表中l1=[‘Sun‘,‘Mon‘,‘Tue‘,‘Wed‘,‘Thu‘,‘Fri‘,‘Sat‘]中的索引为奇数的元素;

技术分享图片

3、将属性列表l1=[‘Sun‘,‘Mon‘,‘Tue‘,‘Wed‘,‘Thu‘,‘Fri‘,‘Sat‘],但不属于列表l2=[‘Sun‘,‘Mon‘,‘Wed‘,‘Thu‘,‘Sat‘]的所有元素定义为一个新列表l3;

 技术分享图片

4、已知列表namelist=[‘stu1‘,‘stu2‘,‘stu3‘,‘stu4‘,‘stu5‘,‘stu6‘,‘stu7‘],删除列表removelist=[‘stu3‘,‘stu7‘,‘stu9‘]

请将属于removelist列表中的每个元素从namelist中移除(属于removelist,但不属于namelist的忽略即可)

技术分享图片

非完备遍历:

在实现循环时,如果在实现索引计数时,通过range方式获取列表或某一序列的有限的索引,

比如练习2的range(1,len(l1),2)中,只遍历了索引为偶数的元素

完备遍历:

迭代:重复做一件事

 

列表解析:

根据已有列表,生成新的列表

 

 

文件对象:

文本都是字节序列

 

var_name = open (file_name[mode,[bufsize]])

 

mode:

r

w

a

r+

w+

a+

 

b表示已二进制模式打开文件

rb

wb

ab

rb+

wb+

ab+

 

缓存:

0表示不使用缓存

负数表示使用系统默认的缓存

1表示使用缓存

整数表示使用大小的缓冲区

 

 

file.seek(offset[whence])

whence:起点

0:从文件头

1:从当前位置

2:从文件尾

 

offset:偏移量

 

 

 

文件系统模块:os

 

 

目录:

chdir():切换工作目录

chroot():设定当前进程的根目录

listdir():列出指定目录下的所有文件名

mkdir():创建指定目录

makedirs():创建多久目录

getcwd():获取工作目录

rmdir():删除目录

removedirs():删除多级目录

 

文件:

mkfifo():创建管道

mknod():创建设备文件

remove():删除文件

unlink():删除链接文件

rename():重命名

stat():放回文件的状态信息

symlink():创建链接文件

utime():更新时间戳

tmpfile():创建并打开(w+b)一个新的临时文件

walk():创建目录树

 

访问权限相关的

access():检验某个用户或用户组的权限模式

chmod():修改权限

chown():修改属主和属组

umask():设置默认权限模式

 

文件描述符:

open():底层操作系统的open()

read():

write():

 

设备文件:

makedev():

major():获取主设备号

minor():获取次设备号

 

路径管理:

import os.path

basename():路径基名

dirname():路径目录名

join():整合文件名

split():返回dirname(),basename()元组

splitext():返回(filename,extension)元组

 

 

信息:

getatime()

getctime()

getmtime()

getsize():返回文件的大小

 

查询

exists():判断指定文件是否存在

isabs():判断指定的路径是否为绝对路径

isdir():是否为目录

isfile():是否为文件

islink():是否为符号链接

ismount():是否为挂载点

samefile():两个路径是否指向了同一个文件

 

练习:判断文件是否存在,存在则打开

让用户通过键盘反复输入多行数据

追加保存至此文件中

 

#!/usr/bin/python

import os

import os.path

filename=raw_input(‘plz a file name:‘)

if os.path.isfile(filename):

openname= open(filename,‘a+‘)

while True:

newline=raw_input(‘plz a line:‘)

if newline == ‘q‘ or newline ==‘quit‘:

break

else:

openname.write(newline+‘\n‘)

openname.close()

 

 

对象持久存储

pickle

marshal

 

DBM接口

 

shaelve模块

 

3、Python迭代器、列表解析及生成器(0530)

标签:rssi   name   换工作   lis   缓存   nod   回顾   moved   文件的   

原文地址:https://www.cnblogs.com/hanshanxiaoheshang/p/9348049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!