• 首先函数的大体还是和C++/C是相类似的,因为python中不需要去定义数据类型,就省去了c++中去考虑返回类型是int 还是 double的烦恼;
  • 其次python中函数也有定义要求,基本和C++中一样,在使用这个函数的时候你必须已经定义,所以一般我们可以将函数定义在前面;
  • 可以使用def关键字来创建Python自定义函数,其基本语法结构如下:
def 函数名 (参数列表):
    函数体

特别注意,函数定义之后要使用 < : >

  • 参数列表可以为空,即没有参数;也可以包含多个参数,参数之间使用逗号(,)分隔。函数体可以是一条语句,也可以由一组语句组成。
  • 创建一个非常简单的函数PrintWelcome,它的功能是打印字符串“欢迎使用Python”,代码如下:
def PrintWelcome():
    print("欢迎使用Python");

然后在python程序中,使用PrintWelcome() 即可输入“欢迎使用Python” 在如果需要多次输入该句话的程序中,就无需反复编写 print("欢迎使用Python"); 即可实现多次输出

  • 定义函数PrintString(),通过参数决定要打印的内容。
def PrintString(str):
    print(str);

该函数可以实现输入 PrintString(“这里可以是我想输出的字符串”)
即可输出 这里是我想输出的字符串
值得注意的是,每次的函数调用,务必带上(),无论是内置函数,还是定义函数;

  • 可以直接使用函数名来调用函数,无论是系统函数还是自定义函数,调用函数的方法都是一致的
  • 在函数中也可以定义变量,在函数中定义的变量被称为局部变量。局部变量只在定义它的函数内部有效,在函数体之外,即使使用同名的变量,也会被看作是另一个变量。
    相应地,在函数体之外定义的变量是全局变量。全局变量在定义后的代码中都有效,包括它后面定义的函数体内。

如果局部变量和全局变量同名,则在定义局部变量的函数中,只有局部变量是有效的

  • 使用列表作为函数参数的例子。
def sum(list):
    total = 0;
    for x in range(len(list)):
        print(list[x],"+");
        total+= list[x];
    print("=", total);
list = [15, 25, 35, 65]
sum(list);

运行结果:
15 +
25 +
35 +
65 +
= 140

  • 在Python中,可以为函数的参数设置默认值。可以在定义函数时,直接在参数后面使用“=”为其设置默认值。在调用函数时可以不指定拥有默认值的参数的值,此时在函数体中以默认值作为该参数

    • 设置参数默认值的例子
def say(message, times = 1):
    print(message * times)
say('hello')
say('Python', 3)

运行结果:
hello
PythonPythonPython

  • 函数的返回值
def sum(num1, num2):
    return num1 + num2;
print(sum(1, 3));

运行结果:4


  • Python内置函数

数学运算函数

函数原型具体说明
abs()abs(x)返回 x 的绝对值
pow()pow(x, y)返回x的y次幂
Round()round(x[, n])返回浮点数x的四舍五入值,参数n指定保留的小数位数
divmod()divmod(a, b)返回 a除以b的商和余数,返回一个元组。例如divmod(a, b)返回 (a / b, a % b)

字符串处理函数

函数原型具体说明
lower()str.lower()将字符串str中的字母转换为小写字母
upper()str.upper()将字符串str中的字母转换为大写字母
swapcase()str.swapcase()将字符串str中的字母大小写互换
capitalize()str.capitalize ()将字符串str中的首字母大写
title()str. title()将字符串str中的首字母大写,其余为小写

指定输出字符串时的对齐方式

函数原型具体说明
ljust()str.ljust(width,[fillchar])左对齐输出字符串str,总宽度为参数width,不足部分以参数fillchar指定的字符填充,默认使用空格填充
rjust()str.rjust(width,[fillchar])右对齐输出字符串str,总宽度为参数width,不足部分以参数fillchar指定的字符填充,默认使用空格填充
center()str.center(width,[fillchar])居中对齐输出字符串str,总宽度为参数width,不足部分以参数fillchar指定的字符填充,默认使用空格填充
zfill ()str. zfill(width)将字符串str变成width长,并且右对齐,不足部分用0补足

搜索和替换
图片1.png

字符串判断相关
图片2.png

  • 后面的函数内容基本都是照搬PPT,希望我能抽空之余能将其理解消化;
  • 下面写两道题吧~!
    [notice]1.计算0-100内所有奇数的累积求和[/notice]

首先该专题是函数专题,所以我们第一要想到要用函数,我有多个思路,首先定义函数。传参判断该参数是否为奇数,若为奇数,则返回该数的值,若不为奇数,则返回 0, 反正0+任何数都等于没+:

函数设计如下:
def jishu(x):
    if x%2==0:
        return 0
    else:
        return x;

该函数基本实现我们要实现的功能,然后写主函数:

ans = 0
for i in range(0,100+1):
    ans=ans+jishu(i)
print (ans)

利用for循环从0循环到100,创建一个ans变量储存需要求的和。
整体:

def jishu(x):
    if x%2==0:
        return 0
    else:
        return x;
ans = 0
for i in range(0,100+1):
    ans=ans+jishu(i)
print (ans)

输出:2500

[notice]2.用函数的思想编写斐波拉契数列(任意写斐波拉契数列的某一项,即可输出斐波拉契数列)例如:输入第5项,则斐波拉契数列为:1 1 2 3 5[/notice]
首先我们要理解,斐波拉契数列是什么?

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

简单来说:后一项等于前两项的和!

然后:题目要求我们输入一个数n,然后输出斐波拉契数列的前n项和;同样要求我们使用函数,我们则可以编写一个:求斐波拉契数列第N项是多少的函数。
此处需要用到列表作为函数参数;
我的设计思路如下:
首先编写函数:

def fblq(list,i):
    if len(list)>i:
        print (list[i],end=' ')
    else:
        list.append(list[i-1]+list[i-2])
    print(list[i],end=' ')

这里我将列表初始设置为 list = [0,1,1],将前两项设为已知,通过append函数去扩展列表。
总体代码:

def fblq(list,i):
    if len(list)>i:
        print (list[i],end=' ')
    else:
        list.append(list[i-1]+list[i-2])
        print(list[i],end=' ')
n=eval(input("请输入一个n表示输出斐波拉契数列的n项:"))
    list = [0,1,1]
    for i in range(1,n+1):
        fblq(list,i)

输入一个n,然后通过循环,调用fblq函数,去通过一定的规则:后一项等于前两项的和,去扩展列表,并输出,
测试若输入10,
则有i=1时:len(list)=3大于1,直接输出list[1]
i=2时:len(list)=3大于2,直接输出list[2]
i=3时:len(list)=3不大于3,则调用append函数,将list[2]+list[1]添加到列表末尾,输出list[3]=2
i=4时:len(list)=4不大于4,同上调用函数,将list[3]+list[2]添加到列表末尾,输出list[4]=3
同理可求得i=5,6,7,8,9,10;。

运行结果:
请输入一个n表示输出斐波拉契数列的n项:10
1 1 2 3 5 8 13 21 34 55