IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 我学python的那段日子(五)python中的函数 -> 正文阅读

[Python知识库]我学python的那段日子(五)python中的函数

python中的函数

1.1自定义函数

1.1.1 函数的定义

? 和Java一样,python也有内置函数和自定义函数,内置函数是python已经定义好的函数,而自定义函数则是我们根据需要自己定义的函数。

? 语法

def 函数名称(参数):

? 函数体

? 其中参数的定义有4种方式:

? 1.(arg1,arg2,…argn)函数若是这种格式的,则在调用时传入的实参也要和形参的数量和顺序必须一致。

? 2.(arg1,arg2=value2,…)这种形式是给了形参一个默认值,如函数a(1,2),arg1的值取1,arg2的值取2,但如果arg2的默认值是3,在你调用a(1)时,此时并不会报错,而是arg1为1,arg2为3.

? 3.(*arg1)这种形式为多个形参的方式,即不确定参数的个数,你可以传入任意多个参数,这些参数的值会被保存在一个元组当中。

? 4.(**arg1)的形式表示在调用时采用“arg1 = value1,arg2 = value2”的方式调用,如 a(x=1,y=2,z=3),此时参数以类似于字典的形式保存{‘x’:1,‘y’:2,‘z’:3}。

? 案例

#定义一个函数,该函数求两数最大值
def calMax(a,b):
    if a>b:
        print("最大值为:",a)
        return a
    elif:
        print("最大值为:",b)
        return b

3.1.2 函数的调用

? 函数的调用很简单,语法如下:

函数体(参数列表)

? 比如如果要调用上面的calMax(a,b)函数,只需要如下语句即可

calMax(2,3)

? 结果如下:

在这里插入图片描述

3.1.3 传递值和传递引用

? 在Java中,我们都知道有一个概念,在传递参数时,有值传递和引用传递(所谓的值传递就是在调用函数时,当你将实参传递给函数时,只是将实参的一个副本交给函数,无论函数对该副本作何操作,都不会影响到其本身(本体)。而引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。看不懂也没关系,代码写多了后面回来看就懂了。)。

? 但是在Python中,没有这种方式来传参,二十使用“传对象引用“的方式实际是值传递和引用传递的一种综合。

? 需要注意的是,在Python中,字符串、元组和数值是不可改变的对象,而列表、字典等是可以修改的对象。

? 如下面的案例

#coding:utf-8
#定义一个函数,传入 数值、字符串和元组,改变他们的值。
def changeValue(num,string,tuple):
    num = 5
    string = "Trumple"
    tuple = (3,6)
#定义三个变量分别是 数值、字符串、元组
num = 8
string = "littleBlack"
tuple = (4,8)
#调用changeValue()方法
changeValue(num,string,tuple)
#输出
print(num,string,tuple)

? 结果为

在这里插入图片描述

? 从上面可以看出,即使我们调用了changeValue()函数,三个变量的值仍然没被改变,这也就验证了我们之前学过的知识点,如果函数收到的是字符串、元组或数值,不能直接修改原始的对象,也就是对其本身无影响,相当于**“值传递”**。

? 再看另一个案例

#coding:utf-8
#定义一个函数,修改列表和字典的值
def changeValue(list,dict):
    list[0] = "fengfeng"
    dict["name"] = "kunkun"
#定义列表和字典
list = ["fanfan","yangyang","miemie"]
dict = {"name":"chenchen","age":24}
#调用 改变值的函数
changeValue(list,dict)
print(list)
print(dict)

结果为:

? 在这里插入图片描述

? 从结果可以看出,如果函数收到的是一个可改变的引用(如字典或者列表等),就能修改对象的原始值。

3.1.4 return语句

? return 语句和Java的一样,都是可以返回一个结果回来,这里就不再赘述

3.2字符串函数

? 字符串函数属于Python的内置函数。

3.2.1 字符串函数的定义

? 灰常简单,和吃饭一样,可以使用单引号或者双引号来创建。

变量名 = ‘字符串的值’

变量名 = “字符串的值”

? 如

str1 = "风好大"
str2 = '吃好喝好,一路走好'

3.2.2 字符串的截取

? 字符串的截取也比较简单,语法如下

字符串变量名[开始下标:结束下标]

