python相关知识

1、注释

共有三种:#、''' '''、""" """

2、数据类型

整数、浮点、字符串、布尔、列表、元组、集合、字典

num1 = 666、num2 = 3.14、t1 = True、t2 = False、

列表:list = [1,2,3,4]

元组:tuple = ('11','aaa','ddd',3)

字典:dict = {'li':'弹琴','l2':'打球'}

集合:set = {1,2,3,4,4,5}

3、基本内建函数

print()、type()、input()等

4、标识符

由数字字母下划线组成,不能是数字开头,不能是35个关键字,区分大小写;

标识符包含:变量名、函数名、类名、对象名等

标识符命名建议:见名知意、大驼峰、小驼峰、下划线(user_name)

我们编写代码过程中,可以用到快捷键,格式化代码快捷键:ctrl+alt + L

5、格式化输出方法

方法一:%s占位、%d占位、%f占位

方法二:print(f"我的名字是{name}")

6、输入方法

输入:input() 内置函数

7、数据类型转换

int()、float()、str()、eval()

8、算术运算符

+、 -、 *、 /、 //(取整数)、 %(取余数)、 **(乘方)

9、字符串运算符

字符串的运算符:+拼接、*复制内容

10、字符串str的操作方法

下标取值、切片、find()、index ()找不到则报错、count ()

11、列表list的常用方法

list1 = [1,2,3,2]

○ 新增:append()、insert()、extend()

○ 切片:【起始:结束:步长】

○ 删除:del、pop()不填默认删最后一个元素、remove()、clear()

○ 查找:in、not in、index()不存在则报错、count()没有则返回0

○ 排序:reverse()、sort()、sort(reverse=True)

12、元组tuple的常用方法

tuple1 = (1,2,3,4,5)

○ 有序序列、元组的元素不能被修改

○ 格式是小括号(),小括号可以省略不写,如tuple1 = 1,2,3,4,5

○ 下标提取值、切片、index()、count()

13、字典dict

dict1 = {'name':'老墨','age':16}

○ 常用方法:切片、通过键提取值、索引、len()

○ 取值:dict1['name']、 dict1.get('name')、 dict1.keys()、 dict1.values()、dict1.items()

○ 增加数据:d = dict(a=1,b=2,c=3)、 update()、setdefault():若存在则不变

○ 删除数据:pop()方法、del关键字、clear()

13、集合set

set1 = {5,2,3,3,4,1}

○ 自动去重、无序

○ 集合set、列表list、元组tuple可以相互转化

○ 修改数据:add()、remove()

14、可变数据类型 和 不可变数据类型

不可变:数字类型、字符串类型、元组tuple

可变:列表list、字典dict、集合set;(数据内容改变,地址也不发生改变)

15、推导式

重点列表推导式:list2 = [x for x in range(8)]

# 这个代码写法1
list_num = []
for i in range(8):
    num = random.randint(0, 10)
    list_num.append(num)
print(list_num)

# 用列表推导式写法2
list3 = [random.randint(0, 10) for x in range(8)]
print(list3)

# in 后面可以放一个可迭代的对象:容器类型的数据(字符串、元组、字典、列表)
list_a = [a for a in 'python']
print(list_a) #['p', 'y', 't', 'h', 'o', 'n']

list_b = [a*2 for a in 'python']
print(list_b) #['pp', 'yy', 'tt', 'hh', 'oo', 'nn']

# 带if条件的列表推导式
list_c = [x for x in  range(10) if x%2==0]
print(list_c)#[0, 2, 4, 6, 8]

# 字典推导式
dict_a = {key:value for key in 'python' for value in range(8)}
# 因为一直覆盖,所以取得最后一个值7
print(dict_a)#{'p': 7, 'y': 7, 't': 7, 'h': 7, 'o': 7, 'n': 7}

# 集合推导式
set_a = {i for i in '有人云淡风轻,有人负重前行'}
print(set_a)#{'前', '行', ',', '有', '重', '负', '人', '风', '云', '淡', '轻'}

16、浅拷贝和深拷贝

  • 浅拷贝:重新分配内存空间,新元素指向原来的位置===》不可变数据
  • 浅拷贝:(针对不可变的数据类型,:数字、字符串、元组tuple)
  • from copy import copy
  • tuple2 = copy(tuple1)
  • 深拷贝:重新分配内存空间,新元素独立和原来的数据没有任何关联===》可变数据
  • 深拷贝(针对可变数据类型:列表list、字典dict、集合set等数据类型)
  • from copy import deepcopy
  • list2 = deepcopy(list1)

17、三大执行体系:顺序、分支、循环

1)分支 - if
# 分支 - if
age = 18
if age>10:
    print("可以吃")
elif age>5:
    print("可以申请吃")
else:
    print("不准吃")

python3.10之后分支语句出现了新的写法match

match = name:
	case "理性":
		print("111")
	case "感性":
		print("222")

