python基础和进阶小结

目录

❤  执行Python程序的两种方式

交互式

命令行式

❤  执行Python程序的两种IDE

Pycharm

Jupyter

❤  变量

什么是变量?

变量的组成?

变量名的定义规范

定义变量的两种方式

常量

❤  注释

单行注释

多行注释

引用计数

垃圾回收机制

小整数池

❤  花式赋值

链式赋值

交叉赋值

❤  与用户交互

❤  input

❤  格式化输出

占位符

format格式化

f-string格式化

❤  基本运算符

算术运算符

逻辑运算符

比较运算符

赋值运算符

身份运算符

运算符优先级(略)

解压缩

❤  流程控制

流程控制之if判断

if

if...else

if...elif....elif...else

流程控制之while循环

while

while + break

while + continue

while + else

流程控制之for循环

for

for + break

for + continue

for + else

❤  异常TODO

❤  深浅拷贝

拷贝

浅拷贝

深拷贝

❤  数据类型内置方法

数字类型内置方法

整型

浮点型

字符串类型内置方法

列表类型内置方法

元祖类型内置方法

字典类型内置方法

集合类型内置方法

布尔类型

❤  数据类型分类

按值个数

按有序无序

按可变不可变


python从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm=1001.2014.3001.5501

❤  执行Python程序的两种方式

交互式

在终端内输入python3,然后输入python代码

命令行式

在终端内输入python3 文本文件路径

❤  执行Python程序的两种IDE

Pycharm

Jupyter

❤  变量

什么是变量?

变量一般用来用来描述世间万物变化的状态

变量的组成?

变量名 = 变量值

变量名是用来接收变量值的

变量名的定义规范

  • 变量名具有某种意义
  • 由数字/字母/下划线组成,且不能由数字开头,(也不能由下划线开头)
  • 不能用Python关键字
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

定义变量的两种方式

  • 驼峰体:NameOfNick
  • 下划线:name_of_nick(推荐)

常量

常量是约定俗成的一种规范,常量名的定义方式为全大写.实际上可以被修改.

❤  注释

单行注释

#注释的语句,#后面的字符不执行语法,即只为普通字符,一般用来解释某一段代码

多行注释

三单引号/三双引号

引用计数

变量值的引用次数

x = 257  # 257的引用计数为1
y = x   # 257的引用计数为2
del x  # 257的引用计数为1

垃圾回收机制

当变量值的引用计数为0的时候,该变量值会被Python自动回收它的内存占用

小整数池

[-5,256]之间的整数会在Python解释器启动的时候,自动开辟一块内存存入这些整数.也就是说这些整数不会因为引用计数为0而被删除

❤  花式赋值

链式赋值

x = y = z = 10

交叉赋值

# 交叉赋值
x = 10
y = 20

x, y = y, x

print(x, y)

# 使用临时变量
x = 10 
y = 20 
temp = x
x = y
y = temp

print(x, y)

❤  与用户交互

❤  input

input输入的都是字符串形式

❤  格式化输出

占位符

%s接收任意数据类型的数据
%d接收数字类型的数据

name = 'nick'

'nick name is %s'%name

format格式化

{}接收任意数据类型的数据

name = 'nick'

'nick name is {}'.format(name)

f-string格式化

在字符串前面加上f或F,然后使用{}接收任意数据类型的数据

name = 'nick'

f'nick name is {name}'

❤  基本运算符

算术运算符

+ - * / % // **

逻辑运算符

and or not

比较运算符

> >= < <= == !=

赋值运算符

= += -= *= /= //= **= %=

身份运算符

is is not

  • id相同的值一定相同,值相同的id不一定相同

运算符优先级(略)

如果需要某个运算符优先运算,则加个括号

解压缩

hobby_list = ['read','run','sleep','fishing','piao']

# 如果取第2-3个爱好

_,hobby2,hobby3,*_ = hobby_list

print(hobby2, hobby3)

❤  流程控制

流程控制之if判断

if

if 条件:
	代码块

if...else

if 条件:
	代码块
else:
	代码块

if...elif....elif...else

if 条件:
	代码块
elif 条件: 
	代码块
elif 条件:
	代码块

...(可以写任意个elif)

else:
	代码块

流程控制之while循环

while

while 条件:
	代码块

while + break

while 条件:
	代码块
	break  # 结束本层循环,跳出循环

while + continue

while 条件:
	代码块
	if 条件:
		代码块
		cotinue  # 不执行下面代码,然后继续循环,即跳出本次循环
	代码块

while + else

while 条件:
	代码块
else:
	print('如果我没有被break,我就会被打印出来')

流程控制之for循环

for

for i in range/str/list/tuple/dict/set(可迭代对象):
	print(i)

for + break

for i in range/str/list/tuple/dict/set(可迭代对象):
	print(i)
	break  # 结束本层循环

for + continue

for i in range/str/list/tuple/dict/set(可迭代对象):
	print(i)
	if 条件:
		continue  # 结束本次循环,即不执行下面代码,继续循环
	代码块

for + else

for i in range/str/list/tuple/dict/set(可迭代对象):
	print(i)
else:
	print('如果我没有被break,我就会被打印出来')

❤  异常TODO

万能捕捉异常公式

try:
    # 逻辑代码
    1/0
except Exception as e:
    print(e)
default

division by zero

❤  深浅拷贝

拷贝

拷贝/浅拷贝/深拷贝都是针对可变类型数据而言的

l1 = ['a','b','c',['d','e','f']]
l2 = l1

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c',['d','e','f'],'g']

