欢迎光临散文网 会员登陆 & 注册

Python笔记-8 函数

2023-07-07 12:37 作者:littersho  | 我要投稿

函数(Functions)

python常用的内置函数

len()

range()创建一个左闭右开区间的整数序列

print(“”)

自定义一个函数

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()

  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

  • 函数内容以冒号 : 起始,并且缩进。

  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

调用函数

使用函数名直接调用,可以多次调用

参数:

1,形参(函数定义时的参数)和实参(实际传入的参数)

2,定义函数时,就会给参数设置默认值,这样的默认参数可以不传值,直接读取默认值,也可以传值,按照新传值读取,注意默认参数放在参数定义列表的后面位置

3,关键字参数

def func(var1,var2= 10,var3=20):

      print (“var1 is”var1,“var2 is”var2,“var3 is”var3)


func(5)

-- 输出var1 is5,var2 is 10,var3 is 20


func(5,var2= 20,var3=30)

-- 输出var1 is5,var2 is 20,var3 is  30


返回值:

def sum_and_cheng(a,b):

    return a+b,a*b

num1,num2 = sum(3,4) # 多个返回值可以用多个变量接收

print (num1)

print (num2)

补充:

当一个函数执行到return代码块的时候,就结束了

所以后面写的内容不会被执行

全局变量/局部变量

1,在函数内部定义的变量,函数外部用不了

def func():

    x=20

    print(“x is ”,x)

func()#调用函数可以打印

print(“x is ”,x)#打印不了

2,外部定义的变量,函数内部可以用

x=20

def func():

    print(“x is ”,x)

func()#调用函数可以打印

3,应用

x= 50

def func(x):

    print(“x is ”,x)  #50

    x= 20

    print(“change  x is ”,x) #20


func(x)  #  鼠标放在x上  ctrl+鼠标左键   可以定位到传参位置 x=50

print(“  x is  still ”,x) #50


4,全局变量 global

x= 50

def func():

   global  x

    print(“x is ”,x)  #50

    x= 20

    print(“change  x is ”,x) #20


func()  #  鼠标放在x上  ctrl+鼠标左键   可以定位到传参位置 x=50

print(“  x is  still ”,x) #20


模块

在python中,一个文件(以.py为后缀名的文件)就叫做一个模块,每一个模块在python里都被看作是一个独立的文件

模块可以被其他文件调用并使用其中的方法和数据


先在根目录创建包 python package 再在package下创建 python file

可以在一个文件中写好函数,其他文件直接调用

eg: 

def hello():

     print("hello world !")


1,在本文件中调用,直接 hello()即可

2,在其他文件中调用,

import 包名.文件名 #导入模块

包名.文件名. hello()

from  包名.文件名  import  hello #导入方法

hello()

python常用内置模块:

  • math模块

  • random模块:提供随机数。

    import random

    random.randint(1,100)# 取1-100范围内随机整数

    random.random(1,1)# 取1-1范围内随机浮点型

    random.choice(‘abcdef’)# 取随机字符

  • time&datetime模块:时间相关的操作,时间有三种表示方式;

    print(time.time())#时间戳,自1970年0时0分0秒距离现在的秒数

    print(time.strftime(“%Y-%m-%d  %H:%M:%S”))#格式化

    a= time.localtime() #元组 a[0]:2023 a[1]:7  a[2]:7

    time.sleep(3)#沉睡三秒

    datetime模块是time模块的封装

    today = datetime.date.today() # 当天的日期

    one_day = datetime.timedelta(days=1)

    print(today - one_day) # 昨天

    print(today + one_day) # 明天

  • os模块:文件和目录,用于提供系统级别的操作;

    os.name  #系统 window:nt,linux/unix:posix

    os.getcwd() #获取当前路径

    os.listdir() #获取当前路径下的文件

    os.mkdir() #创建目录

    os.path.exists() #判断文件是否存在,布尔类型

  • sys模块:用于提供对解释器相关的操作;

  • re模块:正则表达式模块

  • json模块:处理JSON字符串;

  • logging: 用于便捷记录日志且线程安全的模块;

  • hashlib模块:用于加密相关操作,代替了md5模块,主要是提供SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法;

  • ConfigParser:提供了配置文件创建、解析、修改等功能。(Python2中,它的命名是驼峰式的,为ConfigParser)

  • shelve模块

  • xml模块

  • shutil模块

  • pickle模块

  • uuid模块:uuid.uuid4()作用是随机生成一个UUID(可能会重复)。uuid1()基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性。(暴露mac)




递归


①阶乘

递归调用

def num(n):   

      if n == 0:        

          return 1    

      else:        

           return n * num(n - 1)

print(num(6))

②斐波那契数列

def fib2(q):
    if q == 1 or q == 2:
        return 1
    return fib2(q-1)+fib2(q-2)
print(fib2(9))


Python笔记-8 函数的评论 (共 条)

分享到微博请遵守国家法律