? 该语法标识的是从开始下标到结束下标这个范围内截取字符,如果无开始下标,标识从开头(索引为0)到指定结束下标位置截取。如果是截取后几个字符,同样结束下标也可以省略,案例如下。

#coding:utf-8
str1 = "风好大"
str2 = '吃好喝好,一路走好'
# 截取str2 前五个字符 下标是0到4,如果下标是从0开始的,可省略
print("前五个字符为:",str2[:5])
print("3到6个字符为:",str2[3:6])
print("最后五个字符:",str2[len(str2)-5:])

在这里插入图片描述

3.2.3 Python中的三引号

? 先看语法

变量名 = “”“字符串内容”“”

变量名 = ‘’‘字符串内容’‘’

顾名思义,三引号就是三个引号引起字符串内容。三引号里面的内容允许一个字符串跨行,不需要再像Java中经常要拼接了,特别是html代码,用过Java的都知道,不仅痛苦,而且痛苦。案例如下:

#coding:utf-8
html = """<form>
<input type='text' value=''/>
</form>"""
print(html)

? 结果

在这里插入图片描述

方法描述
string.find(str, beg=0, end=len(string))检测str是否包含在string中,如果beg和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string.format()格式化字符串
string.split(str=“”, num=string.count(str))以str为分隔符切片string,如果num有指定值,则仅分隔num个子字符串
string.title()返回“标题化”的string,即所有单词都是以大写开始,其余字母均为小写
string.upper()转换string中的小写字母为大写

? 当然,除了上述函数外还有很多,这里就不赘述。我们来看看其中的一些方法怎么用,这里用find做案例。

#coding:utf-8
#给定一小段字符串,从字符串中解析出 时间 
html = '''<div class="about">
        2022-12-19 14:44:35<br>
        来源:中国台州网'''
index = html.find('class="about">')
len1 = len('class="about">')
index2 = html.find('<br>')
timestr = html[index+len1:index2]
timestr = timestr.strip()
print(timestr)

? 结果
在这里插入图片描述

3.3 集合类操作

3.3.1 将列表转换成集合

Python中的集合没有Java的集合那么复杂和庞大,Python中的集合只和Java中的HashSet集合类似,知识一个把不同元素组成一起的数据结构,是Python语言中的基本数据类型。其最好的作用是去重。

? 如下:

#coding:utf-8
# 列表,可重复元素
list = [3,4,3,5]
print(list)
# 转换为集合
set = set(list)
print(set)

? 结果

在这里插入图片描述

上面的set()方法,就是把list列表转换成集合,另外转成集合后,很显然集合中的相同元素3已经不重复了。当然除了去重之外还可以对集合中元素进行新增、删除、修改

3.3.2 集合的新增、删除和修改

? 集合的新增、删除和修改都是对于可变集合而言(Python中集合分成可变集合和不可变集合)

方法描述
add()添加元素
clear()清空元素
discard()如果集合中无元素,不会报错;有元素就删除
pop()随机删除集合中的某个元素,取到元素后返回元素的值,s.pop()不能加目标元素,故频率略低
remove()删除目标元素,但集合中如果没有元素就会报错

3.3.3 不可变集合

? 不可变集合是不可以新增、修改和删除集合中的元素的, 但是可以作为字典的键,而可变元素不行。另外如果要生成一个不可变集合,可以在将列表转换成集合时使用下面的方法

frozenset(list)

? 另外我们还需要掌握集合、列表、元组和字符串之间的转换

(1)list(s1):将集合s1转换成列表

(2) str(s1):将集合s1转换成字符串

(3) tuple(s1):将集合s1转化成元组

3.3.4 集合中的四种操作符

? Python中给集合提供了四种操作符,分别如下

(1)联合(|):实际就是数学里的并集(不懂什么叫并集的回去叫初中高中数学老师教)

(2)交集(&) : 数学中的交集,简简单单

(3)查补(-) : 两个集合求差,如 s1 - s2

(4) 对称差分(^): 集合的异或,不懂得看这个公式: (s1 - s2) U (s2-s1)

? 看不懂的敲敲下面的案例:

#coding:utf-8
s1 = set([1,3,5])
s2 = set([1,3])
# 求联合
print(s1 | s2)
#求交集
print(s1&s2)
#求查补
print(s1-s2)
#求差分
print(s1^s2)

? 结果
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:04:55  更:2022-12-25 11:04:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 2:55:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计