当前位置: 首页 > news >正文

8.8-配置python3环境+python语法的使用

1.环境 python2 ,python3

[root@python ~]# yum list installed|grep python
​
​
[root@python ~]# yum list installed|grep epel
epel-release.noarch                   7-11                             @extras 
​
#安装python3
[root@python ~]# yum -y install python3
​
#查看python版本
[root@python ~]# python3 --version
Python 3.6.8
​
#最新安装3.12 可以使用源码安装

2.进入到python的编辑状态

#直接输入python,也会进入到python2中
[root@python ~]# python3
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
>>> a=3
>>> b="abc"
>>> type(a)
<class 'int'>
>>> type(b)
<class 'str'>
>>> quit()

3.使用 pip3 安装软件包时指定清华源

[root@python ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ some-package
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting some-packageDownloading https://pypi.tuna.tsinghua.edu.cn/packages/e7/a2/d318a685319c3801db1ae0002fc8e095663a55546c62a6e30d9d0fc3289b/some-package-0.1.zip
Installing collected packages: some-packageRunning setup.py install for some-package ... done
Successfully installed some-package-0.1

4.变量和数据类型

三大类数据类型

(1)字符:字符串

str

>>> b='haha';
>>> b
'haha'
>>> type(b)
<type 'str'>
(2)数值:整数,浮点

int float

>>> c=3
>>> c
3
>>> type(c)
<type 'int'>
>>> d=3.14
>>> d
3.14
>>> type(d)
<type 'float'>
(3)逻辑:True,False
>>> flag=True
>>> print(flag);
True
>>> print(1==1);
True
>>> print(1!=1);
False

5.数据集合

[ ]-列表,{ }-字典 ,( )-元组

1.列表

有序

列表使用最为广泛的一个数据集合工具,是java中数组和list的综合体,当有多个数据需要管理,可以定义一个列表

管理列表
(1)创建列表
# 创建列表
​
#格式
lista=[]
listc=[1,2,3]
​
#练习
>>> lista=["张三","李四","王五","赵六"]
>>> type(lista)
<type 'list'>
>>> lista
['\xe5\xbc\xa0\xe4\xb8\x89', 
'\xe6\x9d\x8e\xe5\x9b\x9b', 
'\xe7\x8e\x8b\xe4\xba\x94', 
'\xe8\xb5\xb5\xe5\x85\xad']
​
>>> listb=["tom","jerry"]
>>> listb
['tom', 'jerry']
(2)帮助命令
#python为开发提供了丰富的使用手册
​
help(lista)  #通过上下方向键,enter,空格键来翻阅信息,使用q退出查看
(3)修改列表
# 修改列表
​
# 追加元素
lista.append(item) # 在所有元素之后添加元素
​
#练习
>>> listb.append("tomcat")
>>> listb
['tom', 'jerry', 'tomcat']
​
​
# 插入元素
listb.insert(pos,item) #在pos序列号之前插入item
​
#练习
>>> listb.insert(1,"haha")
>>> listb
['tom', 'haha', 'jerry', 'tomcat']
​
(4)删除元素
# 删除元素remove和pop
​
#格式
list.pop() #删除list中的最后一个元素
​
#练习
>>> listb=["tom","jerry"]
>>> listb
['tom', 'jerry']
>>> listb.pop()
'jerry'
>>> listb
['tom']
>>> listc=listb.pop() #表示删掉listb中的tom
>>> listc 
'tom'
>>> #当在列表中删除或者修改一个元素的时候,列表会返回新的列表
... 
>>> listb
[]
​
#格式
list.remove(list[index]) #删除序号为index的元素
​
#练习
>>> listb.append("lllll")
>>> listb.append("lisi")
>>> listb
['lllll', 'lisi']
>>> listb.remove('lisi')
>>> listb
['lllll']
>>> listb.append("lllll")
>>> listb.append("lisi")
>>> listb
['lllll', 'lllll', 'lisi']
>>> listb[0]
'lllll'
>>> listb[1]
'lllll'
>>> listb[2]
'lisi'
>>> listb[3]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> listb.remove(listb[0])
>>> listb
['lllll', 'lisi']
>>> listb.remove(listb[0])
>>> listb
['lisi']
(5)修改元素
# 修改元素
​
# 格式
list[index]=newvalue
​
# 练习
>>> listb.append("jerry")
>>> print(listb)
['lisi', 'jerry']
>>> listb[0]
'lisi'
>>> listb[0]='tom'
>>> listb
['tom', 'jerry']
>>> listb[0]
'tom'
>>> listb[1]
'jerry'
>>> listb[1]='tom'
>>> listb[1]
'tom'
>>> listb
['tom', 'tom']
​
​
(6)删除列表
# 删除列表
​
#格式
del list
​
#练习
>>> del listb
>>> listb  #listb中的数据全都被删掉了
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'listb' is not defined

2.字典

无序

1.dict

2.dictionary

3.key-value 键值对

4{”name“:"haha","age":"18","gender":"male","height:"145"}

5.键:值

{"from":"me","to":"you","message":"你吃饭了吗?","time":"2024-7-8 9:00:32""user":{"username":"abc""password":"abc"}
}

3.元组

有序,不能修改,可以查看

查看:tuple[index]

修改:将元组改为列表 list(tuple)

tup10=(1,2,3,4)

tup10

>>> tup10=(1,2,3,4)

4.总结

功能指令说明
创建列表[ ]符号本身就是列表
list(元组)将元组转成列表
list(字典)提取字典的key转成列表
字典.keys()字典中的key返回一个列表
字典.values()字典中的value组成列表
字典.Items()字典中的每个键值对组成员组,每个元组组成一个新的列表
修改列表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,v0),(k2,v2)])[ ]中的每个()中都有两个值,一个是key,一个是value,自动解析为一个字典了
元组(),(1,2,3,4)创建空元组,创建有初始值的元组
也可以从dict中提取,也可以将列表直接转成元组

