day - 10 总结

函数的基础

  • 认识函数

def sum1(n):
        s =
0
       
for x in range(1, 101):
                s += x
       
print(s)


sum1(
100)

# 1.1什么是函数
'''
函数就是实现某一特定功能的代码的封装.
(函数就是把实现某一个功能的代码打成一个包, 以后再需要直接用函数)
'''


# 2.函数分类(根据函数是谁创建的)
'''
1)
系统函数   - python自带函数:print . input.max.min等
2) 自定义函数 -  自己定义的函数
'''


#  3.定义函数/创建函数    - 造机器
'''
语法:
def 函数名(参数列表)
        函数说明文档
        函数体
       
说明:
def   - 固定写法
函数名    -   随便写个别重复关键字就行,最好见名知意义,符合命名规则就行,字母小写
( ):           -  固定写法

形参列表  - 以'变量名1 ,变量名2,...'这儿的变量名也可以没有
                   形参的作用: 将函数外部的数据传递到函数里面
                   怎么确定形参:看实现函数的功能需不需要格外的数据,需要几个
函数说明文档: 就是注释
函数体    - 就是实现函数功能的代码
'''



# 练习: 定义一个函数求任意两个数的和
def sum2(num1, num2):
       
'''
       
函数功能
       
:param num1:
       
:param num2:
       
:return:
        '''
       
num3 = num1 + num2
       
print(num3)


sum2(
1, 2)
sum2(
'wo', 'shi')


# 练习1:定义,统计指定字符串中文的个数
def count_num(ss):
        count =
0
       
for x in ss:
               
if '一' <= x <= '\u9f5a':
                        count +=
1
       
print(count)


count_num(
'斯瓦迪亚1123')


# 练习2:定义,将数据插入到指定列表最前面
def duke(cc, dd):
        num = [
''] * (len(dd) + 1)
        num[
0] = cc
       
for i in range(len(dd)):
                num[i +
1] = dd[i]
       
print(num)


duke(
'zhu', ['1', 2, 3])


# 定义一个函数,任意整数阶乘
def chengfa(x):
        c = x
       
for i in range(1, x):
                c *= i
       
print(c)


chengfa(
4)


# 定义求一个圆的面积
def mianji(r):
       
import math
        s = math.pi * (r **
2)
       
print(s)


mianji(
3)

# 4.函数的调用  - 使用机器
# 1)定义函数不会执行,调用才会

# 2)怎么调用

'''
语法:
函数名(实参列表)

说明:
a.函数名
b.()
c.实参列表
'''

# 3)函数调用过程
'''
当代码指向到函数调用语句的时候:
第一步: 先回到函数定义的位置
第二步: 传参(用实参给形参赋值)
第三步: 执行函数体
第四步: 确定函数返回值
第五步: 回到函数调用的位置接着往后执行

'''

  • 函数的返回值
# 1.返回值

'''

返回值就是从函数内部传递到函数外部的数据

1)怎么将确定函数返回值(怎么将指定的数据作为函数返回值)

看执行函数体的时候有没有遇到return,如果遇到return,后面的值就是返回值;如果没有return,返回值是空值



2) 怎么获取函数返回值

获取函数调用表达式的值就是获取函数的返回值.

函数调用表达式: 调用函数的语句



3)什么时候需要返回值

如果实现函数的功能产生了新的数据,我们就应该将新的数据返回

原因: 返回值不会被删除,调用函数,系统会创建临时的栈区域,用来保存数据,调用完会删除.



'''



def func1( ):

        return 100, 200    #(100,200)

x = func1()

print(x)



def func2(n):

        print(n)

        return 100



func2(2)       #2

print(func2(3))  #3   100



def func3(n):

        print(n)

x = func3(3)    #3

print(x)      #NOne



def func5():

        return 'abc'



print('abc'[-1], func5()[-1])  #c c



# 关于.函数怎么写的问题

# 哪个是方法不是函数



#  2.return

'''

retuen 在函数中有两个作用:

1)返回返回值

2)提前结束函数     -  执行函数体的时候如果return,函数直接结束



'''



def func1():

        print('====')

        return

        print('+++++')



x =func1()

print(x)

# ====

# 100

# return 后面不写会返回None
  • 函数的参数
# 1. 位置参数和关键字参数    -根据实参传递方式分类

'''

1) 位置参数: 以'实参1,实参2,实参3,...'的形式存在,通过位置一一对应的方式来给形参赋值

2) 关键字参数:  以'形参1 =实参1 '根据命名可以位置不同也行

注意: 位置和关键字混用,位置参数要排前面

'''





def func1(x, y, z):

        print(f'x:{x}, y:{y}, z:{z}')





func1(10, 20, 30# x:10, y:20, z:30

func1(20, 10, 30# x:20, y:10, z:30

func1(x=30, z=20, y=10# x:30, y:10, z:20

func1(10, z=30, y=30# x:10, y:30, z:30



# 2.参数默认值    -形参

'''

定义函数可'形参=值'赋默认值,实际不赋值也行

注意:定义函数,没有默认值的要在前面

'''

def  func2(x=10,y=20,z=30):

        print(f'x:{x}, y:{y}, z:{z}')



func2()       #x:10, y:20, z:30

func2(100) #x:100, y:20, z:30

func2(100,200#x:100, y:200, z:30

func2(100,200,300) #x:100, y:200, z:300



# def func3(x, y=20, z)      #这样会报错



# 3.参数类型说明  - 定义函数的时候指定参数类型

'''

参数类型说明可以提示使用者在调用函数的时候该传什么数据:1.清楚2.有代码提示

1) 方法1-没有默认值的参数: 形参:类型名

2)方法2: 给参数赋值默认值,默认值就是参数类型

'''

# def func4(str1):

#         pass



def func4(str1:str, list1 =[1]):

        str1.upper()

func4('anc', [1,20])



# dict1 ={'a':10, 'b':'abc', 'c': [10,20]}

# key = input('Key:')

# xx = dict1[key]

# ###***有问题

# message = '[''abc'', ''sdsd'']'

# # str1 = '['abc', 'cfd']'   #要用不同的引号

# list2 = eval(message)  #type:list

# list2.clear()



# 4.  不定长参数 - 解决参数个数不确定的问题

'''

1)带*的不定长

定义函数的时候,如果在某个形参前面加*,那么这个参数就变成了一个不定长参数,调用的时候这个形参可以接受若干个实参

本质:如果形参有*,那么这个参数会变成一个元组,实参就是里面的元素

注意:

a. 带*的不定长参数在传参的时候只能使用位置参数

b.混用参数时,这个时候不定长前用位置参数,后面用关键字



2)带**的不定长参数

本质: 如果形参前有**,那么这个参数就会自动变成一个字典,所有的实参会作为这个字典的键值对

注意:传参的时候只能用关键字传参



'''

# 练习:定义一个函数,求多个数的和



# sum2(10,20)

# sum2(10,20,30)

def func5(*num):

        pass

func5()

func5(10,20,30,30,40)



def func6(x,*y):

        pass

# func6()      #会报错

func6(10)

func6(10,20,30)



def func7(x,*y):

        sum1 = x

        for i in y:

                sum1 += i

                print(sum1)



# func6()      #会报错

func7(10)      #30

func7(10,20,30)      #60



def  funct1(x, *y, z):

        pass

#funct1(10,20,30)  #会报错

funct1(10,20,30,z=50)





def func9(**x):

        pass



func9()

func9(a=10)

func9(a=0,a1=20,a3=30)



def func10(*args, **kwargs):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值