2024.8.08(python)

一、搭建python环境

1、检查是否安装python

root@python \~\]# yum list installed \| grep python \[root@python \~\]# yum list \| grep python3

2、安装python3

root@python \~\]# yum -y install python3 安装3.12可以使用源码安装

3、查看版本信息

root@python \~\]# python3 --version Python 3.6.8

4、开发工具
  1. 安装自带的ide(集成开发工具)

2.pycharm(付费)

3.anaconda(数据分析)

5、修改pip为清华镜像

root@python \~\]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ some-package

二、python变量和数据类型

1、进入python的编辑状态

root@python \~\]# python3

python 复制代码
>>> a=3
>>> b=4
>>> 
[1]+  已停止               python3    #ctrl+z退出
[root@python ~]# fg   #返回命令行
python3


>>> a
3
>>> b
4
2、三大数据类型
1. 字符 字符串 str
2. 数值 整数 int,浮点数 float
3. 逻辑 True False(首字母必须大写)
python 复制代码
>>> flag=True
>>> print(flag);
True
>>> print(1==1);
True
>>> print(1!=1);
False
>>> b='ll'
>>> b
'll'
>>> type(b)
<class 'str'>
>>> c=3
>>> c
3
>>> type(c)
<class 'int'>
>>> d=3.14
>>> d
3.14
>>> type(d)
<class 'float'>
python 复制代码
>>> print("hello world!")
hello world!
>>> a=3
>>> b="abc"
>>> type(a)
<class 'int'>
>>> type(b)
<class 'str'>

三、数据集合

最终计算是在python内存中计算的,必须要有指定内存空间保存数据,这些内存空间其实就是变量

使用数据集合批量管理内存空间

python 复制代码
​​​>>> name1="张三"
>>> name2="李四"
>>> name3="王五"
>>> print(name1,name2,name3)
张三 李四 王五
1、数据集合包括:
1. 列表

1.1 在python中使用最广泛的一个数据集合工具

1.2 是java中数组和list的综合体

1.3 list 当有多个数据需要管理,可以定义一个列表

1.5 管理列表

