Python-基础语法篇(变量与数据结构,流程控制)

Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。

Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。

1、重要目录介绍:

  • Lib目录:存放模块
    • Lib\site-packages:存放第三方模块
  • Scripts目录:存放可执行程序
    • Scripts\pip.exe:官方Python包安装工具
  • python.exe:Python执行程序

image

2、运行第一个python脚本(hello.py):

#保存文件名为hello.py
print
("hello world")
python ./hello.py

搜索指定路径下hello.py进行执行

python -m hello

自动搜索sys.path中名称为hello的pyhon脚本进行执行

1、sys.path为包含多个目录路径的列表

2、包含执行时所在目录、Python安装目录和PYTHONPATH环境变量的每个目录

Linux运行

方法1:开头用 #! 指定解释器,赋予可执行权限,直接./hello.py

方法2:python3 ./hello.py

3、变量和数据类型

  • a = 10
    • a为变量名,变量名存储内存地址,内存地址中存储数据10
    • id(a):获取变量a的内存地址
  • 局部变量:方法内部定义的变量,只在该方法内生效
    • global关键字:使局部变量可在方法外被访问
  • 作用域介绍
  • __xx__、__xx__():特殊成员,可直接访问、比如print(__file__)
    • __name__:模块名
      • 直接运行:__name__ == "__main__"
      • 导入运行:__name__ =="hello"
  • __xx:私有成员、只能在类内部使用(实际会自动改名:_类名__xx)
  • 数据类型介绍:

不可变类型

1、重新赋值后变量内存地址会变化

2、作为入参:在函数内部“修改”它(实际上是重新赋值),不会影响外部的原始数据。

数值: <class 'int'>、<class 'float'>、<class 'complex'>

布尔:<class 'bool'>

字节串:<class 'bytes'>

字符串: <class 'str'>

元组:<class 'tuple'>

可变类型

1、修改可变对象内部元素时,其内存地址不变

2、作为入参:函数内部修改它,会影响到外部的原始数据

列表 <class 'list'>

字典 <class 'dict'>

集合 <class 'set'>

4、数据结构详解

#常用方法

type(object) #返回类型
isinstance(object, classinfo)
len(object) #获取长度
max(object) #最大值
sum(object) #求和
del object #删除
sorted(object) #生成新对象返回,不改变原对象
range(start, stop[, step]) #生成数字序列
range(5) #生成0、1、2、3、4,包含开始0
range(5,7) #生成5、6,不包含结尾7
range(0, 6, 3):#生成0、3,间隔步长为3
pass #占位语句

 

数值

int:整数,比如3

float:小数,比如3.14

complex:复数,比如2+3j

布尔

bool:True或False

False:为空、0

字节串

bytes:由若干个字节组成,以字节为单位进行操作

byte_string = b"abc"

转换为str:b'abc'.decode()

字符串

str:单引号或双引号括起来的任意文本

---以字符为单位进行操作

str_demo = "abc"

转换为bytes:'abc'.encode()

特殊运算符

+:连接两个字符串

*:重复字符串

in:判断字符串是否包含指定字符串

 

多行字符串

1、三引号:str_demo = """ xxx

xxx """

2、小括号:str_demo = ("abc"

"abc")

3、续行符:str_demo = "abc"\

"abc"

str_demo.find(str) #检测str是否包含在str_demo中,返回开始索引,没有返回-1

str_demo.index(str) #返回索引,没有返回exception

str_demo.split(str="xx") #以str为分隔符分隔str_demo,返回一个list

str.join(str_demo) #以str为连接符,连接str_demo中每个元素

 #每个元素之间增加str,str可以为空("空")

str_demo.replace(str1,str2) #把str1替换为str2

str_demo.strip(str) #去除str_demo中开头和结尾的str,默认为空格

 #str_demo.strip(""):参数为空,不去除任何内容

 #str_demo.strip(" "):参数为空格,去除空格

str_demo.isdigit() #检测是否为数字组成

元组

tuple:存放有序、不可修改的元素

创建:(value)、tuple(an iterable)

tuple_demo = (1,2,3)

支持索引、切片、相加、相乘

索引:从0开始

1、访问第一个元素:tuple_demo[0]

2、访问最后一个元素:tuple_demo[-1]

3、访问最后一个元素:tuple_demo[len(tuple_demo) - 1]

 

#切片:取指定索引范围的数据

tuple_demo[:] #取全部

tuple_demo[:3]#取索引0-2的数据,0可省略

tuple_demo[-3:]#取倒数第3个到末尾,末尾可省略

tuple_demo[::2]#每隔2个元素取1个(正步长表示从左到右)

5tuple_demo[::-1]#反转对象(负步长表示从右到左)

列表

list:存放有序的元素

创建:[value]、list(an iterable)

list_demo = ["abc"]

支持索引、切片、相加、相乘

列表生成式:list(x * x for x in range(1,11) if x%2== 0)

list_demo.append("efg") #添加元素到末尾

list_demo.insert(index, value)#插入元素到指定位置

list_demo.remove(value)#删除指定元素

list_demo.pop(index)#按照索引删除元素,为空时删除最后一个元素

list_demo.sort()#对原列表进行升序排序,reverse=True表示降序排序

list_demo.index(value)#根据元素获取索引

list_demo.count(value)#获取元素的数量

字典

dict:存放键值对

创建:{key:value}、dict(key=value)

dict_demo = {"a":1}

1、key必须是不可变类型

 

不支持索引、切片、相加和相乘
dict_demo["b"] = 2 #添加

dict_demo["b"]、key_demo.get("b")#查询

dict_demo.get("b",value)#key->"b"不存在时,返回value

dict_demo.setdefault("b",3)#key->"b"不存在时,添加("b",3);存在时不添加

dict_demo.pop("b")#删除key-value

dict_demo.itmes()#获取键值对

for k,v in dict.items():
    print("key:",k," value:",v)

dict_demo.keys()#获取键

dict_demo.values()#获取值

集合

set:存放无序、不重复的元素

创建:{key}、set(an iterable)

set_demo = {1,2,3}

不支持索引、切片、相加和相乘
set_demo.add(key) #添加

set_demo.remove(key)#删除,不存在会报错

set_demo.discard(key)#删除,不存在不会报错

5、控制语句

判断语句 从上往下判断,如果某个为True,则执行紧随其后的代码块
if 表达式 1:
    代码块 1
elif 表达式 2:
    代码块 2
else:
    代码块 n
while循环语句

只要条件为真,就不断循环

1、continue:跳过这次循环,进入下次循环

2、break:退出整个循环

while 条件表达式:
    代码块
for循环语句 逐个获取序列中的元素,为空时退出循环
for 迭代变量 in 字符串|元组|列表|字典|集合:
    代码块
posted @ 2026-07-03 10:42  Fēngwèi  阅读(3)  评论(0)    收藏  举报