Python代码编程基础

字符串

str.[]实现根据下标定位实现对元素的截取

for 循环可以实现遍历

while 循环可以在实现遍历的同时实现对某一下标数值的修改

字符串前加 r 可以实现对字符串的完整内容输出

字符串前加 f 可以实现对字符串内{}中包裹内容的格式化输出,仅在 v3.6 之后可用

对字符串使用*****、**+**实现字符串多次打印与字符串拼接

列表

列表定义

list = ["1", "2", "3", 31, 431, "fengjiawei 最帅", ["列表嵌套列表"]]

list.sort() 对列表进行排序,无返回值

list.sort(reverse = True) 对列表进行逆排序,无返回值

sorted(list) 直接返回排序后的列表

列表增

list.append(object)表示在列表最后加上某一对象,可以是列表也可以是别的元素类型

list1.extend(list2)表示将 list2 里的元素扩展到 list1 中去,list2 只能是列表

list.insert(1,object)表示在下标为 1 的位置加上 object

列表删

list.remove(列表中的某一个元素)表示删除列表中找到的符合该元素名称的第一个元素

list.pop()表示弹出列表中的最后一个元素,返回值为弹出的元素

del list[下标] 表示删除列表中的某一个元素

列表改

list[下标] = xxxx 表示直接对列表某一下标进行修改

列表查

in/not in

元素 in list 如果有返回 true,否则返回 false

list.index(要查找的元素,查找开始的位置,查找结束的位置+1)返回查找的第一个元素下标

python 复制代码
# myList = ["a", "b", "c", "d"]
# for i, x in enumerate(myList):  # 转换为枚举类型,使用枚举函数,同时拿到列表中的下标和元素内容
#     print(i, x)

列表推导式

列表推导式(List Comprehension)是一种语法结构,用于在Python中创建新的列表。语法格式如下:

python 复制代码
expression for item in iterable if condition
  • expression 是一个表达式,用于定义新列表中的元素。
  • item 是可迭代对象中的每个元素。
  • iterable 是一个可迭代对象,例如列表、元组、字符串等。
  • condition 是一个可选的条件表达式,用于筛选满足条件的元素。
python 复制代码
# 生成一个包含 1 到 10 的平方数的列表
squares = [x**2 for x in range(1, 11)]
print(squares)  # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


# 生成一个只包含偶数的列表
even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print(even_numbers)  # 输出:[2, 4, 6, 8, 10]


# 生成一个将字符串列表中的元素转换为大写的列表
words = ['apple', 'banana', 'cherry']
upper_words = [word.upper() for word in words]
print(upper_words)  # 输出:['APPLE', 'BANANA', 'CHERRY']

元组

元组最大的特性就是无法进行修改

tuple = ("avr", "nn", "faafa", 2 , 1)

元组增

tup3 = tup1+tup2 进行元组连接

元组删

del tuple 是删除整个元组而不是删除元组内的元素

元组改

元组内的元素无法进行修改

元组查

tup[下标]访问对应元组元素

字典

字典是键值对的集合

dic{"key1" : "value1", "key2" : "value2"}

字典中直接访问不存在的键会报错,如 dic["key3"]

使用 get 方法访问不存在的值不会报错,会返回 None, 如 dic.get("key3")

还可以使用 get 方法设定不存在的键对应的值,如 dic.get("key3","value3")

值的注意的是,如果使用 get 方法得到原本的字典里相应的值了,那么 get 设定的值不会起作用,如 dic.get["key1","value4"]返回值还是"value1"

字典增

直接增加相应的键值对即可

如 dic["key3"] = "value3"

字典删

del 删除整个键值对或者直接删除整个字典

del dic["key1"]删除第一个键值对

del dic 直接删除整个字典

dic.clear()清除整个字典,使 dic 变为空字典{}

字典改

直接将相应的 value 赋值给对应的键上面就行

字典查

python 复制代码
# print(dic.keys())  # 得到所有的键(列表)
# print(dic.values())  # 得到所有的值(列表)
# print(dic.items())  # 得到所有的项(列表),每个键值对是一个元组


# 遍历所有的值
# for key in info.keys():
#       print(info[key])
# for key, value in info.items():
#     print("key=%s,value=%s"%(key, value))

集合

set{1, 2, 3, 4}常用来进行集合相关的操作与 dic 类似,但不存储 value,key 不重复

set 是无序的,重复元素在 set 中被自动过滤,并且从小到大以顺序显示

s = set([1, 2, 3, 3, 5])

s 为{1, 2, 3, 5}

集合增

set.add(key)向集合增加元素

set.update(set1)更新集合,其实质就是将集合 set1 中的元素加入 set 中

集合删

set.remove(5)删除某一元素

set.pop()弹出元素,返回值为弹出的元素(最小,在最左边的元素)

set.clear()清除元素

del set 删除集合

集合改

没法改

集合查

for i in set:

print(i)

是否有序 是否可变类型
列表[] 有序 可变类型
元组() 有序 不可变类型
字典{} 无序 key不可变,val可变
集合{} 无序 可变类型(不重复)

