python简单入门(四)

使用函数目的:降低编程难度和代码重用

函数是一种功能抽象,利用它可以将一个复杂的大问题分解成一系列简单的小问题,然后将小问题继续划分成更小的问题,当问题细化到足够简单时,解决完小问题,大问题也就解决了。

函数可以在一个程序的多个位置使用,也可以用于多个程序,当需要修改代码时,只需要在函数中修改一次,所有调用位置的功能都更新了,这种代码重用减少了代码行数和降低了代码维护难度。

1. 声明和调用函数

        1.1 自定义函数

  def 函数名(参数列表)

        函数体

 参数列表可以没有参数,但是要保留()

def PrintWelcom():
    print("欢迎使用python")

  定义一个函数sum(),用于计算并打印两个参数的和

def sum(num1,num2):
    print(num1+num2)

        1.2 调用函数

  先定义函数,再调用函数。可以直接使用函数名来调用函数。

def PrintWelcom():
    print("欢迎使用python")
​PrintWelcom()
def sum(num1,num2):
    print(num1+num2)
sum(1,2)

        1.3  变量的作用域

在函数中定义的变量叫局部变量,在函数体外定义的变量是全局变量。

a = 100    #全局变量
def setNumber():
    a = 10    #局部变量
    print(a)    #打印局部变量
setNumber()
print(a)    #打印全局变量
#运行结果:10  100

2.  参数与返回值

        2.1  在函数中传递参数

                2.1.1  普通参数

值传递:调用函数时将常量或变量的值(实参)传递给函数的参数(形参)

值传递的特点:实参和形参分别存储在各自的内存空间中,因此,在函数内部改变形参的值时,实参的值一般是不会改变的。

def func(num):
    num += 1
a = 10
func(a)
print(a)
#运行结果:10

                2.1.2  列表和字典参数

    注意:在使用列表或字典作为函数参数时,在函数内部对列表或字典的元素所做的操作会影响调用函数的实参。

