一 函数部分
注意
1. 在python中类型属于对象,变量无类型:例如a=[1,2,3]和a="kobebryant"中,[1,2,3]是list类型,"kobebryant"
是String类型,而变量a无类型,它不过是一个对象的引用,可以指向各种类型。
2. strings, tuples,和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值a=8 后再赋值a=24,实际是新生成一个 int 值对象 24,再让 a 指向它,而 8 被丢弃,
故不是改变a的值,而相当于新生成a。故在函数传递中这些类型相当于值传递,不影响其值。
可变类型:变量赋值bryant=[1997,08,24,2016]后再赋值bryant[1]=8 则是将 list bryant 的一个元素值更改,本身
bryant没有动,而是其内部的一部分值被修改了。故在函数传递中会更改其值。
python函数语法
1.正式的参数传递类型有四种:必备参数,关键字参数,默认参数,不定长参数。
2.匿名函数Lambda
二 模块导入基础
1.import module
2.from a import func 表示导入模块的func函数
3.from math import * 表示导入数学模块中所有
4.包的概念:一个分层次的文件目录结构,定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。包就是文件夹,该文件夹下必须存在 __init__.py 文件, 该文件的内容可为空。__int__.py用于标识当前文件夹是一个包。
三 文件I/O
# -*- coding: utf-8 -*-
fo=open("66.txt","w+")
sub="kobe\nmvp\nchampion!!"
fo.write(sub)
print "\n写入后当前位置:",fo.tell()
print "len:",len(sub)
fo.seek(0,0)
print "重回原点位置:",fo.tell()
print fo.read(4),"读完后当前位置:",fo.tell()
print "换行\\n占了一个位置"
print fo.read(1),"读完一位后当前位置:",fo.tell()
print fo.read(3),"读完后当前位置:",fo.tell()
print "换行\\n占了一个位置"
print fo.read(1),"读完一位后当前位置:",fo.tell()
print fo.read(8),"读完后当前位置:",fo.tell()
print fo.read(2),"读完一位后当前位置:",fo.tell()
print fo.read(1),"读完一位后当前位置:",fo.tell()
print fo.read(1),"读完一位后当前位置:",fo.tell()
fo.seek(-8,2)
print "将位置定到倒数第二位置:",fo.tell()
print "倒数第二位向后读取4字节: ",fo.read(4),'\n'
print "文件属性:",fo.name,fo.closed,fo.mode,fo.softspace
fo.close();
运行结果:
1.open()函数中第二个参数是打开文件的模式,常见有:
2.write()方法写进后当前只是位置将在内容后一个字节处,故写入后若想立即读所写,必须用seek()
方法将位置定到开头,否则读入空或者其他无法预料!其中:
seek():第一个参数是移动的字节数offset,第二个参数from,0表示参考位置是开头,1表示参考位置
是当前,2表示参考位置是末尾!!
3.重命名文件和删除文件:import os后用os.rename("66.txt","newName.txt"),os.remove("66.txt")
4.目录函数(os模块):os.mkdir("newfolder"),os.chdir("newdir"),os.getcwd(),os.rmdir("dirname")等等