判断分支条件True和False:

  • True:非0的数字、小数、整数、负数、非空字符串、非空容器类型数据(set、list、tuple、dict);
  • False:为0的数据、为空的字符串、为空的容器类型数据;
  • 比较运算符:>、<、==、>=、<=、!= ====》运算结果都是布尔值
  • 逻辑运算符:and、or、not
  • 在 python3.10 之后,可以使用match 、case:
  • if,实现三目运算符:print(a if a > b else b) # 如果条件成立返回结果a,否则返回b
2)循环 - while、for
i = 0;
while i<100:
    i=i+1;
print(f"循环次数{i}")

for i in range(100):
    print(f"循环次数{i}") # 从0到99
3)break 和 continue

break:结束终止整个循环体

continue:跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

# while 中使用 break
n = 0
while n < 5:
    n += 1
    if n == 3:
        break
    print(n)
print('循环结束!')


# while 中使用 continue
n = 0
while n < 5:
    n += 1
    if n == 3:
        continue
    print(n)
print('循环结束!')

18、函数

  • 参数:是否指定参数类型、默认参数值、不定长参数*args元组 和 **kwargs字典;

  • 返回值:是否有返回值

  • 函数调用:定义关键字参数

  • 函数嵌套

    '''函数add1:不指定参数类型,无返回值'''
    def add1(x,y):
    #关键字占位
    # pass
    print(x+y)#3

    '''函数add2:指定参数类型,有返回值'''
    def add2(x:int,y:int) -> str:
    z=x+y
    print(z)#6
    return str(z)

定义关键字参数(调用的时候):add2 ( x=1, y=3 )

默认参数值(函数定义的时候):def add ( a, b, c=4):

不定长参数:让函数接受长度不确定的参数:可以是0个、1个、100个或者N个参数

*args:让函数接受任何的数量的位置参数,存储方式是元组;

**kwargs:让函数接受任何数量的关键字参数,存储方式是字典;

'''函数的默认参数值,函数的指定参数传值'''
def add1(a=1, b=int, c=int) -> list:
    sum = a+b+c;
list1 = [a,b,c];
return list1;
print(add1(a=3,b=2,c=3)) #[3, 2, 3]

'''*args :让函数接受任何的数量的位置参数,存储方式是元组'''
def add2(*args):
    print(args)
add2(1,2,3,'333','我',(1,2,3),[1,2,3],{1,2,3},{'a':1,'b':6})

'''**kwargs :让函数接受任何数量的关键字参数,存储方式是字典'''
def add3(**kwargs):
    print(kwargs)
add3(a='豆豆',b='饼饼')

函数嵌套:

def add(*args, **kwargs):
    def count(a, b):
        return a + b;
return count

f1 = add()
c = f1(3,9)
print(c) #12

19、全局变量和局部变量、global标识符

局部变量:

是在函数内部声明的变量,其作用域仅限于声明它的函数内部。

在函数被调用时创建,并且在函数执行完毕后销毁。

其他函数无法访问局部变量。

在函数内部声明局部变量时,可以使用var_name = value的形式进行声明和赋值

全局变量:

在函数外部声明的变量,其作用域延伸到整个程序的范围。

可以在任何函数内部访问和修改。

在函数内部声明全局变量时,需要使用global关键字进行声明。

全局变量的命名最好避免与局部变量重名,以免发生混淆。

# 声明全局变量
a = 20

def my_function():
    global global_var
    # 访问全局变量
    print("全局变量 a 的值为:", a)

    # 函数内部修改全局变量
    a=9999

my_function()  # 调用函数
print("修改后的全部变量为", a) 

20、文件操作

文件的打开和关闭 : open 和 close

  • file1.read() # 读取文件全部内容
  • file1.readline() #读取文件一行内容
  • file1.readlines() #读取文件所有行内容,返回一个列表,数据内容是字符串的数据类型

文件的读写模式:r、w、a、wb、rb、ab、r+、w+、a+、rb+、wb+、ab+

文件操作:

import os
os.rename("abc.txt",'111.txt')# 修改文件名字
print(os.getcwd())# 货物当前文件(文件夹)的绝对路径
os.rmdir("123")# 删除空的文件夹
os.mkdir("456")# 创建空的文件夹
print(os.listdir("456"))# 获取文件夹目录

21、时间处理

import time

# 获取当前本地时间
print(time.localtime())
#获取时间戳
print(time.time())
# 结构化时间:时间 -> 时间
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
print(time.strftime("%Y-%m-%d %H:%M:%S"))

# 字符串  -> 时间
print(time.strptime("2023-03-05 21:59:27","%Y-%m-%d %H:%M:%S"))

# 等待时间3秒
time.sleep(3)
相关推荐
算法小白(真小白)3 小时前
低代码软件搭建自学第二天——构建拖拽功能
python·低代码·pyqt
唐小旭3 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
007php0073 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
Chinese Red Guest3 小时前
python
开发语言·python·pygame
骑个小蜗牛4 小时前
Python 标准库:string——字符串操作
python
黄公子学安全6 小时前
Java的基础概念(一)
java·开发语言·python
程序员一诺6 小时前
【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】
后端·python
小木_.7 小时前
【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
爬虫·python·学习·分享·批量下载·图片下载器
Jiude7 小时前
算法题题解记录——双变量问题的 “枚举右,维护左”
python·算法·面试