python入门(04)

1、Python time模块(使用前应该import time)
	time.asctime([tupletime])	传入一个时间元组,返回一个可读的24个个字符的字符串
		例:"Tue Dec 11. 18:07:14 2018" →2018年12月11日周二18时07分14秒
	time.clock()	用以浮点数计算的秒数,返回当前的CPU时间,用来衡量不同程序的耗时,比time.time()更有用
	time.ctime([secs])	作用相当于asctime(localtimes(secs))	未给参数相当于asctime()
	time.gmtime(secs)	接收时间戳,返回格林威治天文时间下的时间元组,t.tm_isdst始终为0
	time.localtime([secs])	接收时间戳,返回当地时间下的时间元组,t.tm_isdst的值取决于当地当时是不是夏令时
	time.mktime(tupletime)	接收时间元组返回时间戳
	time.sleep()	可以理解为睡眠函数
	time.strftime(fmt[,tupletime])	接收时间元组,返回可读字符串表示的当地时间,格式由fmt决定
	time.strptime(str,fmt="%a %b %d %H:%M:%S %Y")	根据fmt的格式把一个时间字符串解析为时间元组
	time.time()	返回当前时间的时间戳	
	time.tzset()	根据环境变量TZ重新初始化时间相关设置

2、Python calendar 模块(使用前应import calendar #用来处理日历)
	例:
		import calendar
		cal=calendar.calendar(2018)
		print cal	→打印2018年全年的日历
		cal=calendar.month(2018.1)
		print cal 	→打印2018年1月的日历

	calendar.calendar(year,w=2,l=1,c=6)
	year:要显示的年份
	w:每个月分里面天数间间隔的宽度
	l:上下两行的间隔高度
	c:两个月份之间的间距
	
	calendar.firstweekday()	返回当前每周起始日期的设置,默认情况下首次载入calendar模块时返回0,即星期一
	calendar.isleap(year)	判断是否为闰年,是返回True,否则返回False
	calendar.leapdays(y1,y2)	判断y1-y2年间的闰年总数
	calendar.month(year,month,w=2,l=1)	返回某年某月的日历
	calendar.monthcalendar(year,month)	返回一个整数的单层嵌套列表,每个子列装载代表一个星期的整数,year年month月之外的日期都置为0,范围内的日子由该月的第几天表示,从1开始
	calendar.prcal(year,w=2,l=1,c=6)	相当于calendar.calendar(year,w,l,c),直接打印,不需要print
	calendar.prmonth(year,month,w=2,l=1)	相当于calendar.calendar(year,w,l,c),直接打印,不需要print	
	calendar.setfirstweekday(x)	设置每周的起始日期,x为0-6,0代表星期一,6代表星期日
	calendar.timegm(tuplue)	接收一个时间元组,返回该时刻的时间戳
	calendar.weekday(year,month,day)	返回给定日期的日期码,返回0-6任意一个数

3、Python定义函数
	1)函数代码块以def关键字开头,后接函数名和小括号
	2)任何传入参数和自变量必须放在小括号之间,括号之间可以用于定义参数
	3)函数的第一行语句可以存放函数说明,可以理解为注释
	4)函数内容是从冒号开始,并且缩进
	5)return[表达式]结束函数,选择性的返回一个值给调用方,不代表达式的retuen相当于返回None
	在Python中类型属于对象,变量是没有类型的,它仅仅是一个对象的引用
	Python中,string、tuples和number是不可更改对象,而list、dict等是可以修改的
	不可变类型:
		变量赋值a=5后再赋值,a=10,这里实际是生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a
	可变类型变量赋值:
		list[1,2,3,4,5],然后再赋值list[2]=7,list中的第三个元素被更改,本身list没有动,只有其内部的一部分值被改变了。

4、Python函数传参
	不可变类型:类似于C++的值传递,如整数、字符串、元组,例:fun(a)传递的是a的值,没有影响a对象本身,比如在fun(a)内部修改a的值,只是设定的修改另一个复制对象,不会影响a本身
	可变类型:类似C++的引用传递,如列表、字典是将list真正的传过去,修改后test外部的list也会受影响
	必备参数:一定要的参数,没有这个参数,运行会报错
	关键字参数:在括号中传递的时候才设定的
	缺省参数:在括号中可以设置好默认参数,传参时可以不传这个参数
	不定长参数:用指针指向后面的参数
匿名函数:lambda
	test=lambda x,y :x+y
	print test(1,1)	→2

5、Python局部变量和全局变量
	在局部中要修改全局变量要加上global关键词,其他的和C语言一样