如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变

浅拷贝

import copy


l1 = ['a','b','c',['d','e','f']]
l2 = copy.copy(l1)

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c',['d','e','f']]

l1[3].append('g')

print(l1)  # ['a','b','c',['d','e','f','g'],'g']
print(l2)  # ['a','b','c',['d','e','f','g']]

如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变

深拷贝

import copy


l1 = ['a','b','c',['d','e','f']]
l2 = copy.deepcopy(l1)

l1.append('g')

print(l1)  # ['a','b','c',['d','e','f'],'g']
print(l2)  # ['a','b','c',['d','e','f']]

l1[3].append('g')

print(l1)  # ['a','b','c',['d','e','f','g'],'g']
print(l2)  # ['a','b','c',['d','e','f']]

如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化

❤  数据类型内置方法

数字类型内置方法

整型

  • 作用:定义年龄/身高/体重/id号
  • 定义方式:
age = 18
age = int('18')
  • 方法: + - * / % // **
  • 多个值or一个值:一个值
  • 有序or无序:压根没有有序无序这一说
  • 可变or不可变:不可变
  • 可变:值变id不变,值变id也变

浮点型

  • 作用:定义薪资/价格
  • 定义方式:
salary = 3.2

salary = float('3.2')
  • 方法:+ - * / % // **
  • 多个值or一个值:一个值
  • 有序or无序:压根没有有序无序这一说
  • 可变or不可变:不可变

字符串类型内置方法

  • 作用:姓名/
  • 定义方式:
name = 'nick'
name = "nick"
name = '''
nick
nick
'''
name = """
nick
nick
"""
name = "'nick'"
name = '"nick"'
  • 方法

    • 优先掌握

索引取值
切片
长度
切分split
除两边空白strip
成员运算in&emsp;not in
for循环

  • 需要掌握

lstrip/rstrip:左/右除空白
rsplit:从右开始切割
upper/lower:大写/小写
startstwith/endswith:以某开头/以某结尾
join:连接列表为字符串
replace:替换字符
isdigit:判断是否为数字

  • 了解

find/rfind/index/rindex/count:查找/从右开始查找/索引结果/从右开始索引结果/计数
center/ljust/rjust/zfill:居中填充/居左填充/居右填充/填充0
expantabs:扩展tab键
capitalize/swapcase/title:大写/大小写转换/首字母大写
is系列:略

  • 多个值or一个值:一个值
  • 有序or无序:有序
  • 可变or不可变:不可变

列表类型内置方法

  • 作用:多个女朋友/
  • 定义方式:[]内用逗号隔开多个任意数据类型的元素
friends_list = ['longzeluola','canglaoshi','qiaobenai','nick']
lis = list('abcd')
  • 方法:

    • 优先掌握

索引取值(即可取又可改)
切片
长度
append
成员运算
for循环

  • 需要掌握

count:元素个数计数
remove:移除元素
reverse:反转列表
pop:删除元素
insert:插入元素
sort:列表排序
index:索引元素
del:删除元素
extend:扩展列表
clear:清除列表

  • 多个值or一个值:多个值
  • 有序or无序:有序
  • 可变or不可变:可变

元祖类型内置方法

  • 作用:类似于列表,可以取不可以存
  • 定义方式:
friends_tuple = ('longzeluola','canglaoshi','qiaobenai','nick')
tup = tuple('abcd')
  • 方法

    • 优先掌握

索引取值(无法更改)
切片
长度
成员运算
for循环
count:元素个数计数
index:元素位置索引

  • 多个值or一个值:多个值
  • 有序or无序:有序
  • 可变or不可变:无可变不可变这一说

字典类型内置方法

  • 作用:值太多列表存容易,取麻烦时使用字典
  • 定义方式:
nick_info_dict = {
'name':'nick',
'height':180,
'weight':140,
'hobby_list':['read','run','music','fishing','programming','coding','debugging']
}

for k,v in nick_info_dict.items():
	print(k,v)
  • 方法

    • 优先掌握

按键取值
长度
keys/values/items
for循环
成员运算

  • 需要掌握

pop:删除元素
fromkeys:由一个列表生成一个字典,默认值为None
setdefault:有指定key不会改变值;无指定key则改变值
get:通过key获取value,无key默认获取None
update:扩展字典
del:删除字典键值对

  • 多个值or一个值:多个值
  • 有序or无序:无序
  • 可变or不可变:可变

集合类型内置方法

  • 作用:存多个值,为了集合之间做运算
  • 定义方式:
s = set()

s = {1,2,3,4,5,1}
  • 方法:

    • 优先掌握

去重
并集 |
交集 &
差集 -
对称差集 ^
父集 >&emsp;>=
子集 <&emsp;<=
==

  • 需要掌握

add:添加元素
difference_update:更新该集合没有的元素
isdisjoint:如果两个元素交集为空返回True,否则返回False
remove:移除元素 # 值不存在会报错
discard :移除元素 # 不会报错

  • 多个值or一个值:多个值
  • 有序or无序:无序
  • 可变or不可变:可变

布尔类型

  • 作用:一般用于判断,除了0/None/空/False自带布尔值为False,其他的数据类型自带布尔值为True

❤  数据类型分类

按值个数

一个值 多个值
整型/浮点型/字符串 列表/元祖/字典/集合/

按有序无序

有序 无序
字符串/列表/元祖 字典/集合

按可变不可变

可变 不可变
列表/字典/集合 整型/浮点型/字符串

猜你喜欢

转载自blog.csdn.net/weixin_67859959/article/details/129889201