def sum(list):    #定义一个求和函数
    total = 0    #初始化变量
    for x in range(len(list)):
        print(list[x],"+)
        total += list[x]
    print("=",total)
list = [15,25,35,45]   
sum(list)
def print_dict(dict):
    for(k,v) in dict.items():    #items()函数返回字典的所有键值对
        print("dict[%s]="%k,v)
dict = {'a':'apple','b':'banana','g':'grape','o':'orange'}
print_dict(dict)
'''运行结果:
dict[a]=apple
dict[b]=banana
dict[g]=grape
dict[o]=orange'''

                2.1.3  参数的默认值

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

注意:有默认值的参数只能出现在没有默认值的参数的后面。

                2.1.4  可变长参数

python 还支持可长度的参数列表,可变长参数可以是元组或字典。

                        2.1.4.1  当参数以*开头时,表示可变长参数被视为一个元组,格式:def func(*t);

在func()函数中t被视为一个元组,使用t[index]获取每一个可变长参数。

可以使用任意多个实参调用func()函数,例如:func(1,2,3,4)

def func1(*t)
    print("可变长参数数量如下:")
    print(len(t))
    print("依次为:")
    for x in range(len(t))
        print(t[x])
func1(1,2,3,4)
'''运行结果:
可变长参数数量如下:
4
依次为:
1
2
3
4'''

                        2.1.4.2  当参数以**开头时,表示可变长参数被视为一个字典,格式:def func(**t)

def sum(**t):
    print(t)
sum(a=1,b=2,c=3)
#运行结果:{'a':1,'b':2,'c':3}

        2.2  函数的返回值

可以为函数指定一个返回值,返回值可以是任何数据类型,使用return语句可以返回函数值,并退出函数。

def sum(num1,num2):
    return num1+num2
print(sum(1,3))
#运行结果:4

也可以把列表或字典作为返回值。

def filter_even(list):    #参数为列表的函数
    list1 = []    #创建空列表来存放
    for i in range(len(list)):    #遍历列表
        if list[i]%2==0:    #判断是否为偶数
            list1.append(list[i])    #如果为偶数,则添加到空列表里
    return list1    #返回元素全是偶数的列表
list = [1,2,3,4,5,6,7,8,9,10]
list2 = filter_even(list)    #调用函数
print(list2)    #打印偶数列表
#运行结果:[2,4,6,8,10]

3.  python内置函数

        3.1  数学运算函数

  1. abs():求绝对值
  2. pow(x,y):求x的y次幂
  3. round(x,[n]):返回浮点数x的四舍五入值,参数n为指定保留的小数位数
  4. divmod(a,b):返回a除以b的商和余数,比如divmod(a,b)返回(a/b,a%b)

        3.2  字符串处理函数

                3.2.1  字符串中字符大小写的变换

  1. str.lower():将字符串内所有字母转换为小写
  2. strr.upper():将字符串内所有字母转换为大写
  3. str.swapcase():将字符串内所有字母大小写互换
  4. str.capitalize():将字符串中首字母大写,其余为小写
  5. str.title():将字符串中每个词的首字母大写,其余为小写

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

  1. str.ljust(width,[fillchar]):左对齐输出字符串str,总宽度为参数width,不足部分以参数fillchar指定的字符填充,默认使用空格填充。
  2. str.rjust(width,[fillchar]:跟上面的用法一样,但是是右对齐。
  3. str.center(width,[fillchar]):居中对齐。
  4. str.zfill(width):把字符串str变成width长,并且右对齐,不足部分用0补足。

                3.2.3  搜索和替换

  1. str.find(substr,[strat,[end]]):返回字符串str中出现字串substr的第一个字母的位置,如果str中没有substr,则返回-1。搜索范围从start到end。
  2. str.index(substr,[strat,[end]]):与find()函数相同,区别在于如果在str中没有substr时,index()会返回一个运行时错误。
  3. str.rfind(substr,[strat,[end]]):返回从右算起,返回字符串str中出现字串substr的第一个字母的位置。
  4. str.rindex(substr,[strat,[end]]):与rfind()函数相同,区别在于如果在str中没有substr时,index()会返回一个运行时错误。
  5. str.count(substr,[start,[end]]):计算substr在str中出现的次数,统计范围从start到end。
  6. str.replace(oldstr,newstr,[count]):把str中olestr替换为newstr,count为替换次数。
  7. str.strip([chars]):把字符串str中前后chars中有的字符全部去掉,如果不指定参数chars,则会去掉空白符(包括'\n','\r','\t'和' ')。
  8. str.lstrip([chars]):把字符串str中前面chars中有的字符全部去掉,如果不指定参数chars,则会去掉空白符(包括'\n','\r','\t'和' ')。
  9. str.strip([chars]):把字符串str中后面chars中有的字符全部去掉,如果不指定参数chars,则会去掉空白符(包括'\n','\r','\t'和' ')。
  10. str.expandtabs([tabsize]):把字符串str中的tab字符替换为空格,每个tab替换成tabsize个空格,默认是8个。

                3.2.4  分割和组合

  1. str.split([sep,[maxsplit]]):以sep为分隔符,把str分割成一个列表,maxsplit为分割的次数。
  2. str.splitlines([keepends]):把str按照行分隔符分为一个列表,参数keepends是一个bool值,如果为True,则每行后面会保留分隔符。
  3. str.join(sep):把sep代表的序列——字符串序列,用str连接起来。

                3.2.5  字符串判断相关

  1. str.startswith(substr):判断str是否以substr开头。
  2. str.endswith(substr):判断str是否以substr结尾。
  3. str.isalnum():判断str是否全为数字或字母
  4. str.isalpha():判断str是否全为字母
  5. str.isdigit():判断str是否全为数字
  6. str.islower():判断str是否全为小写字母
  7. str.isupper():判断str是否全为大写字母

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值