二、函数


2.1、重新认识函数


      Python 中所谓的使用函数,就是把你要处理的对象放到一个名字后面的括号里。简单来说,函数就是这么使用的,往里面塞东西就可以得到处理结果。


- Python 的 内建函数(Built-in Functions)

以 Python 3.60 版本为例,一共存在 68 个这样的函数,它们被统称为 内建函数(Built-in Functions)。


之所以被称为内建函数,并不是因为还有“外建函数”这个概念,“内建”的意思是在 Python 3.60 版本安装完成后,你无须创建就可以直接使用这些函数,即 表示这些函数是“自带”的而已。



Python 3.60 的 68个 内建函数(Built-in Functions):


 

 

Built-in Functions

 

 

abs()

dict()

help()

min()

setattr()

all()

dir()

hex()

next()

slice()

any()

divmod()

id()

object()

sorted()

ascii()

enumerate()

input()

oct()

staticmethod()

bin()

eval()

int()

open()

str()

bool()

exec()

isinstance()

ord()

sum()

bytearray()

filter()

issubclass()

pow()

super()

bytes()

float()

iter()

print()

tuple()

callable()

format()

len()

property()

type()

chr()

frozenset()

list()

range()

vars()

classmethod()

getattr()

locals()

repr()

zip()

compile()

globals()

map()

reversed()

__import__()

complex()

hasattr()

max()

round()

 

delattr()

hash()

memoryview()

set()

 




2.2、创建函数



- Python 创建函数的格式如下: 

  
★
 
def(即 define ,定义)的含义是创建函数,也就是定义一个函数。 

 
:)必不可少。 

 
「缩进」后面的语句被称作 语句块(block),缩进是为了表明语句和逻辑的从属关系,是 Python 最显著的特征之一。(大部分语言会用大括号 { } 来表明这样从属关系) 

 
return即返回结果。  在 Python 中 return 是可选的,如果没有 return 即函数的返回值为 ‘None’。
 
  
 
☆ 注意:
 
def 和   return
 
return 是可选的(optional),这意味着你在创建函数时不写   return
 
调用”(call)。即   调用函数
 
  
 
   
 
# 例子,温度的单位有 摄氏度 和 华氏度 ,已知 摄氏度 与 华氏度 的转化公式为:F = 9/5*C+32 。
 
# 现在我们创建一个能实现 摄氏度 转化为 华氏度 的函数,并调用该函数实现转化:
 
  
 
def temp_converter(c)  :
 
  return
 
  
 

  c_in = input('请输入摄氏温度:') 

 

  c_in = int(c_in) 

 

  f = temp_converter(c_in) 

 

  print('华氏温度为:' + f) 

 
  
 
   
  
2.3、传递参数与参数类型
  
   
  

   - 位置参数 与 关键词参数 
 
  
   
  
位置参数 (positional argument) 与    关键词参数 (keyword argument)。  
  
   
  
位置参数
  
   
  
关键词参数
  
   
      
  
# 例子,我们已知 梯形面积的计算公式为:S = (a+b)*h/2
  
# 创建一个函数,计算梯形面积:
  
   
  
def tra_area(a,b,h)   :
  
   return
  
   
  
#-成功,输出:4.5
  
#-失败!原因:「位置参数」不能在「关键词参数」之后出现!
  
# -失败!原因:「位置参数」不能在「关键词参数」之后出现!
  
#-成功,输出:4.5
  
#-失败!原因:同一个参数不能被重复赋值!
  
   
  
☆ 注意:
  

       ①「关键词参数」可以不考虑位置顺序。 
 
  

       ②「位置参数」不能在「关键词参数」之后出现! 
 
  

       ③ 同一个参数不能被重复赋值! 
 
  
   
  
# 我们现在给一组变量赋值,然后再调用函数,大家来看结果会有什么变化:
  
   
  

   a = 1 
 
  

   b = 2 
 
  

   h = 3 
 
  
#输出:2.5
  
#输出:4.5
  
   
  
☆ 注意:
  

       在 创建函数 时 设定的参数是「形参」,在 调用函数 时 填入的参数是「实参」,大家要搞清楚这两个概念。 
 
  
   
 

  - 默 认 参 数 

 
  
 

      默认参数 就是 函数中某个有默认值的参数。调用函数时就算不给予填入参数,该函数仍然能照常运行。 

 
  
 
  参数的默认值可以被更改,即 默认参数可以被重新赋值。 

 
  
 

      给一个参数设定默认值(创建默认参数)非常简单,我们只需要在定义参数的时候给参数赋值即可。如下: 

 
  
 
def tra_area(a,b,  h=3)  :
 
  return
 
  
 
#输出:4.5
 
6))   #给默认参数重新赋值 6,输出:9.0
 
h=6))   #给默认参数重新赋值 6,输出:9.0
 
  
 

    ☆ print()函数的默认参数 sep(用于设定多个打印结果之间的分隔符号)的默认值为‘ ’空格,但是我们可以将其重新设定为‘/n’ 即 换行 。也就是说将每个打印结果以换行符号进行分割。如下: 
 
  
   
  

   print('  *',' ***','*****','  |',sep='\n') 
 
  
'''''''''''''''''''''''''''''''''''
  

   以上代码输出: 
 
  

     * 
 
  

    *** 
 
  

   ***** 
 
  

     | 
 
  
'''''''''''''''''''''''''''''''''''
  
   
  
   
  
2.4、设计自己的函数
  
   
  
*
  
   
  
# 创建 file_create() 函数,作用:创建文件(尤其是.py文件)
  
# 该函数共有4个参数:
  
#namn -文件名
  
#content -文件内容
  
#extension -文件扩展名,即 后缀
  
#path -文件坐在的目录路径
  
def file_create(name,content,extension='py',path='E:/PY_Test/New/'):
  
full_path = path + name + '.' + extension  
  
file = open(full_path,'w')  
  
file.write(content)  
  
file.close()  
  
print('文件 ' + name + '.' + extension + ' 已被创建在 ' + path + ' 中。')  
  

  
 # 调用函数
  
   
  
   
  
# 创建 word_filter() 函数,作用:单词过滤器
  
# 该函数共有3个参数:
  
#content -内容
  
#target_word -要被过滤的单词
  
#new_word - 替换的单词
  
# 执行成功 返回 被过滤后的内容(str类型)。
  
def word_filter(content,target_word='lame',new_word='Awesome'):
  
   return
  
   
  
 # 调用函数
  
print(new_content)
  
# 输出:Python is Awesome! is very Awesome!! is very very Awesome!!!