python 复制代码
#创建列表  lista=[]  listb=[1,2,3]
>>> lista=["张三","李四","王五","赵六"]
>>> type(lista)
<class 'list'>
>>> lista
['张三', '李四', '王五', '赵六']
#python为开发提供了丰富的使用感手册
#通过上下方向。enter,space翻阅信息,按q推出查看 more list
>>> help(lista)   #获取帮助命令 按q退出
>>> listb=["tom","jerry"]
>>> listb
['tom', 'jerry']
#修改列表
#追加元素
>>> listb.append("tomcat");    #在所有元素之后添加数据   
>>> listb
['tom', 'jerry', 'tomcat']
#插入元素 listb.insert(pos,item) #在pos序列号之前插入item
>>> listb.insert(1,"laozhang")
>>> listb
['tom', 'laozhang', 'jerry', 'tomcat']
#删除元素 remove和pop
#list.pop()  删除list中的最后一个元素
>>> listb.pop()                #从后向前删除元素
'tomcat'
>>> listb
['tom', 'laozhang', 'jerry']
>>> listb.pop()
'jerry'
>>> listb.pop()
'laozhang'
>>> listb.pop()
'tom'
>>> listc=listb.pop()        #当在列表中删除或者修改一个元素时,列表会返回新的列表          
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: pop from empty list
>>> listb
[]
>>> listb.append("dhwiuh")
>>> listb.append("lisi")
>>> listb
['dhwiuh', 'lisi']
#list.remove(listb[index])   删除list中序号为index的元素
>>> listb.remove('lisi')   #指定元素移除
>>> listb
['dhwiuh']
>>> listb.remove(listb[0])   #指定序列号移除
>>> listb.append("lisi")
>>> listb.append("dhwiuh")
>>> listb[0]
'lisi'
>>> listb[1]
'dhwiuh'
>>> listb[2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range  #下标越界
>>> listb.remove(listb[0])   #按序号删除
>>> listb
['dhwiuh']
#修改元素
>>> listb.append("jerry")
>>> print(listb)
['dhwiuh', 'jerry']
>>> listb[0]
'dhwiuh'
>>> listb[0]='tom'  #按序号直接修改
>>> print(listb)
['tom', 'jerry']
#del list 删除所有
2. 字典

2.1 dict

2.2 dictionary

2.3 key-value 键值对

2.4 {"name":"","age":"","gender":"male"}

2.5 键:值

python 复制代码
{
    "from":"me"
    "to":"you"
    "message":"在干嘛"
    "time":"2024-7-8 9:00:32"
    "user":{
        "username":"abc"
        "password":"abc"    
    }
}
python 复制代码
>>> dict0={
... "id":1,
... "username":"123"
... }
>>> dict0
{'id': 1, 'username': '123'}
>>> dict0["realname"]="zhangsan"
>>> dict0
{'id': 1, 'username': '123', 'realname': 'zhangsan'}   #字典
>>> dict0.pop("id")
1
>>> dict0
{'username': '123', 'realname': 'zhangsan'}
>>> dict0["password"]="123456"
>>> dict0
{'username': '123', 'realname': 'zhangsan', 'password': '123456'}
>>> a=[1,2,3]
>>> b={"username":'abc',"password":'123'}
>>> a.append(b)
>>> b["a"]=a
>>> a
[1, 2, 3, {'username': 'abc', 'password': '123', 'a': [...]}]
>>> b
{'username': 'abc', 'password': '123', 'a': [1, 2, 3, {...}]}
3. 元组

3.1 没有修改,只可以查看

3.2 tuple[index]

3.3 list[tuple]

3.4 tuple(list)

|-------|---------------------------------|------------------------------------------|
| 功能 | 指令 | 说明 |
| 创建列表 | [] | 符号本身就是列表 |
| 创建列表 | list(元组) | 将元组转成列表 |
| 创建列表 | list(字典) | 提取字典中的key值转成列表 |
| 创建列表 | 字典.keys() | 字典中的key返回成一个列表 |
| 创建列表 | 字典.values() | 字典中的values祖成列表 |
| 创建列表 | 字典.items() | 字典中的k-y祖成元组,这些元组祖成一个新的列表 |
| 修改列表 | L.insert(index,value) | 在索引值为index的元素之前插入一个元素 |
| 修改列表 | L.append(value) | 在所有元素之后添加一个元素 |
| 修改列表 | L[index]=value | 将索引为index元素的值改为value |
| 修改列表 | L.pop() | 删除最后一个元素 |
| 修改列表 | del L | 释放L内存 |
| 查看列表 | L | 显示列表中的所有数据 |
| 查看列表 | L[index] | 返回索引值为index的元素 |
| 字典的创建 | {} | 本身代表一个空字典 |
| 字典的创建 | {k0:v0,k1:v1...} | 这是一个有初始值的列表 |
| 字典的创建 | dict({(k0.v0),(k1,v1),(k2,v2)}) | []中的每个()中都有两个值,一个是key一个是vlaue自动解析成一个字典 |
| 元组 | (),(1,2,3,4) | 创建空元组,创建有初始值的元组 |
| 元组 | 也可从dict中提取,也可以将列表转换成元组 | |

python 复制代码
#元组支持查看不支持修改
>>> tupl0=(1,2,3,4)
>>> tupl0
(1, 2, 3, 4)
>>> tupl0[0]
1
>>> tupl0[3]
4
>>> tupl0[1]=666   #不支持修改
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> list(tupl0)
[1, 2, 3, 4]
>>> aa=list(tupl0)    #变成列表可以修改
>>> aa
[1, 2, 3, 4]           #列表
>>> tuple(aa)          
(1, 2, 3, 4)           #元组
>>> dict1={"a":1,"b":2,"c":3}
#list()可以把dict的key生成一个列表
>>> dict1
{'a': 1, 'b': 2, 'c': 3}
>>> dict1.keys()
dict_keys(['a', 'b', 'c'])
>>> dict1.items()
dict_items([('a', 1), ('b', 2), ('c', 3)])
>>> list(dict1)
['a', 'b', 'c']
#list可以把tupl变成列表
#tupl可以把dic和list变成元组
>>> dict([("a",1),("b",2)])
{'a': 1, 'b': 2}

四、选择语句和循环语句

1、选择语句
1.if

if condition:

statement0

if condition1:

statement2

else:

else:

statement1

root@python \~\]# vim py001.py 格式必须缩进 ![](https://i-blog.csdnimg.cn/direct/1b802baec3f74306bc2419ed5b6646a9.png) \[root@python \~\]# python3 py001.py 执行脚本 i am true

python 复制代码
>>> if True:
...     print("i am true")
... else:
...     print("i am false")
... 
i am true
2. if多分支
python 复制代码
>>> print("请输入你的选择")
请输入你的选择
>>> print("1.创建master,2.创建slave")
1.创建master,2.创建slave
>>> input("---:")
---:1
'1'
>>> n=input(""---:)
  File "<stdin>", line 1
    n=input(""---:)
                 ^
SyntaxError: invalid syntax
>>> n=input("---:")
---:2
>>> n
'2'

root@python \~\]# vim py002.py ![](https://i-blog.csdnimg.cn/direct/0087b5fa203d4867ae60a9d22a172b08.png) \[root@python \~\]# python3 py002.py 随机分数为: 50 不及格 \[root@python \~\]# python3 py002.py 随机分数为: 74 中等