6.循环语句和选择语句

1.选择语句

>>> if True:
...     print("i'm true")
... else:
...     print("i'am false")
... 
i'm true

缩进是必须的

缩进前:

[root@python ~]# vim py001.py
​
if True:        
print("i'm true")
else:
print("i'm false")
​
[root@python ~]# python3 py001.py File "py001.py", line 2print("i'm true")^
IndentationError: expected an indented block

缩进后:

[root@python ~]# vim py001.py
​
if True:print("i'm true")
else:print("i'm false")
​
[root@python ~]# python3 py001.py 
i'm true

if

嵌套

# 语法
if condition0:statement0;if condition1:block1;else:block2;else:statement1;

多分支

# 语法
if condition0:block0
elif condition1:block1
elif condition2:block2
...
else:blockn

练习

在vim中写

[root@python ~]# 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@python ~]# python3 py002.py 
随机分数为: 65
及格
[root@python ~]# python3 py002.py 
随机分数为: 88
良好

在python3环境中写

>>> n=58
>>> if n>90:
...     print("优秀")
... elif n>80:
...     print("良好")
... elif n>70:
...     print("中等")
... elif n>60:
...     print("及格")
... else:
...     print("不及格")
... 
不及格
>>> quit()

2.循环语句

1.for
for var in list:print(var)

[root@python ~]# vim for.py
n=0
for i in range(101): # 0-100n=n+iprint(n)  # 1-100数字累加
[root@python ~]# python3 for.py  
5050

#在列表中循环
>>> for var in ["a","b","c"]:
...     print(var)
... 
a
b
c
>>> a=["e","f","g","h"]
>>> for var in a:
...     print(var)
... 
e
f
g
h

#在字典中遍历
d={"id":1001,"name":"zhangsan","gender":"女","age":18}
​
for var in d:print(var) # 将d这个字典中的key都输出print(d[var]) #根据key返回对应的value值
for var in d.keys():print(var)print(d[var])
for var in d.values(): # 返回values值print(var)# 练习
>>> d={"id":1001,"name":"zhangsan","gender":"女","age":18}
>>> d
{'id': 1001, 'name': 'zhangsan', 'gender': '女', 'age': 18}
>>> for var in d:
...     print(var)
... 
id
name
gender
age
>>> for var in d.values():
...     print(var)
... 
1001
zhangsan
女
18

#元组中的遍历
>>> tupl0=("a","c","e")
​
>>> for var in tupl0:
...     print(var)
... 
a
c
e

随机数的循环

>>> 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:block# continue,break;

1.1-100的累加

#1-100的累加
>>> n=0
>>> i=1
>>> while i<101:
...     n+=i;
...     i+=1
... 
>>> n
5050

break和continue也可以使用于for

break:结束循环

>>> while True:
...     print("abc")
...     break
... 
abc
#只循环一次

