python基础知识总结

本文详细介绍了Python中的不可变和可变数据结构(如Number,String,Tuple,List,Dictionary,Set),以及输入输出、函数、装饰器和垃圾回收机制。还涵盖了Faker库、面向对象编程、正则表达式、Pandas和Numpy在数据处理中的应用,以及如何使用PyInstaller打包Python脚本为可执行文件。
摘要由CSDN通过智能技术生成

一、Python数据结构
不可变数据结构(3 个):Number(整数)、String(字符串)、Tuple(元组)
可变数据结构(3 个):List(列表)、Dictionary(字典)、Set(集合)
Python 支持三种不同的数值类型:整型(int)、浮点型(float)、复数(complex)
Python不同于其它语言,整数只有一种int类型,不区分short、int、long类型;浮点数只有一种float类型,不区分float与double类型
1.1 列表
list = [‘red’, ‘green’, ‘blue’, ‘yellow’, ‘white’, ‘black’]
列表是可变的,列表的内容可以通过各种方法如append()、extend()、insert()、remove()和pop()来添加、删除或修改元素
list列表反转方法:
第一种,是可以通过倒序切片反转,步长是 -1;
第二种,通过列表反转的方式,使用reverse函数
列表切片:
“切片”操作用于从某个对象中抽取部分值的情况。
索引方式:object[start_index:end_index:step]

start_index:表示起始索引(包含该索引对应值)

end_index:表示终止索引(不包含该索引对应值)

step:正负数均可,其绝对值大小决定了切取数据时的"步长"

List = [0,1,2,3,4,5,6,7,8,9]
例1:

输入:a[-1:-6:-1]
输出:[9, 8, 7, 6, 5]
例2:
输入:b = a[::2]
//从最开始的值取到最后的值,步长为2
输出:[0, 2, 4, 6, 8]
例3:
a[6:]
[6, 7, 8, 9]
当只有一个“:”时,默认第三个参数step=1
//从start_index=6开始,步长为1,一直取到“终点”值9
1.2 元组
tuple = (‘Google’, ‘Runoob’, 1997, 2000)
1.3 字典
d = {key1 : value1, key2 : value2, key3 : value3 }
例:tinydict = {‘name’: ‘runoob’, ‘likes’: 123, ‘url’: ‘www.runoob.com’}
1.4 集合
集合set是一个无序的不重复元素序列
键是唯一且不可变的,值是可变的且类型不唯一
parame = {value01,value02,…}
set(value)
总结:
数据结构 是否可变 是否重复 是否有序 定义符号
列表list 可变 可重复 有序 [ ]
元组tuple 不可变 可重复 有序 ( )
字典dict 可变 值可重复 无序 {key:value }
集合set 可变 不可重复 无序 { }

二、Python输入输出
1,input()函数
input()函数用于从标准输入(通常是键盘)读取用户输入的字符串,返回为 string 类型
2,eval函数
eval()函数是用于将字符串作为 Python 代码进行求值并返回结果
接收输入数字作为变量时,常使用eval(input(‘请输入数字:’))来获取用户输入的数字

注意:使用 eval() 函数时要小心,因为它会执行任意代码,包括那些可能具有恶意意图的代码。因此,不应该直接将用户输入的字符串传递给 eval() 函数,否则可能会导致安全问题。
三、Python函数
1,函数与方法
函数(function)是Python中一个可调用对象,而方法(method)是一种特殊的函数,两者定义方式不同,函数是独立的代码块,可以在任何地方定义;方法则是与对象相关联的函数,通常定义在类的内部。
两者调用方式也不同,函数可以直接调用,而方法必须通过对象来调用,总结来说,函数是独立的、可以重复使用的代码块,而方法是与特定对象关联的、用于操作对象状态的功能

1.2自定义函数
#例:计算面积函数
def area(width,height)
return width * height
不带表达式的return相当于返回 None

1.3 系统函数
list():用于将其他序列转换为列表
range() :可创建一个整数列表,一般用在 for 循环中
range(10) #创建由从0开始的十个数字组成的列表:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(1, 11) # 从 1 开始到 11(不包含11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
range(0, 30, 5)
步长为 5 [0, 5, 10, 15, 20, 25]
join() : 用于将序列中的元素以指定的字符连接生成一个新的字符串
num = [‘4’, ‘2’, ‘4’, ‘2’, ‘3’, ‘2’, ‘1’]
print(‘’.join(num)) #将列表num转化为字符串,输出4242321

1.4 匿名函数
Lambda函数是不带名称的单行函数,可以具有n个参数,但只能有一个表达式。也称为匿名函数。
Python 中通过 lambda 表达式来定义匿名函数
lambda 表达式的基本句法是:
【lambda 空格 函数的参数:函数返回值】
例: a = lambda x, y:x + y
print(a(5, 6))

11
在lambda 函数中不能有return, 因为:后面就是返回值

1.5 函数重载机制
Python重载函数是指函数可以接受不同数量或类型的参数,用相同的函数名,可以处理不同类型或数量上的参数,使得函数可以处理多种情况
(Python不支持自定义函数的重载。 当我们用相同的名称定义多个函数时,后一个函数始终会覆盖前一个函数)
为了实现类似函数重载的功能,Python鼓励使用不同的函数名或者使用内置的函数args和**kwargs来处理不同数量的参数。
使用
args和**kwargs的例子:
python
def add(*args):
sum = 0
for num in args:
sum += num
return sum