python 复制代码
>>> if n>90:
...     print("优秀")
... elif n>80:
...     print("良好")
... elif n>70:
...     print("中等")
... elif n>60:
...     print("及格")
... else:
...     print("不及格")
... 
不及格
3. if嵌套

root@python \~\]# vim py003.py ![](https://i-blog.csdnimg.cn/direct/7a5175785beb4d709abddfe00729f5e4.png) \[root@python \~\]# python3 py003.py 随机数值: 66 及格

4.switch 插槽
2、循环语句
1. for

for var in list:

print(var)

python 复制代码
>>> range(9)
range(0, 9)
>>> list(range(9))
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> for i in range(9):
...     print(i)
... 
0
1
2
3
4
5
6
7
8
>>> n=0
>>> for i in range(100):  #0-99
...     n=n+i    #1-99数字累加
...     
... 
>>> n
4950
>>> for i in range(101):   #0-100
...     n=n+1
... 
>>> n
5051
>>> range(10)
range(0, 10)
>>> for i in range(1,10):
...     print(i)
... 
1
2
3
4
5
6
7
8
9
>>> # 在列表中循环
>>> for var in ["a","b","c"]:
...     print(var)
... 
a
b
c
>>> a=["b","c","d","h"]
>>> for var in a:
...     print(var)
... 
b
c
d
h
>>> #在字典中遍历
>>> d={"id":"1001",'name':'张三','age':18,'gender':'男'}
>>> d
{'id': '1001', 'name': '张三', 'age': 18, 'gender': '男'}
>>> for var in d:
...     print(var)   #将d字典中的key输出
...     #print(d[var])   #将key对应的value值输出
id
name
age
gender
>>> for var in d:
...     print(var,"-",d[var])
... 
id - 1001
name - 张三
age - 18
gender - 男
>>> for var in d.values():   #value
...     print(var)
... 
1001
张三
18
男
#在元组中遍历
>>> tupl0=("a","b","c")   #创建元组
>>> for var in tupl0:
...     print(var)
... 
a
b
c

root@python \~\]# vim py004.py ![](https://i-blog.csdnimg.cn/direct/318d821eab84433c9edf285a35081f14.png) \[root@python \~\]# python3 py004.py 5050 \[root@python \~\]# python -m pdb py004.py 调试模式,按n下一步,按q退出

案例:输出0-100之间可以被7整除的整数

python 复制代码
>>> b=list(range(101))
>>> b
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
>>> for i in b:
...     if i%7==0:
...             print(i,"可以被7整除")
... 
0 可以被7整除
7 可以被7整除
14 可以被7整除
21 可以被7整除
28 可以被7整除
35 可以被7整除
42 可以被7整除
49 可以被7整除
56 可以被7整除
63 可以被7整除
70 可以被7整除
77 可以被7整除
84 可以被7整除
91 可以被7整除
98 可以被7整除
2. while

while condition:

blocak

#continue(退出当前循环),break(退出整个循环);

python 复制代码
>>> n=0
>>> i=1
>>> while i<101:
...     n+=i
...     i+=1
... 
>>> n
5050
>>> i=1
>>> n=0
>>> while True:   #死循环
...     print(i)
#break和continue也可用于for
>>> while True:
...     print("abc")
...     break
... 
abc
>>> while True:
...     print("abc")
...     continue    #死循环
>>> i=1
>>> while True:
...     if i==3:
...             continue
...     print(i)
...     i+=1         
... 
1
2          #之后都不输出
相关推荐
Evan_ZGYF丶几秒前
【RK3576】【Android14】如何在Android14下单独编译kernel-6.1?
linux·驱动开发·android14·rk3576
真正的醒悟1 小时前
上网管理行为-ISP路由部署
服务器·php·接口隔离原则
superior tigre1 小时前
1.linux环境配置+ssh远程连接vscode调试(问题:无法联网,无法共享粘贴板,不满足运行vscode服务器的先决条件)
linux·服务器·vscode
山顶望月3 小时前
ISO20000与IT运维和运营的关系
运维·it运营·iso20000
HAH-HAH4 小时前
【Python 入门】(2)Python 语言基础(变量)
开发语言·python·学习·青少年编程·个人开发·变量·python 语法
SunnyDays10115 小时前
Python 轻松实现替换或修改 PDF 文字
python·替换pdf文字·修改pdf·修改pdf文字
杰锅就是爱情5 小时前
OpenObserve Ubuntu部署
linux·运维·ubuntu
Just_Paranoid5 小时前
【Settings】恢复出厂设置密码校验
android·python·settings·sha256·hmac-sha256
lllsure5 小时前
【Docker】容器
运维·docker·容器
西猫雷婶7 小时前
pytorch基本运算-Python控制流梯度运算
人工智能·pytorch·python·深度学习·神经网络·机器学习