continue:结束本次循环

#死循环
>>> while True:
...     print("abc")
...     continue

>>> while True:
...     if i==3:
...             continue # 当i=3时,下面的语句不执行
...     print(i)
...     i+=1 
... 
1
2
​
​
#一直循环

在vim环境下写python的指令

#指令
vim 001.py
#执行python脚本
python3 001.py
​
​
#调试py脚本
python3 -m pdb 001.py
# 输入n按回车执行下一条代码
# 输出q推出调试

在python3环境中生成随机数和创建目录

# 生成随机数
import random
n=random.randint(0,10)
​
#创建目录
import os
os.mkdir("/opt/aaa/")

5.选择语句和循环语句

6.常用的工具aip

相关文章:

8.8-配置python3环境+python语法的使用

1.环境 python2 ,python3 [rootpython ~]# yum list installed|grep python ​ ​ [rootpython ~]# yum list installed|grep epel epel-release.noarch 7-11 extras ​ #安装python3 [rootpython ~]# yum -y install python3…...

高质量WordPress下载站模板5play主题源码

5play下载站是由国外站长开发的一款WordPress主题&#xff0c;主题简约大方&#xff0c;为v1.8版本&#xff0c; 该主题模板中包含了上千个应用&#xff0c;登录后台以后只需要简单的三个步骤就可以轻松发布apk文章&#xff0c; 我们只需要在WordPress后台中导入该主题就可以…...

【C++】类的概念与基本使用介绍

C类是面向对象编程&#xff08;OOP&#xff09;的基础&#xff0c;它允许我们将数据&#xff08;属性&#xff09;和行为&#xff08;方法&#xff09;封装在一起&#xff0c;形成一个自定义的数据类型。以下是C类的基本概念、特点、特性以及使用注意事项&#xff0c;最后会提供…...

基于Python和OpenCV的图像处理的轮廓查找算法及显示

文章目录 概要轮廓查找算法示例代码代码解释小结 概要 在图像处理中&#xff0c;轮廓查找是一个重要的步骤&#xff0c;它可以帮助我们识别图像中的形状和边界。Python结合OpenCV库可以非常方便地实现这一功能。本文将详细介绍如何使用Python和OpenCV来查找图像中的轮廓&#…...

使用ant design的modal时,发现自定义组件的样式(组件高度)被改变了!

一 问题描述 在项目中&#xff0c;自定义了一个组件&#xff0c;分别在界面和 antd的modal中都有使用到。但是突然发现&#xff0c;界面中的组件样式跟modal中的组件样式高度不一样。modal中的组件整体要比页面中的组件要高一点。 项目中的自定义组件比较复杂&#xff0c;因此&…...

NLP从零开始------8文本进阶处理之文本向量化

1. 文本向量化概述 随着计算机计算能力的大幅度提升&#xff0c;机器学习和深度学习都取得了长足的发展。NLP越来越多的通过应用机器学习和深度学习工具解决问题&#xff0c;例如通过深度学习模型从网络新闻报道中分析出关键词汇与舆论主题并构建关系图谱。在这种背景下&#x…...

【网络编程】字节序,IP地址、点分十进制、TCP与UDP的异同

记录学习&#xff0c;思维导图绘制 目录 1、字节序​编辑 2、IP地址 3、点分十进制 4、TCP与UDP的异同 1、字节序 2、IP地址 3、点分十进制 4、TCP与UDP的异同...

关于k8s的pvc存储卷

目录 1.PVC 和 PV 1.1 PV 1.2 PVC 1.3 StorageClass 1.4 PV和PVC的生命周期 2.实战演练 2.1 创建静态pv 2.2 创建动态pv 3.总结 1.PVC 和 PV 1.1 PV PV 全称叫做 Persistent Volume&#xff0c;持久化存储卷。它是用来描述或者说用来定义一个存储卷的&#xff0c;…...

【物联网设备端开发】ESP开发工具:QEMU的使用方法

概要 本文提供了一些运行QEMU的ESP特定说明。有关QEMU的一般使用问题&#xff0c;请参阅官方文档&#xff1a;https://www.qemu.org/documentation/. 编译 QEMU 准备工作 在此之前&#xff0c;请查看有关构建先决条件的QEMU文档。如果你在Linux主机上构建QEMU&#xff0c;你…...

c++中std::endl 和“\n“ 这两个换行符有什么区别

