python系统提供了下面常用的函数:
① 数学库模块(math)提供了很多数学运算函数;
注意:在调用系统函数之前,先要使用import 语句导入 相应的模块
该语句将模块中定义的函数代码复制到自己的程 序中,然后就可以访问模块中的任何函数,其方 法是在函数名前面加上"模块名.".
希望能帮到你.
Python 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.
函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数.
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以?def?关键词开头,后接函数标识符名称和圆括号().
任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数.
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明.
函数内容以冒号起始,并且缩进.
return [表达式]?结束函数,选择性地返回一个值给调用方.不带表达式的return相当于返回 None.
语法
def functionname( parameters ): ? "函数_文档字符串"
function_suite
return [expression]
默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的.
实例
以下为一个简单的Python函数,它将一个字符串作为传入参数,再打印到标准显示设备上.
def printme( str ): ? "打印传入的字符串到标准显示设备上"
print str
return
函数调用
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构.
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行.
如下实例调用了printme()函数:
# 定义函数def printme( str ): ? "打印任何传入的字符串"
# 调用函数printme("我要调用用户自定义函数!")printme("再次调用同一函数")
以上实例输出结果:
我要调用用户自定义函数!再次调用同一函数
参数传递
在 python 中,类型属于对象,变量是没有类型的:
a="Runoob"
可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象.
python 函数的参数传递:
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组.如fun(a),传递的只是a的值,没有影响a对象本身.比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身.
可变类型:类似 c++ 的引用传递,如 列表,字典.如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象.
python 传不可变对象实例
def ChangeInt( a ): ? ?a = 10
传可变对象实例
# 可写函数说明def changeme( mylist ): ? "修改传入的列表"
print "函数内取值: ", mylist
实例中传入函数的和在末尾添加新内容的对象用的是同一个引用,故输出结果如下:
参数
以下是调用函数时可使用的正式参数类型:
必备参数
关键字参数
默认参数
不定长参数
必备参数须以正确的顺序传入函数.调用时的数量必须和声明时的一样.
调用printme()函数,你必须传入一个参数,不然会出现语法错误:
#可写函数说明def printme( str ): ? "打印任何传入的字符串"
#调用printme函数printme()
Traceback (most recent call last):
File "test.py", line 11, in module
printme()TypeError: printme() takes exactly 1 argument (0 given)
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值.
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值.
以下实例在函数 printme() 调用时使用参数名:
#调用printme函数printme( str = "My string")
My string
下例能将关键字参数顺序不重要展示得更清楚:
#可写函数说明def printinfo( name, age ): ? "打印任何传入的字符串"
print "Name: ", name
print "Age ", age
调用函数时,默认参数的值如果没有传入,则被认为是默认值.下例会打印默认的age,如果age没有被传入:
def functionname([formal_args,] *var_args_tuple ): ? "函数_文档字符串"
加了星号(*)的变量名会存放所有未命名的变量参数.不定长参数实例如下:
# 可写函数说明def printinfo( arg1, *vartuple ): ? "打印任何传入的参数"
print "输出: "
print arg1
for var in vartuple: ? ? ?print var
匿名函数
python 使用 lambda 来创建匿名函数.
lambda只是一个表达式,函数体比def简单很多.
lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去.
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数.
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率.
lambda函数的语法只包含一个语句,如下:
如下实例:
return 语句
return语句[表达式]退出函数,选择性地向调用方返回一个表达式.不带参数值的return语句返回None.之前的例子都没有示范如何返回数值,下例便告诉你怎么做:
print "函数内 : ", total
return total
变量作用域
一个程序的所有的变量并不是在哪个位置都可以访问的.访问权限决定于这个变量是在哪里赋值的.
变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称.两种最基本的变量作用域如下:
全局变量
局部变量
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域.
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问.调用函数时,所有在函数内声明的变量名称都将被加入到作用域中.如下实例:
print "函数内是局部变量 : ", total
在写python程序时,常能用到一些函数和方法,最后提醒一下大家,保存起来,方便查询.
第一段:内置函数
# abs()获取数字绝对值
# chr(i)数字转换为字符类型
# enumerate() 将可遍历序列组合为索引序列
# float()转换为浮点数
# format() 格式化字符串
# int()转换为整数?
# input() 接受用户输入内容
# len() 计算元素个数
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定数值的上舍整数
# open()打开文件并返回文件对象
# pow() 幂运算
# print()打印输出?
# range() 生成器
# reversed()反转所有元素
# round()四舍五入求值
# sorted()对可迭代对象进行排序?
# str() 转换为字符串
# sum() 求和
# set() 创建集合
# tuple() 将序列转换为元组
# zip()将可迭代对象打包成元组
第二段:方法
# append() 添加列表元素
# capitalize()首字母转换为大写?
# count()字符出现次数
# close() 关闭文件
# decode() 解码字符串
# dict.keys() 获取字典所有的键
# find()字符串首次出现的索引
# f.read() 读取文件内容
# dict.update()更新字典
# dict.items() 获取字典键/值对
# dict.get() 返回指定键的值
# encode() 编码字符串
# list.sort() 排序列表元素
# index() 元素首次出现的索引
# isdigit() 判断字符串是否只由数字组成
# isupper() 是否所有字母都为大写
# isnum() 判断字符串是否由字母和数字组成
# islower() 是否所有字母都为小写
# isdecimal() 检查字符串是否只包含十进制字符
# isalpha() 检测字符串是否为纯字母
# random.shuffle()随机排序
# random.sample()返回无重复随机数列表
# random.choice() 返回一个随机元素
# random.randint() 生成指定范围的随机整数
# random.randrange() 生成指定范围的指定递增基数随机整数
# pop() 删除列表中的元素
# remove()删除列表中的指定元素
# strip()去除空格
# lstrip()去除左侧空格
# rstrip() 去除右侧空格
# readline() 读取单行内容
# root.after() Tkinter中等待一段时间后再执行命令
# str.isnumeric() 验证字符串是否为数字(适用于Unicode)
# split()分割字符串
# ord() 将字符转换为整数
# replace() 字符串替换
# ljust() 左对齐填充
# rjust() 左对齐填充
# readlines() 读取所有行内容
# datetime.datetime.now() 返回指定时区的本地日期时间
# datetime.datetime.today() 获取当前本地日期的date对象
# datetime.utcnow() 返回当前UTC时间的datetime对象
# time.strptime()把时间字符串解析为元组
# time.time()返回当前时间的时间戳
# time.sleep()暂停指定秒数
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收时间元组并返回时间戳
# os.getcwd() 获取当前工作目录
# os.listdir() 获取指定路径下的目录和文件列表
# os.makedirs() 递归创建目录
# os.rename() 重命名目录或文件
# os.path.exists() 判断路径是否存在
# upper() 全部转换为大写字母
# lower()? 全部转换为小写字母
# sys.stdout.write() 标准输出打印
# sys.stdout.flush()刷新输出?
# shutil.copy() 复制单个文件到另一文件或目录
# write() 写入文件内容
# winsound.Beep() 打开电脑扬声器
# zfill() 在字符串前面填充0
第三段:循环语句
# break终止当前循环
# continue 终止本循环进入下一次循环
# with open() as file 以with语句打开文件(数据保存)
第四段:转义字符
\ 行尾续行符
\' 单引号?
\'' 双引号
\a 响铃
\e 转义
\n 换行
\t 横向制表符
\f 换页
\xyy 十六进制yy代表的字符
\\反斜杠符号
\b 退格
\000 空
\v 纵向制表符
\r 回车
\0yy 八进制yy代表的字符
\other 其他的字符以普通格式输出
len(list)
列表元素个数
max(list)
返回列表元素最大值
min(list)
返回列表元素最小值
list(seq)
将元组转换为列表
序号
方法
①.
list.append(obj)
在列表末尾添加新的对象
list.count(obj)
统计某个元素在列表中出现的次数
list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj)
将对象插入列表
list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj)
移除列表中某个值的第一个匹配项
list.reverse()
反向列表中元素
list.sort( key=None, reverse=False)
对原列表进行排序
①.0
list.clear()
清空列表
①.1
list.copy()
复制列表
案例一:给你一个字符串,s = 'hello kitty'
①1 输出函数:print(s.capitalize())