当前位置: 首页 > article >正文

Python基础学习(3)

目录

一,函数

1,函数的定义

2,函数的参数

1,默认值

2,传参

3,返回值

4,变量的作用域

5,函数的调用

二,常用数据结构

1,列表

列表的定义

 列表的特性

遍历

插入

 判断元素是否在列表中

删除

列表的拼接

 2,元组

3,字典

1,定义

 2,使用

1,判断key是否在字典中

2,新增和修改

 3,删除

 4,打印

三,文件

1,文件的打开

2,文件的关闭

 文件个数有限:

文件关闭:

 3,文件写

 4,文件读

5,文件上下文管理


一,函数

1,函数的定义

在pyhon中,函数的定义较为简单。

示例如下:

def test(a,b):
    print(a,b)
    
test(10,20)

 语法为:def 函数名(参数1,参数2,.....):函数体

2,函数的参数

如上图,a,b便是函数的参数。在python中,函数的参数的定义是不需要类型的。 

1,默认值

在python中,也有默认值的概念。在设置默认值时要注意,默认值一定是在非默认值的后面设置的。

示例:

def test2(a,b,c=10):
    print(a,b,c)

 在上述例子中,c = 10便是默认值。

2,传参

1,位置传参

示例:

test2(10,20)

2,关键字传参 

test2(b = 10,a = 20)

 关键字传参可以不讲顺序的传入参数。

3,返回值

在python中也有返回值的概念,也是使用return返回。不过,在python中还支持一次返回多个值。

示例:

1,普通返回

def test3(a):
    return a

ret = test3(10)

 2,一次返回多个值

def test4(a,b,c):
    return a,b,c

ret1,ret2,ret3 =test4(10,20,30)

4,变量的作用域

 在python中,函数内定义的变量的作用域就在函数的内部。当函数内部定义的变量和外部的变量有重名的时候时,调用的是内部的变量,要调用外部变量时要使用globle来声明。

示例 :

val = 100
def test5():
    val = 0
    print(val)

test5()

 

使用global变量声明:

val = 100
def test5():
     global val
     val+=10
     print(val)


test5()

5,函数的调用

python的函数可以嵌套调用,也可以递归调用。

二,常用数据结构

列表和元组的区别就在于列表可以修改,元组不能修改。

1,列表

列表的定义

列表的定义有两种方式:[ ],list()

案例:

# 第一种
a = list()
# 第二种
b = [1,2,3,4,5]
 列表的特性

1,支持下标访问:python的下标可以为负数,负数代表从后往前遍历。

2,切片访问:python支持切片访问,切片格式:[pos1:pos2:step]。

 示例

a=[1,2,3,4,5,6,7,8]
#下标为-1代表是最后以为
print(-1)
#切片
print(a[1:5])
#设置步数
print(a[1:5:2])
遍历

列表的遍历方式分为两种:

1,in迭代方式

2,下标访问

第一种方式修改值时不能改变列表里的值,第二种方式可以改变列表内元素的值

示例:

a = [1,2,3,4,5,6,7,8,9,10]
#第一种遍历方式
for i in a:
    print(i,end=' ')

print()

#第二种遍历方式
Len = len(a)
n=0
while n < Len:
    print(a[n],end=' ')
    n+=1
插入

支持两种插入方式:1,append(),直接插入到列表的后面。

                                 2,insert():插入到列表的指定下标处。

a.append(1)
print(a)

a.insert(1,100)
print(a)
 判断元素是否在列表中

判断方式:

                1,使用in来判断。

                2,调用列表的index函数来判断。

#打印结果为True/False
print(1 in a)

#打印下标
pos = a.index(100)
print(pos)
删除

列表的删除方式有两种:1,pop():删除最后一个字符

                                        2,remove():删除指定的value 

 示例:

a = [1,2,3,4,5,6,7,8,9,10]
print(a)
a.pop()
print(a)
a.remove(9)
print(a)
列表的拼接

列表的拼接有三种方式:

1,使用+的方式来拼接

2,使用extend()函数来拼接

3,使用+=的方式来拼接

a = [1,2,3,4,5,6,7,8,9,10]
b=[12,34,56,23,45,33,77]
#使用+的方式来拼接
c=a+b
print(c)
#使用extend方式
a.extend(b)
print(a)
#使用+=方式来拼接
a+=b
print(a)

 2,元组

