python笔记12 - 装饰器,模块(时间,数学)
2017-10-31 17:21
447 查看
2017/10/17
装饰器,模块(时间,数学)
1.装饰器decorator(专业提高篇):
装饰器是一种函数,主要作用是用来包装另一个函数或者是类;
包装的目的:
是在不改变原函数名的情况下,改变被包装函数(对象)的行为;
装饰器函数:
def 装饰器函数名(参数):
函数块
return 函数
带装饰器函数的语法:
@ 装饰器函数名[(装饰器函数传参)]<换行>
def 函数名(参数列表):
语句块
[注]:[]表示可省略
实例:
def deco(fn):
print("装饰器函数被调用,并返回原函数")
return fn
实例:
def myfunc():
print("函数myfunc被调用!")
myfunc()
实例:
def deco(fn);
print('装饰器函数被调用,并返回原函数')
print(fn)
return lambda : print('hello world!') #lambda是函数名,匿名
@deco
def myfunc():
print('函数myfun被调用!')
myfunc()
myfunc()
#以上@deco语句等同于
#myfunc = deco(myfunc)
总结:将原来的函数绑定成另一个函数的语句块,另一个函数需要返回内容。另一个函数会在 @的时候 最初运行一次。
--------------------------------------------------------------------
实例:
def msg_service(fn):
def savemoney2(name,x):
print('欢迎',name,'来北京银行,请取号!')
fn(name,x)
print(name,'办理存',x,'元钱的业务,短信发送中...')
return savemoney2
def savemoey(name,x):
print(name,'存在',x,'元')
savemoey('小张',200)
savemoey('小赵',500)
savemoey('小王',400)
savemoey('小于',700)
>>>
小张 存在 200 元
小赵 存在 500 元
小王 存在 400 元
小于 存在 700 元
--------------------------------------------------------------------
实例-接上对比:
def msg_service(fn):
def savemoney2(name,x):
print('欢迎',name,'来北京银行,请取号!')
fn(name,x) #######闭包知识
print(name,'办理存',x,'元钱的业务,短信发送中...')
return savemoney2
@msg_service ##########@@@@@@@等同于savemoey = msg_service(savemoey)
def savemoey(name,x):
print(name,'存在',x,'元') 过程:删除本行函数语句,返回需要执行的语句
savemoey('小张',200)
savemoey('小赵',500)
savemoey('小王',400)
savemoey('小于',700)
>>>
欢迎 小张 来北京银行,请取号!
小张 存在 200 元
小张 办理存 200 元钱的业务,短信发送中...
欢迎 小赵 来北京银行,请取号!
小赵 存在 500 元
小赵 办理存 500 元钱的业务,短信发送中...
欢迎 小王 来北京银行,请取号!
小王 存在 400 元
小王 办理存 400 元钱的业务,短信发送中...
欢迎 小于 来北京银行,请取号!
小于 存在 700 元
小于 办理存 700 元钱的业务,短信发送中...
--------------------------------------------------------------------
###################以下方法不可取###########################
def savemokey2(name,x):
print('欢迎',name,'来北京银行,请取号!')
savemoey(name,x):
print(name,'办理存',x,'元钱的业务,短信发送中...')
###原因在于,如果想要调用 savemoey() 和 savemoey2() 函数,需要进行多次调用,如果用装饰器,只用savemoey()即可解决
#############################################################
=====================================================================
2.函数的文档字符串:
语法:
def 函数名(参数列表):
"函数文档字符串" ####冒号后面的第一行字符串,不复制给任何的变量,通常在函数定义之后,第一个语句之前
语句块 ####文档字符串,非注释内容
...
作用:
文档字符串通常用来说明函数的功能和用法
用>>> help(函数名)可以产看文档字符串
实例:
def mymax(a,b):
"""mymax函数用于取两个变量的最大值
a 形参
b 也是形参
"""
pass
注:在交互模式下使用命令 help(mymax)
>>>
Help on function mymax in module __main__:
mymax(a, b)
mymax函数用于取两个变量的最大值
a 形参
b 也是形参
=====================================================================
3.已经学过的函数的语法:
[@装饰器名]
def 函数名([未知参数],[*元组参数],[命名关键字参数],[**字典参数]):
["文档字符串"]
语句块
注:[]表示内部的内容可以省略
=====================================================================
4.函数的属性:
(1)__name__
作用:用来记录函数名
说明:以双下划线开头,以双下划线结尾的标识符通常表示python的特殊属性等,返回函数对象绑定的名字。
实例:
def abc():
pass
a = abc
print(a.__name__) #abc
>>> a.__name__ #函数对象a绑定了函数abc,abc是函数对象的名字
'abc'
(2)__doc__属性
作用:用于记录文档字符
实例:
def cba():
"我是文档字符串"
pass
>>> cba.__doc__ #注意,只可以提取文档字符串,无法获取注释
'我是文档字符串'
=====================================================================
5.补充内容:布尔测试
bool(x) #True/False
结果为False的情况:
None
False
0
0.0
0+0j
[]
''
()
{}
set()
frozenset()
=====================================================================
6.模块 Module
模块是一个包含有一系列变量,函数,类等组成的程序组;
模块是一个文件,模块文件名通常以.py结尾
作用:
让一些相关的变量,函数,类等有逻辑的组织在一起,让逻辑结构更加清晰;
模块中的变量,函数和类等可供其他模块或程序使用
分类:
内置模块(builtins),在解析器的内部可以直接使用;
安装的标准库模块,安装python时已经安装,可直接使用;
第三方模块(通常开源),需要自己安装;
用户自己编写的模块(可以作为其他人的第三方模块)
--------------------------------------------------------------------
模块的导入:
(1)import 语句
语法:
import 模块名1[as 模块新名1],模块名1[as 模块新名2],....
如果导入的模块在整个程序中,有被当做变量使用,其打印值的时候仍然会当做模块名而没有办法打印,程序报错。
如果将模块名改名:import math as m,那么就可以进行print(math)操作,而math模块以后都只可以用m 名代替。
实例:
import math
import sys,os
作用:
将某模块整体导入到当前模块
import语句的用法:
模块名.属性名
math.sin(3.14)
相关函数:@@@@@@@@@@@@@@@@@@@@@
help(obj) 函数,可以查看模块相当的文档字符串 例:help(math)
dir(obj)函数,返回模块所有属性的字符串列表 例:help(dir)
实例:
import math
s = math.log10(10)
print(s)
(2)from import 语句
语法:
from 模块名 import 模块属性1 [as 属性别名1],模块属性名2[as 属性名2],...
作用:将某模块内的一个或多个属性(模块内的一种函数)导入到当前模块
意义:程序中,只是用几个模块属性,而又不想经常键入 模块名. 的时候,可以这样使用
实例:
from math import sin
from math import pi
from math import factorial as fac
实例:
from math import factorial as fac
s = fac(5) #阶乘,可以免去程序中键入 模块名.
print(5)
>>>120
(3)from import * 语句
语法:
from 模块名 import *
作用:
将某模块所有的属性导入到当前的模块
实例:
from math import *
print(sin(pi/2))
print(pi)
print(log10(10))
>>>
1.0
3.141592653589793
1.0
--------------------------------------------------------------------
dir()函数
dir([对象]) 返回一个字符串列表
作用:
如果没有参数调用,则返回当前作用域内的所有变量的列表;
如果给定一个对象作为参数,则返回这个对象的所有变量列表
对于模块,返回这个模块的全部变量
对于类,返回类对象的所有变量
对于其他对象,返回所有变量,类变量和基类变量
内置模块(built-in):
builtins,sys,time,itertools....,math
标准库模块(os.py):
random,datetime,os,xml
实例:
dir()
dir(sin)
下载python手册,下载内置模块,标准库模块的应用方法:
http://docs.python.org
--------------------------------------------------------------------
模块学习:
(1)时间模块 time
提供时间相关的函数,且一直可用
导入方式:
import time
from time import *
from time import xxx
help(time) 查看时间模块的相关信息
时间简介:
公元纪年是公元0000年1月1日开始
对于Unix/Linux系统,计算机元年是从1970-1-1零时开始的,此时时间为0
UTC时间(Coordinated Universal Time)是从Greenwich时间开始计算的
UTC时间不会因为时区问题而产生错误
DST(Daylight Saving Time)阳光节约时间,又称夏令时,是经过日照时间修正后的时间
时间元组:
是一个9个整数组成的,这9个元素自前至后依次为:
四位的年(如:1993)
月(1-12)
日(1-31)
时(0-23)
分(0-59)
秒(0-59)
星期几(0-6,周一是0)
元旦开始日(1-366)
夏令时修正时间(-1,0 或 1)
注意:如果年份小于100,则会自动转换为加上1900后的值
模块中的变量和函数:
变量:
time.timezone 本地区时间与UTC时间差(秒为单位)
time.altzone 夏令时间与UTC时间差(秒为单位)
time.daylight 夏令时校正时间
time.tzname 时区名称的元组 注:CST china standard time
实例(交互环境):
>>>time.time()
1508226734.464446
函数:
time.time() 返回计算机元年至当前时间的秒数的浮点数(UTC时间为准)
time.sleep(seconds) 让程序按给定的秒数睡眠一段时间
time.gmtime([seconds]) 将给定的秒数转换为UTC表达的时间元组
time.mktime(tuple) 将时间元组转换为新纪元秒数时间(UTC时间为准)
time.asctime([tuple]) 将时间元组转换为字符串
time.localtime([seconds]) 将UTC秒数转换为时间元组(以本地时间为准)
time.clock() 返回CPU开始运行到现在的时间的秒数的浮点数
注[]内内容可省略
实例:
time.sleep(2)
time.time.gmtime()
>>>time.struct_time(tm_year=2017, tm_mon=10, tm_mday=17, tm_hour=8, tm_min=8, tm_sec=1, tm_wday=1, tm_yday=290, tm_isdst=0)
time.mktime((1970,1,1,9,0,0,0,0,0)) #创建时间
>>>3600.0 #计算机时间至此的秒数时间
time.asctime((2008,8,8,0,0,0,0,0,0))
>>>Mon Aug 8 00:00:00 2008'
time.localtime()
>>>time.struct_time(tm_year=2017, tm_mon=10, tm_mday=17, tm_hour=16, tm_min=10, tm_sec=41, tm_wday=1, tm_yday=290, tm_isdst=0)
time.clock()
>>>0.432308
练习:
写一个程序,输入出生日期,算出你已经出生多少天。
解:
import time
a = time.mktime((2017,10,17,0,0,0,0,0,0))
b = time.mktime((1993,2,28,0,0,0,0,0,0))
c = a - b
c = c // (24*60*60)
print(c)
--------------------------------------------------------------------
(2)数学模块 math
注:linux下为内建模块
Mac OS 为标准库模块
变量:
math.e 自然对数e
math.pi 圆周率
函数
math.ceil(x) 对x向上取整,比如 x = 1.2,返回2 (ceil天花板)
math.floor(x) 对x向下取整,比如 x = 1.2,返回1 (floor地板)
math.sqrt(x) 返回x的平方根
math.factorial(x) 求x的阶乘
math.log(x[,base]) 返回以base为底x的对数,如果不给出base,则以自然对数e为底
math.log10(x) 求以10为底x的对数
math.pow(x,y) 返回x**y
math.fabs(x) 返回浮点数x的绝对值
#角度和弧度转换
math.degrees(x) 将弧度x转换为角度
math.radians(x) 将角度x转换为弧度
#三角函数
math.sin(x) 返回x的正弦(x为弧度值)
math.cos(x) 返回x的余弦(x为弧度值)
math.tan(x) 返回x的正切(x为弧度值)
#三角函数
math.asin(x) 返回x的反正弦(x为弧度值)
math.acos(x) 返回x的反余弦(x为弧度值)
math.atan(x) 返回x的反正切(x为弧度值)
实例:
>>>math.log(8,2) #3.0
from math import *
a = log(8,e)
print(a) #2.0794415416798357
a = log(8)
print(a) #2.0794415416798357
练习1:
输入圆的半径r 和圆的角度d,算出圆的扇形的面积。
from math import *
def s(r):
s = r ** 2 * pi
return s
a = float(input('please enter the radious:'))
print(s(a))
练习2:
写一个程序打印出一个电子时钟,格式为:HH:MM:SS,17:27:23
每隔一秒钟,打印刷新一次
解:
from time import *
while 1:
t = localtime()
sleep(1)
print("%02d:%02d:%02d" % (t[3],t[4],t[5]),end='\r')
练习3:
编写一个闹钟程序,启动时设置定时时间,到时间后打印一句话“起床了”,然后退出程序
解:
from time import *
a1 = int(input('闹钟年时间:'))
a2 = int(input('闹钟月时间:'))
a3 = int(input('闹钟日时间:'))
a4 = int(input('闹钟时时间:'))
a5 = int(input('闹钟分时间:'))
a6 = int(input('闹钟秒时间:'))
t1 = (a1,a2,a3,a4,a5,a6,0,0,0)
t_clock = mktime(t1) #t_clock = mktime((a1,a2,a3,a4,a5,a6,0,0,0))
while 1:
t2 = localtime()
sleep(1)
print("%02d:%02d:%02d" % (t2[3],t2[4],t2[5]),end='\r')
t_now = mktime(t2)
if t_clock == t_now:
print('起床!!!!!!!!!!!!!!!!!')
break
如果用./students.py运行,需要为该文件添加执行权限 chmod u+x shiyan.py 并在该程序文档的首行(必须是第一行)键入#!/usr/bin/python3 来声明python3 解释执行器的位置
如果是shell文件 则要键入 #!/usr/bin/bash
装饰器,模块(时间,数学)
1.装饰器decorator(专业提高篇):
装饰器是一种函数,主要作用是用来包装另一个函数或者是类;
包装的目的:
是在不改变原函数名的情况下,改变被包装函数(对象)的行为;
装饰器函数:
def 装饰器函数名(参数):
函数块
return 函数
带装饰器函数的语法:
@ 装饰器函数名[(装饰器函数传参)]<换行>
def 函数名(参数列表):
语句块
[注]:[]表示可省略
实例:
def deco(fn):
print("装饰器函数被调用,并返回原函数")
return fn
实例:
def myfunc():
print("函数myfunc被调用!")
myfunc()
实例:
def deco(fn);
print('装饰器函数被调用,并返回原函数')
print(fn)
return lambda : print('hello world!') #lambda是函数名,匿名
@deco
def myfunc():
print('函数myfun被调用!')
myfunc()
myfunc()
#以上@deco语句等同于
#myfunc = deco(myfunc)
总结:将原来的函数绑定成另一个函数的语句块,另一个函数需要返回内容。另一个函数会在 @的时候 最初运行一次。
--------------------------------------------------------------------
实例:
def msg_service(fn):
def savemoney2(name,x):
print('欢迎',name,'来北京银行,请取号!')
fn(name,x)
print(name,'办理存',x,'元钱的业务,短信发送中...')
return savemoney2
def savemoey(name,x):
print(name,'存在',x,'元')
savemoey('小张',200)
savemoey('小赵',500)
savemoey('小王',400)
savemoey('小于',700)
>>>
小张 存在 200 元
小赵 存在 500 元
小王 存在 400 元
小于 存在 700 元
--------------------------------------------------------------------
实例-接上对比:
def msg_service(fn):
def savemoney2(name,x):
print('欢迎',name,'来北京银行,请取号!')
fn(name,x) #######闭包知识
print(name,'办理存',x,'元钱的业务,短信发送中...')
return savemoney2
@msg_service ##########@@@@@@@等同于savemoey = msg_service(savemoey)
def savemoey(name,x):
print(name,'存在',x,'元') 过程:删除本行函数语句,返回需要执行的语句
savemoey('小张',200)
savemoey('小赵',500)
savemoey('小王',400)
savemoey('小于',700)
>>>
欢迎 小张 来北京银行,请取号!
小张 存在 200 元
小张 办理存 200 元钱的业务,短信发送中...
欢迎 小赵 来北京银行,请取号!
小赵 存在 500 元
小赵 办理存 500 元钱的业务,短信发送中...
欢迎 小王 来北京银行,请取号!
小王 存在 400 元
小王 办理存 400 元钱的业务,短信发送中...
欢迎 小于 来北京银行,请取号!
小于 存在 700 元
小于 办理存 700 元钱的业务,短信发送中...
--------------------------------------------------------------------
###################以下方法不可取###########################
def savemokey2(name,x):
print('欢迎',name,'来北京银行,请取号!')
savemoey(name,x):
print(name,'办理存',x,'元钱的业务,短信发送中...')
###原因在于,如果想要调用 savemoey() 和 savemoey2() 函数,需要进行多次调用,如果用装饰器,只用savemoey()即可解决
#############################################################
=====================================================================
2.函数的文档字符串:
语法:
def 函数名(参数列表):
"函数文档字符串" ####冒号后面的第一行字符串,不复制给任何的变量,通常在函数定义之后,第一个语句之前
语句块 ####文档字符串,非注释内容
...
作用:
文档字符串通常用来说明函数的功能和用法
用>>> help(函数名)可以产看文档字符串
实例:
def mymax(a,b):
"""mymax函数用于取两个变量的最大值
a 形参
b 也是形参
"""
pass
注:在交互模式下使用命令 help(mymax)
>>>
Help on function mymax in module __main__:
mymax(a, b)
mymax函数用于取两个变量的最大值
a 形参
b 也是形参
=====================================================================
3.已经学过的函数的语法:
[@装饰器名]
def 函数名([未知参数],[*元组参数],[命名关键字参数],[**字典参数]):
["文档字符串"]
语句块
注:[]表示内部的内容可以省略
=====================================================================
4.函数的属性:
(1)__name__
作用:用来记录函数名
说明:以双下划线开头,以双下划线结尾的标识符通常表示python的特殊属性等,返回函数对象绑定的名字。
实例:
def abc():
pass
a = abc
print(a.__name__) #abc
>>> a.__name__ #函数对象a绑定了函数abc,abc是函数对象的名字
'abc'
(2)__doc__属性
作用:用于记录文档字符
实例:
def cba():
"我是文档字符串"
pass
>>> cba.__doc__ #注意,只可以提取文档字符串,无法获取注释
'我是文档字符串'
=====================================================================
5.补充内容:布尔测试
bool(x) #True/False
结果为False的情况:
None
False
0
0.0
0+0j
[]
''
()
{}
set()
frozenset()
=====================================================================
6.模块 Module
模块是一个包含有一系列变量,函数,类等组成的程序组;
模块是一个文件,模块文件名通常以.py结尾
作用:
让一些相关的变量,函数,类等有逻辑的组织在一起,让逻辑结构更加清晰;
模块中的变量,函数和类等可供其他模块或程序使用
分类:
内置模块(builtins),在解析器的内部可以直接使用;
安装的标准库模块,安装python时已经安装,可直接使用;
第三方模块(通常开源),需要自己安装;
用户自己编写的模块(可以作为其他人的第三方模块)
--------------------------------------------------------------------
模块的导入:
(1)import 语句
语法:
import 模块名1[as 模块新名1],模块名1[as 模块新名2],....
如果导入的模块在整个程序中,有被当做变量使用,其打印值的时候仍然会当做模块名而没有办法打印,程序报错。
如果将模块名改名:import math as m,那么就可以进行print(math)操作,而math模块以后都只可以用m 名代替。
实例:
import math
import sys,os
作用:
将某模块整体导入到当前模块
import语句的用法:
模块名.属性名
math.sin(3.14)
相关函数:@@@@@@@@@@@@@@@@@@@@@
help(obj) 函数,可以查看模块相当的文档字符串 例:help(math)
dir(obj)函数,返回模块所有属性的字符串列表 例:help(dir)
实例:
import math
s = math.log10(10)
print(s)
(2)from import 语句
语法:
from 模块名 import 模块属性1 [as 属性别名1],模块属性名2[as 属性名2],...
作用:将某模块内的一个或多个属性(模块内的一种函数)导入到当前模块
意义:程序中,只是用几个模块属性,而又不想经常键入 模块名. 的时候,可以这样使用
实例:
from math import sin
from math import pi
from math import factorial as fac
实例:
from math import factorial as fac
s = fac(5) #阶乘,可以免去程序中键入 模块名.
print(5)
>>>120
(3)from import * 语句
语法:
from 模块名 import *
作用:
将某模块所有的属性导入到当前的模块
实例:
from math import *
print(sin(pi/2))
print(pi)
print(log10(10))
>>>
1.0
3.141592653589793
1.0
--------------------------------------------------------------------
dir()函数
dir([对象]) 返回一个字符串列表
作用:
如果没有参数调用,则返回当前作用域内的所有变量的列表;
如果给定一个对象作为参数,则返回这个对象的所有变量列表
对于模块,返回这个模块的全部变量
对于类,返回类对象的所有变量
对于其他对象,返回所有变量,类变量和基类变量
内置模块(built-in):
builtins,sys,time,itertools....,math
标准库模块(os.py):
random,datetime,os,xml
实例:
dir()
dir(sin)
下载python手册,下载内置模块,标准库模块的应用方法:
http://docs.python.org
--------------------------------------------------------------------
模块学习:
(1)时间模块 time
提供时间相关的函数,且一直可用
导入方式:
import time
from time import *
from time import xxx
help(time) 查看时间模块的相关信息
时间简介:
公元纪年是公元0000年1月1日开始
对于Unix/Linux系统,计算机元年是从1970-1-1零时开始的,此时时间为0
UTC时间(Coordinated Universal Time)是从Greenwich时间开始计算的
UTC时间不会因为时区问题而产生错误
DST(Daylight Saving Time)阳光节约时间,又称夏令时,是经过日照时间修正后的时间
时间元组:
是一个9个整数组成的,这9个元素自前至后依次为:
四位的年(如:1993)
月(1-12)
日(1-31)
时(0-23)
分(0-59)
秒(0-59)
星期几(0-6,周一是0)
元旦开始日(1-366)
夏令时修正时间(-1,0 或 1)
注意:如果年份小于100,则会自动转换为加上1900后的值
模块中的变量和函数:
变量:
time.timezone 本地区时间与UTC时间差(秒为单位)
time.altzone 夏令时间与UTC时间差(秒为单位)
time.daylight 夏令时校正时间
time.tzname 时区名称的元组 注:CST china standard time
实例(交互环境):
>>>time.time()
1508226734.464446
函数:
time.time() 返回计算机元年至当前时间的秒数的浮点数(UTC时间为准)
time.sleep(seconds) 让程序按给定的秒数睡眠一段时间
time.gmtime([seconds]) 将给定的秒数转换为UTC表达的时间元组
time.mktime(tuple) 将时间元组转换为新纪元秒数时间(UTC时间为准)
time.asctime([tuple]) 将时间元组转换为字符串
time.localtime([seconds]) 将UTC秒数转换为时间元组(以本地时间为准)
time.clock() 返回CPU开始运行到现在的时间的秒数的浮点数
注[]内内容可省略
实例:
time.sleep(2)
time.time.gmtime()
>>>time.struct_time(tm_year=2017, tm_mon=10, tm_mday=17, tm_hour=8, tm_min=8, tm_sec=1, tm_wday=1, tm_yday=290, tm_isdst=0)
time.mktime((1970,1,1,9,0,0,0,0,0)) #创建时间
>>>3600.0 #计算机时间至此的秒数时间
time.asctime((2008,8,8,0,0,0,0,0,0))
>>>Mon Aug 8 00:00:00 2008'
time.localtime()
>>>time.struct_time(tm_year=2017, tm_mon=10, tm_mday=17, tm_hour=16, tm_min=10, tm_sec=41, tm_wday=1, tm_yday=290, tm_isdst=0)
time.clock()
>>>0.432308
练习:
写一个程序,输入出生日期,算出你已经出生多少天。
解:
import time
a = time.mktime((2017,10,17,0,0,0,0,0,0))
b = time.mktime((1993,2,28,0,0,0,0,0,0))
c = a - b
c = c // (24*60*60)
print(c)
--------------------------------------------------------------------
(2)数学模块 math
注:linux下为内建模块
Mac OS 为标准库模块
变量:
math.e 自然对数e
math.pi 圆周率
函数
math.ceil(x) 对x向上取整,比如 x = 1.2,返回2 (ceil天花板)
math.floor(x) 对x向下取整,比如 x = 1.2,返回1 (floor地板)
math.sqrt(x) 返回x的平方根
math.factorial(x) 求x的阶乘
math.log(x[,base]) 返回以base为底x的对数,如果不给出base,则以自然对数e为底
math.log10(x) 求以10为底x的对数
math.pow(x,y) 返回x**y
math.fabs(x) 返回浮点数x的绝对值
#角度和弧度转换
math.degrees(x) 将弧度x转换为角度
math.radians(x) 将角度x转换为弧度
#三角函数
math.sin(x) 返回x的正弦(x为弧度值)
math.cos(x) 返回x的余弦(x为弧度值)
math.tan(x) 返回x的正切(x为弧度值)
#三角函数
math.asin(x) 返回x的反正弦(x为弧度值)
math.acos(x) 返回x的反余弦(x为弧度值)
math.atan(x) 返回x的反正切(x为弧度值)
实例:
>>>math.log(8,2) #3.0
from math import *
a = log(8,e)
print(a) #2.0794415416798357
a = log(8)
print(a) #2.0794415416798357
练习1:
输入圆的半径r 和圆的角度d,算出圆的扇形的面积。
from math import *
def s(r):
s = r ** 2 * pi
return s
a = float(input('please enter the radious:'))
print(s(a))
练习2:
写一个程序打印出一个电子时钟,格式为:HH:MM:SS,17:27:23
每隔一秒钟,打印刷新一次
解:
from time import *
while 1:
t = localtime()
sleep(1)
print("%02d:%02d:%02d" % (t[3],t[4],t[5]),end='\r')
练习3:
编写一个闹钟程序,启动时设置定时时间,到时间后打印一句话“起床了”,然后退出程序
解:
from time import *
a1 = int(input('闹钟年时间:'))
a2 = int(input('闹钟月时间:'))
a3 = int(input('闹钟日时间:'))
a4 = int(input('闹钟时时间:'))
a5 = int(input('闹钟分时间:'))
a6 = int(input('闹钟秒时间:'))
t1 = (a1,a2,a3,a4,a5,a6,0,0,0)
t_clock = mktime(t1) #t_clock = mktime((a1,a2,a3,a4,a5,a6,0,0,0))
while 1:
t2 = localtime()
sleep(1)
print("%02d:%02d:%02d" % (t2[3],t2[4],t2[5]),end='\r')
t_now = mktime(t2)
if t_clock == t_now:
print('起床!!!!!!!!!!!!!!!!!')
break
如果用./students.py运行,需要为该文件添加执行权限 chmod u+x shiyan.py 并在该程序文档的首行(必须是第一行)键入#!/usr/bin/python3 来声明python3 解释执行器的位置
如果是shell文件 则要键入 #!/usr/bin/bash
相关文章推荐
- Python 日期时间处理模块学习笔记
- Python 学习笔记 - 时间模块
- python学习笔记12-模块使用
- python 学习笔记 14 -- 常用的时间模块之datetime
- python学习笔记-(12)python中模块的概念
- Python3学习笔记12-标准库之多进程、数学、循环器、数据库sqLite
- python基础教程_学习笔记12:充电时刻——模块
- Python学习笔记12:Python模块
- python入门笔记(Day5)--filter,sorted,lambda,装饰,偏,模块
- python基础教程_学习笔记12:充电时刻——模块
- python 学习笔记 13 -- 常用的时间模块之time
- Python笔记 - 时间就是金钱,datetime模块的详解
- python学习笔记(5)--迭代器,生成器,装饰器,常用模块,序列化
- python 学习笔记 13 -- 经常使用的时间模块之time
- 18. Python脚本学习笔记十八模块
- python浓缩(12)模块
- Python学习笔记(12)- 函数(2)
- Python学习笔记12:标准库之对象序列化(pickle包,cPickle包)
- python处理时间--- datetime模块
- python 时间模块小结 time and datetime