Python基础:函数

函数

内嵌函数
>>> dir(__builtins__)
  • 绝对值函数abs(x)
  • 类型函数type(x)
  • 四舍五入函数round(x) 特点:四舍五入取偶
>>> round(3.1)
3
>>> round(3.5)
4
>>> round(3.9)
4
>>> round(2.5)
2
标准库函数
  • 使用时先将模块导入
import
  • math库
>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
>>> help(math.ceil)
Help on built-in function ceil in module math:

ceil(x, /)
    Return the ceiling of x as an Integral.
    
    This is the smallest integer >= x.

>>> math.ceil(3.6)
4
>>> math.floor(3.6)
3
>>> math.pow(2,3)
8.0
>>> math.sqrt(4)
2.0
>>> math.degrees(3.14)//弧度转成角度
179.9087476710785
>>> math.radians(180)//角度转成弧度
3.141592653589793
>>> 
  • os库
>>> os.getcwd()#获取当前的工作目录
>>> path = 'c:\\test'
>>> os.chdir(path)#更改当前的工作目录
>>> os.rename('test.txt','test1.txt')#重命名
>>> os.remove('test1.txt')#删除文件
  • random库
>>> random.choice(['C++','Java''Python'])#列表中的随机
'C++'
>>> random.randint(1,100)
40
>>> random.randrange(0,10,2)
0
>>> random.random()#0-1.0间的浮点数
0.006906347781748479
>>> random.uniform(5,10)#5-10之间的浮点数
5.932379625215728
>>> random.sample(range(100),10)#获取指定个数的一组值
[18, 60, 72, 34, 17, 95, 49, 1, 29, 70]
>>> nums = [1001,1002,1003,1004,1005]
>>> random.shuffle(nums)#将列表中元素的顺序打乱
>>> nums
[1001, 1002, 1005, 1003, 1004]
  • datetime库:为日期和事件处理提供了方便
>>> import datetime
>>> dir(datetime)
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']
>>> from datetime import date
>>> date,today()
>>> date.today()
datetime.date(2020, 3, 12)
>>> from datetime import time
>>> tm = time(23, 20, 35)
>>> print(tm)
23:20:35
>>> from datetime import datetime
>>> dt = datetime.now()
>>> dt
datetime.datetime(2020, 3, 12, 21, 5, 47, 251890)
#最后带一个毫秒
  • strftime()这个函数把datetime对象转成固定格式的字符串
>>> print(dt.strftime('%a, %b %d %Y %H: %M'))
Thu, Mar 12 2020 21: 05
#%a是本地简化的星期名称
#%A是完整的名称
  • timestamp():把datetime转成全球统一的时间戳
  • fromtimestamp():把时间戳转成本地的日期和时间
>>> dt = datetime(2020,3,12,21,11)
>>> print(dt)
2020-03-12 21:11:00
>>> ts = dt.timestamp()
>>> ts
1584018660.0
>>> print(datetime.fromtimestamp(ts))
2020-03-12 21:11:00
第三方库
  • 先安装相应的库再导入使用
import
自定义函数
  • 自定义函数语法:def + 函数名 (参数可选)
  • 形式参数(parameter):函数创建和定义过程中()里面的参数。
  • 实参(argument):函数调用中传递进去的参数。
  • DocString:程序的注释放在最前面
def function_name([arguments]):
"optional documentation string"
fuction_suite
  • 函数的调用:函数名后面加括号,如果有参数把参数写上,如果本身有参数不写参数会出错,没有参数小括号也不可以省略掉
from  math import sqrt
def isprime(x):
    if x == 1:
        return False
    k = int(sqrt(x))
    for j in range(2,k+1):
        if x % j == 0:
            return False
    return True
for i in range(2,101):
    if isprime(i):
        print(i,end=' ')
  • 闭包:在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。
默认参数
  • 函数的参数可以有一个默认值,如果提供有默认值,在函数定义中,默认参数以赋值语句的形式提供
  • 默认参数的值可以改变
  • 默认参数一般需要放置在参数列表的最后
  • 关键字参数是让调用者通过使用参数名区分参数,允许改变参数列表中的参数顺序
  • 一旦使用关键字参数,就要全使用关键字参数