print(add(1, 2)) # Outputs: 3
print(add(1, 2, 3)) # Outputs: 6
四、python垃圾回收
Python 使用了一种自动化的内存管理策略,称为垃圾收集。当 Python 解释器开始运行时,它会初始化一个垃圾收集器,这个收集器会周期性地检查并回收那些不再被任何活动对象所引用的对象所占用的内存空间。
Python 的垃圾收集主要关注两个方面:
1,引用计数:Python 内部使用引用计数来追踪内存中的对象。每个对象都有一个引用计数,当对象被创建时,给其他对象引用它,引用计数加一;当对象不再被一个对象引用时,引用计数减一。当引用计数降至0时,对象被垃圾收集器回收。
2,分代回收:Python 将管理的对象分代管理,不同的对象集合有不同的回收频率。例如,新创建的对象可能会被放置在年轻代,而经过多次垃圾收集循环的对象会被放置在老年代,并且老年代对象的收集频率比年轻代低很多。
在 Python 中,,我们不需要手动管理内存,垃圾收集器会自动处理内存分配和释放

五、Python装饰器
装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能
装饰器的返回值也是一个函数对象。
常用场景:插入日志(统计函数执行时间)、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。
概括的讲,装饰器的作用就是为已经存在的函数或对象添加额外的功能。

六、python常用三方库
1,python造数
使用python三方库:Faker
Faker 是一个生成伪造数据的 Python 库,Faker 数据通常用于测试或用一些伪数据填充数据库。
2,Python-OOPS(面向对象编程),
抽象、封装、继承、多态
2.1类和对象
在Python中为类创建一个对象,例:obj = num()
使用类的对象,我们可以访问类的所有成员,并对其进行操作。
3,python常用函数
3.1增加元素
append:在列表末尾添加新元素。
insert:在列表的特定位置添加元素。
extend:通过添加新列表来扩展列表。
3.2删除元素
remove:将删除列表中的第一个匹配值,它以值作为参数。
del:使用索引删除元素,它不返回任何值。
pop:将删除列表中顶部的元素,并返回列表的顶部元素。
3.3 split()函数
Python中,split函数的基本用法是将字符串按照指定的规则或者要求进行分割,并返回list值
3.4 join函数
.join()函数是Python中的字符串方法,用于连接字符串序列。
基本语法: “连接符”.join(字符串序列)
七、Python高频编程面试题
(简单)反转Python字符串
方法1:使用索引切片
切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法
string = ‘hello’
string[::-1]

‘olleh’
方法2:使用reverse()函数

(简单) 给你一个随机字符串,统计它的长度
如果想要动态获取用户输入的字符串长度,可以使用input( )函数来获取用户输入的字符串。示例代码如下:
random_str = input("Please enter a random string: ")
length = len(random_str)
print(“The length of the string is:”, length)

(一般) 给你一个随机字符串,统计里面大小写字母出现的次数

随机字符串

random_str = “AbcDeFgHijqRstUVWXYZtuvwxyz”

统计大写字母和小写字母的数量

upper_count = 0
lower_count = 0

遍历字符串中的每个字符

for char in random_str:

如果是大写字母,则将大写字母数量加1

if char.isupper():
upper_count += 1

如果是小写字母,则将小写字母数量加1

elif char.islower():
lower_count += 1

输出结果

print(“The number of uppercase letters is:”, upper_count)
print(“The number of lowercase letters is:”, lower_count)
其中,random_str是一个随机字符串,isupper()方法可以判断一个字符是否为大写字母,islower()方法可以判断一个字符是否为小写字母。通过遍历字符串中的每个字符,可以统计大写字母和小写字母的数量,最后使用print()函数输出结果

(一般)编写程序,检查序列是否为回文
def is_palindrome(sequence):
# 将序列转换为字符串并去除空格
s = ‘’.join(sequence).replace(" ", “”)
# 判断是否为回文
return s == s[::-1]

示例

print(is_palindrome(“racecar”)) # 输出: True
print(is_palindrome(“not a palindrome”)) # 输出: False

(难) Python怎么解析日志文件,说说用到的库和思路
解析日志文件是软件测试和故障排查中的常见操作。
通常的思路是:读取日志文件,对每一行数据进行解析和处理,然后对所需的信息进行保存或者展示。
re(正则表达式):通常情况下,日志文件都有特定的格式,使用re库可以方便地从日志文件中提取出所需的信息。例如,使用re.findall()方法可以根据正则表达式匹配日志行,并从中提取出关键信息。
. Pandas:Pandas是一个功能强大的数据处理和分析库,可以用于处理大规模日志数据集。它提供了灵活的数据结构、数据的读写和过滤等功能,并且可以进行统计、聚合以及可视化等操作。
. Numpy:Numpy是Python中最基础的科学计算库之一,它提供了高效的数值计算和矩阵运算,可以用于日志文件中数据的处理和分析。

(一般)怎样打包python自动化脚本
使用Python第三方打包库PyInstaller将py文件打包成一个可执行的exe文件
在使用时无需安装Python也可以点击运行
(需要提前准备ico图标文件)
打包执行代码命令:pyinstaller -F --icon=tp.ico te st.py;

  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值