函数

函数定义

def function()

全局变量与局部变量

函数内部是局部变量,外部是全局变量

优先使用函数内部局部变量,函数内部没有局部变量则使用全局变量,可以在变量前加上 global 关键字来使用全局变量

常见函数

bin(int/long)返回二进制数

upper(string)返回大写字符串

lower(string)返回小写字符

title(string)首字母大写

ord(string)返回 ASCII 码

匿名函数

lambda函数的特点包括:

  • 只能包含一个表达式,不能包含多个语句。
  • 不能有函数体,因此没有return语句,表达式的结果就是函数的返回值。
  • 可以使用任意数量的参数,包括可选参数和默认参数。
  • 可以将lambda函数赋值给一个变量,也可以直接调用lambda函数。
python 复制代码
# 匿名函数只有一行,不需要函数体,基本格式为lambda arguments: expression
add = lambda x, y: x+y
print(add(3,2))  # 输出结果为5
dic = lambda : defaultdic
print(dic)  # <function <lambda> at 0x000001E89DFF6F70>
dic = lambda x, y : defaultdic
print(dic(3,4))  # <class 'collections.defaultdict'>

Zip函数

zip()是一个Python的内置函数,可以将多个可迭代对象(列表、元组等)按照索引位置一一配对,然后返回一个新的迭代器。

其常用的操作有:

python 复制代码
遍历多个可迭代对象
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for x, y in zip(list1, list2):
print(x, y) # 输出:1 a, 2 b, 3 c
创建字典
keys = ['name', 'age', 'gender']
values = ['Alice', 25, 'Female']
person_dict = dict(zip(keys, values))
print(person_dict) # 输出:{'name': 'Alice', 'age': 25, 'gender': 'Female'}
解压缩操作
pairs = [(1, 'a'), (2, 'b'), (3, 'c')]
numbers, letters = zip(*pairs)
print(numbers) # 输出:(1, 2, 3)
print(letters) # 输出:(a, b, c)


# 实例
import nltk # 引入NLTK库
tagged_sents = nltk.corpus.brown.tagged_sents(tagset='universal')
# zip(*sent)生成的是一个可迭代的对象,其中将每个句子中的词与标签拆开分别组成了一对元组,再使用zip(*(zip(*sent)可以将多个句子中的词组合成一个二阶元组,标签也是。
sents, postags = zip(*(zip(*sent) for sent in tagged_sents))

文件

python 复制代码
f = open("文件路径", "读取方式")
f.close()

文件读

python 复制代码
f = open("xxx", "r")
f.readline()  # 读一行,光标移动到下一行第一个字节
f.readlines()  # 读所有行,按行为单位存储在列表里

文件写

python 复制代码
f = open("xxx", "w")
f.write("xxxx")  # 向文件内部写入

文件操作 OS

python 复制代码
import os
# os.rename("test1.txt", "test3.txt")  # 重命名
# os.remove("test3.txt")  # 删除
# os.mkdir("张三")  # 创建文件夹
# os.getcwd()  # 获取当前目录
# os.chdir()  # 改变目录
# os.removedirs("张三")  # 删除当前目录

错误和异常

python 复制代码
try:
    print("-----------test1----------")
    f = open("123.txt", "r")  # 用只读模式打开了一个不存在的文件,报错
    print("-----------test2----------")  # 这句代码不会执行
    print(num)
# except (IOError, NameError) as result:  # 文件没找到,属于 IO 异常(输入输出异常),异常类型要被捕获,需要一致
#     print("-----------test3----------")  # 捕获异常后执行的语句


except Exception as result:  # 文件没找到,属于 IO 异常(输入输出异常),异常类型要被捕获,需要一致,Exception 可以承接任何异常
    print("-----------test3----------")  # 捕获异常后执行的语句
    pass
相关推荐
Nina_7171 小时前
Day 15 训练
python
橙色小博1 小时前
Python中的re库详细用法与代码解析
linux·python·正则表达式·php·re
满怀10151 小时前
【库(Library)、包(Package)和模块(Module)解析】
python
白总Server2 小时前
微软系统 红帽系统 网络故障排查:ping、traceroute、netstat
linux·运维·服务器·microsoft·中间件·架构·github
zhojiew2 小时前
learning ray之ray强化学习/超参调优和数据处理
python·ai
bryant_meng2 小时前
【python】Calculate the Angle of a Triangle
开发语言·python·算法
未来之窗软件服务2 小时前
1k实现全磁盘扫描搜索——仙盟创梦IDE-智能编程 编程工具设计
ide·python·仙盟创梦ide
小白学大数据2 小时前
Python爬虫+代理IP+Header伪装:高效采集亚马逊数据
爬虫·python·tcp/ip·scrapy
测试开发Kevin3 小时前
以pytest_addoption 为例,讲解pytest框架中钩子函数的应用
python·pytest
仙人掌_lz3 小时前
从零开始理解FlashAttention:算法细节图解
人工智能·python·深度学习·算法·ai·flashattention