传递函数
  • 函数可以像参数一样传递给另外一个函数
>>> def addMe2Me(x):
	return x+x

>>> def self(f,y):
	print(f(y))

>>> self(addMe2Me,2.2)
4.4
lambda函数
  • 也叫匿名函数,不需要取函数名
>>> r =lambda x: x+x
>>> r(5)
10
format()函数
  • 不带编号,即 {}
  • 带数字编号,可调换顺序,即‘{1}’,’{2}’
  • 带关键字,即’{name}’
    在这里插入图片描述
    在这里插入图片描述
print('{}{}'.format('hello ','python'))# 不设置指定位置,按默认顺序
print('{1}''{0}''{1}'.format('hello ','python '))# 设置指定位置
print('{name} {age}'.format(name = 'Yao xingzhi', age = ' 20 '))
#设置参数
dic = {'name':'Yao xingzhi','age':'20'}
print('name:{name},age:{age}'.format(**dic))
lst = ['Yao xingzhi','20']
print('name:{0[0]},age:{0[1]}'.format(lst))
#数字格式输出
name = 'Lucks'
gender = '男'
age = '20'
print('姓名:{},性别:{},年龄:{}'.format(name,gender,age))
#有了数字编号之后反复调用
print('姓名:{0},性别:{1},年龄:{2},学生姓名:{0}'.format(name,gender,age))

  • 填充和对齐^ < >分别表示居中、左对齐、右对齐,后面带宽度
print('{:^20}'.format('lucks'))
print('{:<20}'.format('lucks'))
print('{:>20}'.format('lucks'))
  • 精度控制: :.nf
print('{:.4f}'.format(3.1415926))
print('{:.3f}'.format(3.1415926))
print('{:.2f}'.format(3.1415926))
  • 进制转化,b o d x 分别表示二、八、十、十六进制
print('{:b}'.format(20))
print('{:o}'.format(20))
print('{:d}'.format(20))
print('{:x}'.format(20))
10100
24
20
14
  • 千位分隔符::,
print('{:,}'.format(20))
print('{:,}'.format(20000))
print('{:,}'.format(2000000))
print('{:,}'.format(20000000000))
20
20,000
2,000,000
20,000,000,000
age, height = 21, 1.788
print("Age:{0:<5d},Height:{1:5.2f}".format(age,height))
cCode = ['AXP','BA','CAT','CSCO','CVX']
cPrice = ['78.51','184.76','96.39','33.71','106,09']
for i in range(5):
    print('{:<8d}{:8s}{:8s}'.format(i,cCode[i],cPrice[i]))
print('I get {:d}{{}}!'.format(32))

0       AXP     78.51   
1       BA      184.76  
2       CAT     96.39   
3       CSCO    33.71   
4       CVX     106,09  
I get 32{}!

eval 函数

  • 作用:把一个字符串当成一个表达式来执行,返回表达式执行后的结果
  • 格式:eval(source, globals=None, locals=None)

end函数

  • 为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串,其实这也是一个语法要求,表示这个语句没结束。

  • print默认是打印一行,结尾加换行。end=’ '意思是末尾不换行,加空格。

print('I \'m ',end='')
print('lucks')
I 'm lucks
for i in range(3,11,2):
    print(i,end=' ')
3 5 7 9 

模块

  • 一个完整的python文件即是一个模块
  • 文件:物理上的组织方式:math.py
  • 模块:逻辑上的组织方式:math
  • python通常用"import 模块"的方式将现成模块中的函数、类等重用到其他代码块中
  • 导入多个模块
import ModuleName
import ModuleName1,ModuleName2
from Module1 import ModuleElement

  • 一个有层次的文件目录结构
  • 定义了一个由模块和子包组成的Python应用程序执行环境
import AAA.CCC.C1
AAA.CCC.C1.funC1(123) #包名 子包名 模块 函数名
from AAA.CCC.C1 import funC1
funC1(123)

  • 库是一组具有相关功能的模块的集合
  • Python的一大特色就是具有强大的标准库、以及第三方库、以及自定义模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值