6、Python模块(一个模块只会被导入一次)
	模块的引用:import + 模块名,如import time
	从模块中导入一个指定的部分到当前命名空间 from…import…	例:from time import localtime
	导入一个模块中的所有项目;这种声明不该被过多的使用	例:from time import *
	导入模块的顺序:当前目录→搜索在shell变量PYTHONPATH下的每个目录→查看默认路径
	模块搜索路径存储在system的sys.path中,查看一个模块下的东西用dir()	例:dir(time)
	global()和locals()这两个函数都可被用来返回全局和局部命名空间里的名字
		在函数内部调用locals()返回所有能在该函数里访问的命名
		调用globals()返回所有在该函数里能访问的全局名字
		注意:它们返回的都是字典型,名字可以使用keys()摘取
	reload()函数:当一个模块被导入一个脚本,模块顶层部分代码只会被执行一次,想重新执行模块里顶层部分代码,用reload(),该函数会重新载入之前导入过的模块	例:reload(time)

7、Python文件I/O
	raw_input()从标准输入读取一行,并返回一个字符串(去掉结尾的换行符)
	input()和上一个一样,还可以接收一个表达式,并返回运算结果
	注意:在Python3.X中已经没有raw_input这个函数了
打开文件:fd=open("文件名","权限")
关闭文件:fd.close()
	fd.mode()返回打开文件的权限
	fd.name()返回打开文件的文件名
	fd.closed()关闭文件返回True,否则返回False
文件权限:
	r	只读方式打开文件,文件指针放在文件开头
	rb	二进制只读方式打开文件,文件指针放在文件开头
	r+	读写权限打开文件,文件指针放在文件开头
	rb+	二进制读写权限打开文件,文件指针放在文件开头
	w	只写方式打开文件,文件存在则覆盖,不在则创建
	wb	二进制只写方式打开文件,文件存在则覆盖,文件不在则创建
	w+	读写方式打开文件,文件存在则覆盖,不在则创建
	wb+	二进制读写方式打开文件,文件存在则覆盖,不在则创建
	a	追加形式打开文件,文件存在,文件指针放在文件结尾,不在则创建
	ab	二进制追加形式打开文件,文件存在,文件指针放在文件结尾,不在则创建
	a+	追加读写形式打开文件,文件存在,文件指针放在文件末尾,不在则创建
	ab+	二进制追加读写形式打开文件,文件存在,文件指针放在文件末尾,不在则创建
转换成表格:
	模式		r	r+	w	w+	a	a+
	读		+	+		+		+
	写			+	+	+	+	+
	创建				+	+	+	+
	覆盖				+	+
	指针在头	+	+	+	+
	指针在尾					+	+
读取文件:fd.read()	括号内不带参数,则是把文件内容全部读完
写入文件:fd.write()	括号内填写即将写入的数据
	注意:读写形式看打开文件时所用的权限
	      多次调用read函数,只会打印一次,要每次都打印,需要把文件指针置于文件开始即可,
		即fd.seek(0,0)或fd.seek(0)	最后一位数字:0是文件开头,1是当前位置,2是文件尾
	fd.tell()	返回一个整型数,表示文件内的当前位置
重命名、删除文件需要导入os模块(import os)
	重命名:os.rename("名1","名2")	名1为原文件名,名2为修改后的文件名
	删除文件:os.remone("文件名")
	创建目录:os.mkdir("创建的目录名")
	进入目录:os.chdir("目录名")
	删除目录:os.rmdir("目录名")

8、Python异常处理
	异常时Python的对象,表示一个错误,当python脚本发生异常时,要进行异常捕获处理,否则程序会终止执行
	捕捉异常用try/except语句,try/except语句用来检测语句块中的错误,从而让except语句捕获异常信息并处理,例:
	try:
		<语句>	#运行别的代码
	except:
		<语句>	#如果在try部分触发了异常,则执行该块语句
	else:
		<语句>	#不出错则执行else语句
	以上方式可以捕获所有异常,由于可以捕获全部的异常,不能识别出具体的异常信息,不提倡使用这种方法
使用except带多个异常:
	try:
		<语句>	#运行别的代码
	except 异常一,异常二…:
		<语句>	#发生异常之一,执行该块语句
	else:
		<语句>	#不出错则执行else语句	
try/finally:该语句无论是否发生异常都将执行最后的代码块,例:
	try:
		<语句>
	finally:
		<语句>	#退出try时总会执行该语句
异常的参数:
	try:
		<语句>
	except 异常一,Argument:
		print Argument
人为触发异常:
	raise语句,自行触发异常
	raise 异常1,"自己提供的异常参数",tracback
		tracback这个参数是可选的,实践中很少使用,如果存在,是用于跟踪异常对象。一个异常可以是一个字符串、类或对象
用户自定义异常:创建一个新的异常类,程序可以命名它们自己的异常,新异常的类应该直接或间接的继承Exception类,如:
	class Networkerror(RuntimeError)
		def __init__(self,arg)
			self.args=arg
触发异常:
	try:
		raise NETWORKERROR ("Bad hostname")
	except Networkerror,e:
		print e.args	#打印一个元组

--------------------到此Python的基本语法已经学完--------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值