std::endl 和 "\n" 都用于在C中生成换行符&#xff0c;但它们之间有一些重要的区别 std::endl&#xff1a; 功能&#xff1a;输出一个换行符&#xff0c;并刷新输出流&#xff08;即缓冲区&#xff09;。作用&#xff1a;确保所有数据立即输出到目的地&#xff0c;例…...

http中get和post怎么选

5.4.2.怎么选择1.如果你是想从服务器上获取资源&#xff0c;建议使用GET请求&#xff0c;如果你这个请求是为了向服务器提交数据&#xff0c;建议使用POST请求。2.大部分的form表单提交&#xff0c;都是post方式&#xff0c;因为form表单中要填写大量的数据&#xff0c;这些数据…...

数据分析及应用:快手直播间人员在线分析

目录 0 需求描述 1、进入直播间的高峰期为?(以进入用户数衡量) 2、晚上 11 点,哪个直播间的进入人数最多? 3、20:00-23:00,娱乐类、搞笑类,进入人数最多直播间分别是? 4、娱乐类、搞笑类,人均在线时长(退出时间-进入时间)最长的直播间分别是? 5、同时在线人数…...

【Python】nn.nn.CircularPad1、2、3d函数和nn.ConstantPad1、2、3d函数详解和示例

前言 在深度学习中&#xff0c;尤其是在处理图像、音频或其他多维数据时&#xff0c;数据填充&#xff08;Padding&#xff09;是一个常见的操作。填充不仅可以保持数据的空间维度&#xff0c;还能在卷积操作中避免信息丢失。PyTorch提供了多种填充方式&#xff0c;其中nn.Cir…...

LearnOpenGL——混合、面剔除

LearnOpenGL——混合、面剔除 混合 Blending一、丢弃片段 Alpha Test二、混合 Alpha Blending渲染顺序 面剔除一、环绕顺序二、面剔除 混合 Blending OpenGL中&#xff0c;混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明的物体可以是完全透明的&#xff0…...

视频网站为何热衷于SCDN

视频网站为何热衷于SCDN&#xff1f;随着互联网技术的飞速发展&#xff0c;视频网站已成为人们日常生活中不可或缺的一部分。无论是观看高清电影、热门剧集&#xff0c;还是直播体育赛事、游戏竞技&#xff0c;视频网站都以其丰富的内容和便捷的访问方式吸引了无数用户。然而&a…...

Redis与DataBase保持数据一致性

文章目录 1. 读取数据2. 写数据2.1 先操作缓存2.2 先操作数据库 在我们系统中缓存最常用的策略是&#xff1a;服务端需要同时维系DB和Cache&#xff0c;并且是以DB的结果为准&#xff0c; Cache-Aside Pattern&#xff08;缓存分离模式、旁路缓存&#xff09;。 1. 读取数据 当…...

解决 MacOS 连接公司 VPN 成功但是不能网络的问题

目录 解决办法2024 Mac mini 爆料 解决办法 操作比较简单&#xff0c;修改配置文件即可&#xff08;如果没有则需要手动创建&#xff09;。 sudo vim /etc/ppp/options在此文件下&#xff0c;加入 plugin L2TP.ppp&#xff1a; plugin L2TP.ppp如果文件里有l2tpnoipsec&…...

【Kubernetes】k8s集群之Pod容器资源限制和三种探针

目录 一、Pod容器的资源限制 1.资源限制 2.Pod 和容器的资源请求与限制 3.CPU 资源单位 4.内存资源单位 二、Pod容器的三种探针 1.探针的三种规则 2.Probe支持三种检查方法&#xff1a; 一、Pod容器的资源限制 1.资源限制 当定义 Pod 时可以选择性地为每个容器设定所…...

从古代驿站体系看软件安全管控@安全历史04

在古代&#xff0c;车、马都很慢&#xff0c;信息传递很不顺畅&#xff0c;中央的政令又是如何传达至地方的呢&#xff1f;实际上&#xff0c;很多朝代都有专门的驿站制度&#xff0c;可以保障全国各地的信息传递&#xff0c;对于维护统治和稳定有着关键作用。 若将国家比作一个…...

8.8 哈希表简单 1 Two Sum 141 Linked List Cycle

1 Two Sum class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {//给的target是目标sum 要返回vector<int> res(2,0);是在num中找加数//首先假设每个输入都是由唯一的结果&#xff0c;而且不适用相同的元素两次一共有n*(n-1)种…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...