元组的学习会比较简单,因为元组和列表差不了多少。

知道元组的定义方式有两种:a = ()和tuple()。

元组不支持修改。

3,字典

字典是一种支持key:value的数据结构。底层使用哈希表来实现。

字典的key值只能是确定的,不能修改的值。如:不能为列表,字典。 

1,定义

支持两种定义方式:{},dict() 

示例:

a = {
    'key':'value'
}

b = dict()
 2,使用
1,判断key是否在字典中
//返回值为bool值
ret = 'id' in a
print(ret)
2,新增和修改

字典通过方括号的方式来新增和删除元素。

#新增
a['key2'] = 'value2'
#修改
a['key'] = 'value3'
 3,删除

使用pop(key)来删除dict里面的键值对。

a.pop('key')
a.pop('key2')
 4,打印

打印key值:调用keys()

打印value值:调用values()

对印两个值:调用items()

print(a.keys())
print(a.values())
print(a.items())

三,文件

python的文件操作比较的简单。无非就是打开,读取,写入,关闭,这四个步骤。

1,文件的打开

打开文件使用到的是open函数。使用方式:open('文件路径','打开方式') ,文件的打开方式有三种:1,读打开('r') 2,写打开('w') 3,追加写打开('a')

 示例:

#以读方式打开
f = open('./test.txt','r')
#以写方式打开
f = open('./test.txt','w')
#以追加写方式打开
f = open('./test.txt','a')
2,文件的关闭

文件的打开个数是有限的,所以在打开一个文件以后若是不再使用的话就要关闭文件,否则就会造成内存泄漏。

 文件个数有限:
count = 0
List=[]
while True:
    count+=1
    f=open('./test.txt','r')
    List.append(f)
    print(f'count={count}')

文件关闭:
f = open('./test.txt','r')

f.close()
 3,文件写

文件使用写write('str')来写入内容到文件中。

f = open('./test.txt','w')
f.write('你是笨蛋')
f.close()
 4,文件读

文件的读取方式有三种:1,使用read()来读取   2,使用for循环来读取   3,使用readlines()来读取。

1,read()方式读取 

f = open('./test.txt','r',encoding='utf-8')
str = f.read(10)
print(str)
f.close()

 2,for循环方式读取

f = open('./test.txt','r',encoding='utf-8')
for line in f:
    print(f'line:{line}',end='')
f.close()

3,readlines()方式读取

f = open('./test.txt','r',encoding='utf-8')
print(f.readlines())
f.close()
5,文件上下文管理

使用文件时最怕的便是内存泄漏问题,所以为了避免这个问题便可以使用文件上下文管理的方式来管理上下文,防止内存泄漏问题。

with open('./test.txt','r',encoding='utf-8') as f:
    f.read(10)

 


http://www.kler.cn/a/316351.html

相关文章:

  • 【缺陷检测】Anomaly Detection via Reverse Distillation from One-Class Embedding
  • 宗馥莉的接班挑战:内斗升级,竞品“偷家”
  • opencv常用api
  • jmeter介绍、使用方法、性能测试、现参数化和数据驱动、分布式测试、压力测试、接口测试
  • Qt 和 WPF(Windows Presentation Foundation)
  • Spring框架之观察者模式 (Observer Pattern)
  • SpinalHDL之结构(二)
  • rabbitmq整合skywalking并编写自定义插件增强
  • 超详图解 Apache HTTP Server(httpd)安装与验证
  • 设计模式 享元模式(Flyweight Pattern)
  • 『功能项目』QFrameWorkBug修改器界面【65】
  • 数据结构(十四)——HashMap与HashSet(OJ题)
  • Git 提交规范
  • Flyway 数据库差异处理
  • 机器人速度雅可比矩阵求解(2自由度平面关节机器人)
  • Perl 进程管理
  • 【Nginx-Location-Root】最终访问的路径是 root/$uri
  • 程序员锤炼核心竞争力的五重策略
  • 《Linux基础》练习操作
  • Redis中的setnx的使用场景
  • 2024年中国科技核心期刊目录(自然科学卷)科技统计源核心(续)
  • 网络通信——路由器、交换机、集线器(HUB)
  • 【深度学习】(5)--搭建卷积神经网络
  • 【matlab】读取rhd文件格式,intan脑电采集开源代码
  • go语言 结构体
  • 签署《AI安全国际对话威尼斯共识》 智源持续推动人工智能安全发展