上午
python开发工具:
1、安装自带的ide
2、pycharm(付费)
3、anaconda
1、环境 python2内置,需要换为python3
[root@3 ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ some-package //切换国内下载
[root@3 ~]# yum list installed | grep python
[root@3 ~]# yum list installed | grep epel
[root@3 ~]# yum list | grep python3
[root@3 ~]# yum -y install python3.x86_64
[root@3 ~]# python3 --version
Python 3.6.8
#最新版3.12版可以使用源码安装
[root@3 ~]# python3 #进入到python的编辑状态
Python 3.6.8 (default, Nov 14 2023, 16:29:52)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello world")
hello world
#如果直接输入python,会直接进入到python2中
2、变量和数据类型
1、三大类数据类型
字符 字符串str
数值 整数int,浮点float
逻辑 True False(注意首字母大写)
>>> print(1==1)
True
>>> print(1!=1)
False
>>> b='zhangsan'
>>> type(b)
<type 'str'>
>>> c=3
>>> type(c)
<type 'int'>
>>> d=3.14
>>> type(d)
<type 'float'>
3、数据集合
计算是在python内存中计算的,必须要有指定内存空间保存数据
这些内存空间其实就是变量(a,b,c)
我们使用数据集合批量管理内存空间
[]列表,{}字典,()元组
(1)列表
在python中列表是使用最为广泛的一个数据集合工具
是java中数组和list的综合体
当有多个数据需要管理,可以定义一个列表(管理列表)
# python为开发提供了丰富的使用手册
help(lista) #通过上下方向,enter,space键来翻阅信息,使用q退出查看 more less
# 创建列表
lista=[]
listc=[1,2,3]
# 修改列表
# 追加元素
lista.append(item) #在所有元素之后添加元素
# 插入元素
listb.insert(pos,item) #在pos序号之前插入item
# 删除元素 remove 和 pop
list.pop() #删除list中的最后一个元素
list.remove(list[index]) #删除序号为index的元素
# 修改元素
list[index]=newvalue
# 删除列表
del list
练习:
>>> listb=["tom","jerry"]
>>> listb
['tom', 'jerry']
>>> listb.append("tomcat")
>>> listb
['tom', 'jerry', 'tomcat']
>>> listc=["tom","jerry"]
>>> listc.pop()
'jerry'
>>> listc
['tom']
>>> listd=listb.pop()
>>> listd
'tom'
>>> liste=listb.pop()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: pop from empty list
>>> listb
[]
# 当在列表中删除或者修改一个元素的时候,列表会返回新的列表
>>> listb.append('lisi')
>>> listb.append('zhangsan')
>>> listb.append('wangwu')
>>> listb
['lisi', 'zhangsan', 'wangwu']
>>> listb[0]
'lisi'
>>> listb[1]
'zhangsan'
>>> listb[2]
'wangwu'
>>> listb.remove(listb[1])
>>> listb
['lisi', 'wangwu']
(2)字典
dict
dictionary
key-value 键值对
{"name":"张三","age":"19","gender":"male","height":"145","weight":"180"}
健:值 如下:
{
"from":"me",
"to":"you",
"message":"你吃饭了吗?",
"time":"2024-7-8 9:00:32",
"user":{
"username":"abc",
"password":"abc"
}
}
# 创建字典
dict0={
健:值,
健:值
}
# 追加元素
dict0["健"]="值"
# 删除元素
dict0.pop("健")
# 修改元素
dict0["存在的健"]="修改后的值"
练习:
>>> dict0={
... "id":1,
... "username":"abc",
... "password":"123"
... }
>>> help(dict0)
>>> dict0
{'id': 1, 'username': 'abc', 'password': '123'}
>>> dict0["realname"]="zhangsan"
>>> dict0
{'id': 1, 'username': 'abc', 'password': '123', 'realname': 'zhangsan'}
>>> dict0.pop("id")
1
>>> dict0
{'username': 'abc', 'password': '123', 'realname': 'zhangsan'}
>>> dict0["password"]="123456"
>>> dict0
{'username': 'abc', 'password': '123456', 'realname': 'zhangsan'}
# list列表与dict字典嵌套
>>> a=[1,2,3]
>>> b={"username":"abc","password":"abc"}
>>> a
[1, 2, 3]
>>> b
{'username': 'abc', 'password': 'abc'}
>>> a.append(b)
>>> b["a"]=a
>>> a
[1, 2, 3, {'username': 'abc', 'password': 'abc', 'a': [...]}]
>>> b
{'username': 'abc', 'password': 'abc', 'a': [1, 2, 3, {...}]}
(3)元组
不能修改,只可以查看
tuple[index],list(tuple),tuple(list)
list()可以把dict的key生成一个列表
list()可以把tupl变成列表
tupl可以把dict和list变成元组
功能 | 指令 | 说明 |
---|---|---|
创建列表 | [] | 符号本身就是列表 |
list(元组) | 将元组转成列表 | |
list(字典) | 提取字典的key转成列表 | |
字典.keys() | 字典中的key返回一个列表 | |
字典.values() | 字典中的value组成的列表 | |
字典.items() | 字典中的每个k-v组成元组,这些元组组成一个新的列表 | |
修改列表 | l.inster(index,value) | 在索引值为index的元素之前插入一个元素 |
l.append(value) | 在所有元素之后添加一个元素 | |
l[index]=value | 将索引为index元素的值修改为value | |
l.pop() | 删除最后一个元素 | |
del l | 释放l内存 | |
查看列表 | l | 显示列表中的所有数据 |
l[index] | 返回索引值为index的元素 | |
字典的创建 | {} | 代表一个空字典 |
{k0:v0,k2:v2.....} | 这是有初始值的字典 | |
dict([(k0,v0),(k1,v0),(k2,v2)]) | []中的每一个()中都有2个值,一个是key,一个是value自动解析为一个字典了 | |
元组 | (),(1,2,3,4) | 创建空元组,创建有初始值的元组 |
也可以从dict中提取,也可以将列表直接转换成元组 |
登录信息返回的键值对:
{
"method":"post",
"username":"abc",
"password":"123",
"params":[1,2,3],
"cntroller":"login"
}
4、选择语句和循环语句
(1)if选择语句
缩进是必须的 (一个tab健或者四个空格)
if condition0:
statement0
if condition1:
block1
else:
block2
else:
statement1
多分支if语句
if condition0:
block0
elif condition1:
block1
elif condition2:
block2
...
else:
blockn
练习:
[root@3 ~]# vim py001.py
if True:
print("i'm true")
else:
print("i'm false")
[root@3 ~]# python3 py001.py
i'm true
>>> n=58
>>> if n>90:
... print("优秀")
... elif n>80:
... print("良好")
... elif n>70:
... print("中等")
... elif n>60:
... print("及格")
... else:
... print("不及格")
...
不及格
[root@3 ~]# vim py002.py
import random
n=random.randint(0,100)
print("随机分数为:",n)
if n>90:
print("优秀")
elif n>80:
print("良好")
elif n>70:
print("中等")
elif n>60:
print("及格")
else:
print("不及格")
[root@3 ~]# python3 py002.py
随机分数为: 68
及格
[root@3 ~]# vim py003.py
import random
n=random.randint(50,100)
print("随机数值为:",n)
if n>90:
print("youxiu")
else:
if n>80:
print("lianghao")
else:
if n>70:
print("zhongdeng")
else:
if n>60:
print("jige")
else:
print("bujige")
[root@3 ~]# python3 py003.py
随机数值为: 93
youxiu
(2)swith插槽
(3)input与print
>>> print("请输入您的选择")
请输入您的选择
>>> print("1、创建master,2、创建slave")
1、创建master,2、创建slave
>>> input("---:")
---:1
'1'
>>> input("---:")
---:2
'2'
(3)for循环语句
练习:
>>> list=[1,2,3,4,5]
>>> for var in list: #列表遍历
... print(var)
...
1
2
3
4
5
>>> for var in ["a","b","c"]: #列表遍历
... print(var)
...
a
b
c
>>> d={"a":1,"b":2,"c":3} #字典遍历key
>>> for var in d:
... print(var)
...
a
b
c
>>> for var in d: #字典遍历value
... print(d[var])
...
1
2
3
>>> tupl0=("a","b","c") #遍历元组
>>> for var in tupl0:
... print(var)
...
a
b
c
>>> 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
>>> for i in range(101):
... n=n+i
...
>>> n
5050
[root@3 ~]# vim py004.py
n=0
for i in range(101):
n=n+i
print(n)
[root@3 ~]# python3 py004.py
5050
(4)while循环语句(continue与break)
break和continue也可以应⽤于for
while condition:
blocak
#continue,break;
练习:
>>> i=0
>>> while i<10:
... i+=1
... if i%2!=0:
... continue
... print(i)
...
2
4
6
8
10
>>> c=0
>>> while True:
... print(c)
... c+=1
... if c==5:
... break
...
0
1
2
3
4
5、常用的工具api
# 指令
vim 001.py
# 执⾏py脚本
python3 001.py
# 调试py脚本
python3 -m pdb 001.py
# 输⼊n按回⻋执⾏下⼀⾏代码
# 输⼊q退出调试
# 生成随机数
import random
n=random.randint(0,10)
#创建目录
import os
os.mkdir("/opt/aaa")
练习:
[root@3 ~]# python3 -m pdb py003.py
> /root/py003.py(1)<module>()
-> import random
(Pdb) n
> /root/py003.py(2)<module>()
-> n=random.randint(50,100)
(Pdb) n
> /root/py003.py(3)<module>()
-> print("随机数值为:",n)
(Pdb) n
随机数值为: 92
......
(Pdb) q
>>> import random
>>> n=random.randint(0,10)
>>> n
10
>>> n=random.randint(0,10)
>>> n
4
>>> import os
>>> os.mkdir("/opt/aaa")
>>> quit()
[root@3 ~]# ls /opt
aaa