Python3的安装及基础指令
Day 20
基础语法
1、环境:python2内置,安装并使用python3,最新版3.12版可以使用源码安装
# 查看python版本号
[root@python ~]#yum list installed|grep python
[root@python ~]#yum list installed|grep epel
[root@python ~]# yum -y install python3
[root@python ~]# python3 --version
Python 3.6.8
# 进入python3的编辑状态
[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()
>>> import os
>>> os.mkdir
<built-in function mkdir>
>>> os.listdir
<built-in function listdir>
# 修改pip镜像为清华,保证下载安装包去国内下载
[root@python ~]#pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ some-package
Successfully installed some-package-0.1
2、数据类型和变量
1)三大类数据类型:
字符:字符串
>>> x='huajuan'
>>> x
'huajuan'
>>> type(x)
<class 'str'>
数值:整数(int)、浮点(float)
>>> c=3
>>> c
3
>>> type(c)
<class 'int'>
>>> type(c)
<class 'int'>
>>> d=3.14
>>> d
3.14
>>> type(d)
<class 'float'>
逻辑:True、False
>>> flag=True
>>> print(flag)
True
>>> print(1==1)
True
>>> print(1!=1)
False
2)变量:最终计算是在python内存中计算的,必须要指定内存空间保存数据
>>> name1='李四'
>>> name2='张三'
>>> name3='王五'
>>> print(name1, name2, name3) # 变量名
李四 张三 王五
3、数据集合:
1)定义:使用数据集合批量管理内存空间,即数据集合。
2)分类:
列表:使用最为广泛,是java中数组和list的综合体,当有多个数据需要管理可以定义一个列表。
# 通过上下方向、enter、空格键来翻阅信息,q退出,more less查看更多
help(lsita)
# 创建列表
>>> lista=['李四', '张三', '王五']
>>> type(lista)
<class 'list'>
# 插入元素insert;追加元素append
>>> listb.insert(1, 'huajuan') //在下标为1的位置插入元素
>>> listb
['tom', 'huajuan', 'jerry']
>>> listb.append('tomcat') //在所有元素之后添加
>>> listb
['tom', 'huajuan', 'jerry', 'tomcat']
>>> listb
# 删除使用pop(),默认从尾部删除
['tom', 'huajuan', 'jerry', 'tomcat']
>>> listb.pop()
'tomcat'
>>> listb
['tom', 'huajuan', 'jerry']
['tom', 'huajuan', 'jerry']
>>> listb.pop()
'jerry'
>>> listb
# 使用remoe移除指定元素
>>> listb.remove('tom')
>>> listb
['huajuan']
# 使用下标移除元素
>>> listb.remove(listb[0])
>>> listb
[]
# 修改元素
>>> listb[2]
'jerry'
>>> listb[2]='张三'
>>> listb[2]
'张三'
字典:使用key-value记录信息
# 新建
>>> dic={'name': 'huajuan', 'age': '21', 'gender': ' 女' 'phone': '1888'}
>>> dic
{'name': 'huajuan', 'age': '21', 'gender': '女', 'phone': '1888'}
# 新增
>>> dic['realname']='tangpin'
>>> dic
{'id': 1, 'username': 'abc', 'password': '123', 'realname': 'tangpin'}
>>> a=[1, 2, 4, 3, 5]
>>> dic['other']=a
>>> dic
{'username': 'abc', 'password': 'abc$_epl', 'realname': 'tangpin', 'other': [1, 2, 4, 3, 5]}
>>> 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, {...}]}
# 修改
>>> dic['password']='abc$_epl'
>>> dic
{'username': 'abc', 'password': 'abc$_epl', 'realname': 'tangpin'}
# 移除
>>> dic.pop('id')
1
>>> dic
{'username': 'abc', 'password': '123', 'realname': 'tangpin'}
>>>
# 取出所有的键
>>> dic.keys()
dict_keys(['username', 'password', 'realname', 'other'])
# 取出所有的值
>>> dic.values()
dict_values(['abc', 'abc$_epl', 'tangpin', [1, 2, 4, 3, 5]])
# 取出所有元素
>>> dic.items()
dict_items([('username', 'abc'), ('password', 'abc$_epl'), ('realname', 'tangpin'), ('other', [1, 2, 4, 3, 5])])
元组:有序,使用下标查看但不可修改,要修改将其强转为列表
>>> tup=(4, 5, 6, 7)
>>> tup[1]
5
>>> tup[1]=888
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> list(tup)
[4, 5, 6, 7]
# list()看将dic的key生成一个列表;可把tuple()强转为列表;tuple可将dic和list变成元组
# 总结
| 功能 | 指令 | 说明 |
| 列表的创建 | [] | 符号本身就是列表 |
| list(元组) | 将元组转成列表 | |
| list(字典) | 提取字典的key转成列表 | |
| 字典取值 | 字典.keys() | 字典中的key返回⼀个列表 |
| 字典.values() | 字典中的value组成的列表 | |
| 字典.items() | 字典中的每个k-v组成元组,这些元组组成一个新的列表 | |
| 列表管理(增删该查) | list.insert(insex, value) | 在索引值为index的元素之前差 ⼈⼀个元素 |
| list.append(value) | 在所有元素之后添加⼀个元素 | |
| list.[index]=value | 将索引为index元素的值修改为 value | |
| list.pop() | 删除最后⼀个元素 | |
| del dist | 释放list内存 | |
| 查看列表 | list | 显示列表中的所有数据 |
| list[index] | 返回索引值为index的元素 | |
| 字典的创建 | {} | 代表一个空字典 |
| {k0: v0, k1: v1...} | 这是有初始值的列表 | |
| dic{(k0, v0), (k1, v1), (k2, v2)} | []中的每个()中都有2个值,一个是key,一个是value,自动解析为一个字典 | |
| 元组 | (),(1,2,3,4) | 创建空元组,创建有初始值的元组,也可以从dict中提 取,也可以将列表直接转成元组 |
# 编写py文件
vim test01.py
# 执行py脚本
python3 001.py
# 调试py脚本,输入n回车执行下一行代码,输入q退出
python3 -m pdb test01.py
# 生成0~9内随机数
import random
n=random.randint(0, 10)
# 创建目录
import os
os.mkdir("/opt/aaa/")
4、选择语句和循环语句
1)选择语句
=======if...else...=====
>>> if True:
... print('i am true')
... else:
... print('i am false')
...
i am true
[root@python ~]# vim py001.py
[root@python ~]# python3 py001.py
i am true
if True:
print('i am true')
else:
print('i am false')
Ctrl + Z退出
[root@python ~]# fg //切换窗口
python3
=======单分支语句======
>>> n=58
>>> if n>90:
... print('优秀')
... elif n>80:
... print('良好')
... elif n>70:
... print('中等')
... elif n>60:
... print('及格')
... else:
... print('不及格')
...
不及格
[root@python ~]# vim test.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 test.py
随机分数为: 57
不及格
[root@python ~]# python3 test.py
随机分数为: 40
不及格
[root@python ~]# python3 test.py
随机分数为: 11
不及格
=======多分支语句======
import random
n=random.ranint(50, 100)
print('rand:', n)
if n>90:
print('yx')
else:
if n>80:
print('lh')
else:
if n>70:
print('zd')
else:
if n>59:
print('jg')
else:
print('bjg')
2)循环语句
======for语句=======
>>> list(range(0, 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(1, 101): //不包含末尾值
... n=n+i
...
>>> print(n)
5050
[root@python ~]# vim test02.py
n=0
for i in range(101):
n=n+i
print(n)
[root@python ~]# python3 test02.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
# 在字典中循环,在字典中循环,此时仅输出key
>>> d={'id': 1001, 'name': '花卷', 'age': 21, 'gender': '女'}
>>> for var in d:
... print(var)
...
id
name
age
gender
>>> for var in d:
... print(var, '-', d[var])
...
id - 1001
name - 花卷
age - 21
gender - 女
>>> for var in d.values():
... print(var)
...
1001
花卷
21
女
# 在元组中循环
>>> tupel0=('a', 'c', 'e')
>>> for var in tuple0:
... print(var)
=====案例=====
>>> b=list(range(101))
>>> 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整除
=======while语句=========
# 1~100的累加
>>> n=0
>>> i=1
>>> while i<101:
... n=n+i
... i=i+1
>>> n
5050
# break用法
>>> while True:
... print('aaa')
... break
...
aaa
# continue用法
>>> i=1
>>> while True:
... if i==3:
... continue
... print(i)
... i+=1
...
1
2 //只输出1、2然后卡住
相关文章:
Python3的安装及基础指令
Day 20 基础语法 1、环境:python2内置,安装并使用python3,最新版3.12版可以使用源码安装 # 查看python版本号 [rootpython ~]#yum list installed|grep python [rootpython ~]#yum list installed|grep epel [rootpython ~]# yum -y …...
使用Spring与JDK动态代理实现事务管理
使用Spring与JDK动态代理实现事务管理 在现代企业级应用开发中,事务管理是一项关键的技术,它可以保证一系列操作要么全部成功,要么全部失败,从而确保数据的一致性和完整性。Spring框架提供了强大的事务管理能力,但有时…...
服务器硬件及RAID配置
服务器及 RAID 磁盘阵列介绍 RAID0 俗称 “ 条带 ” ,它将两个或多个硬盘组成一个逻辑硬盘,容量是所有硬盘之和,因 为是多个硬盘组合成一个,故可并行写操作,写入速度提高,但此方式硬盘数据没有冗余&#…...
【经验总结】ShardingSphere5.2.1 + Springboot 快速开始
Sharding Sphere 官方文档地址: https://shardingsphere.apache.org/document/current/cn/overview/maven仓库:https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc 官方的文档写的很详尽到位,这里会截取部分…...
基于Golang实现Kubernetes边车模式
本文介绍了如何基于 Go 语言实现 Kubernetes Sidecar 模式,并通过实际示例演示创建 Golang 实现的微服务服务、Docker 容器化以及在 Kubernetes 上的部署和管理。原文: Sidecar Pattern with Kubernetes and Go[1] 在这篇文章中,我们会介绍 Sidecar 模式…...
TCP 通信全流程分析:从连接建立到数据传输的深度探索
目录 一、TCP报头 二、三次握手 三、数据传输 四、四次挥手 本文通过一次TCP通信过程的分析来学习TCP协议 一、TCP报头 如图是一份TCP报文的报头,标准报头是20个字节,还可带有选项报头,也就是TCP报头的最小长度是20字节。以下是对报头的各…...
4、提取H264码流中nalu
H264的NALU提取 1、nalu单元 定义nalu的存储单元,ebsp用来存储原始的包含起始码(annexb格式)的原始码流,sodb存储去除防竞争字节后的码流,prefix是3或4字节 nalu_def.h // nalu_def.h #pragma once#include <cs…...
哈佛大学单细胞课程|笔记汇总 (二)
哈佛大学单细胞课程|笔记汇总 (一) (二)Single-cell RNA-seq data - raw data to count matrix 根据所用文库制备方法的不同,RNA序列(也被称为reads或tag)将从转录本((10X Genomic…...
java中抽象类和接口的区别
文章目录 接口和抽象类的区别一、定义的区别1、抽象类2、接口 二、使用场景的区别1、抽象类2、接口 三、使用案例1、抽象类2、接口 接口和抽象类的区别 一、定义的区别 1、抽象类 关键字: abstract 是模棱两可的,似是而非的,无法给出具体明…...
Spring Boot - 在Spring Boot中实现灵活的API版本控制(下)_ 封装场景启动器Starter
文章目录 Pre设计思路ApiVersion 功能特性使用示例配置示例 ProjectStarter Code自定义注解 ApiVersion配置属性类用于管理API版本自动配置基于Spring MVC的API版本控制实现WebMvcRegistrations接口,用于自定义WebMvc的注册逻辑扩展RequestMappingHandlerMapping的类…...
EasyCVR视频转码:T3视频平台不支持GB28181协议,应该如何实现与视频联网平台的对接与视频共享呢?
EasyCVR视频管理系统以其强大的拓展性、灵活的部署方式、高性能的视频能力和智能化的分析能力,为各行各业的视频监控需求提供了优秀的解决方案。 T3视频为公网HTTP-FLV或HLS格式的视频流,目前T3平台暂不支持国标GB28181协议,因此也无法直接接…...
Spring统一处理请求响应与异常
在web开发中,规范所有请求响应类型,不管是对前端数据处理,还是后端统一数据解析都是非常重要的。今天我们简单的方式实现如何实现这一效果 实现方式 定义响应类型 public class ResponseResult<T> {private static final String SUC…...
SqlServer公用表表达式 (CTE) WITH common_table_expression
SQL Server 中的公用表表达式(Common Table Expressions,简称 CTE)是一种临时命名的结果集,它在执行查询时存在,并且只在该查询执行期间有效。CTE 类似于一个临时的视图或者一个内嵌的查询,但它提供了更好的…...
常见中间件漏洞
Tomcat CVE-2017-12615 1.打开环境,抓包 2.切换请求头为 PUT,请求体添加木马,并在请求头添加木马文件名 1.jsp,后方需要以 / 分隔 3.连接 后台弱口令部署war包 1.打开环境,进入指点位置,账户密码均为 tomcat 2.在此处上传一句话…...
elasticsearch的学习(二):Java api操作elasticsearch
简介 使用Java api操作elasticsearch 创建maven项目 pom.xml文件 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi…...
docker 部署 ElasticSearch;Kibana
ELasticSearch 创建网络 docker network create es-netES配合Kibana使用时需要组网,使两者运行在同一个网络下 命令 docker run -d \ --name es \ -e "discovery.typesingle-node" \ -v /usr/local/es/data:/usr/share/elasticsearch/data \ -v /usr/…...
k8s使用kustomize来部署应用
k8s使用kustomize来部署应用 本文主要是讲述kustomzie的基本用法。首先,我们说一下部署文件的目录结构。 ./ ├── base │ ├── deployment.yaml │ ├── kustomization.yaml │ └── service.yaml └── overlays└── dev├── kustomization.…...
基于开源FFmpeg和SDL2.0的音视频解码播放和存储系统的实现
目录 1、FFMPEG简介 2、SDL简介 3、视频播放器原理 4、FFMPEG多媒体编解码库 4.1、FFMPEG库 4.2、数据类型 4.3、解码 4.3.1、接口函数 4.3.2、解码流程 4.4、存储(推送) 4.4.1、接口函数 4.4.2、存储流程 5、SDL库介绍 5.1、数据结构 5.…...
保姆级教程,一文了解LVS
目录 一.什么是LVS tips: 二.优点(为什么要用LVS?) 三.作用 四.程序组成 五.LVS 负载均衡集群的类型 六.分布式内容 六.一.分布式存储 六.二.分布式计算 六.三.分布式常见应用 tips: 七.LVS 涉及相关的术语 八.LVS 负…...
【STM32】DMA数据转运(存储器到存储器)
本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发 目录 DMA简介 DMA时钟使能 DMA初始化 转运起始和终止的地址 转运方向 数据宽度 传输次数 转运触发方式 转运模式 通道优先级 开启DMA通道 DMA初始化框架 更改转运次数 DMA应用实例-…...
SQLMesh表对比功能:如何在开发和生产环境间进行数据差异分析
SQLMesh表对比功能:如何在开发和生产环境间进行数据差异分析 【免费下载链接】sqlmesh Scalable and efficient data transformation framework - backwards compatible with dbt. 项目地址: https://gitcode.com/gh_mirrors/sq/sqlmesh SQLMesh的表对比功能…...
为什么一个非常大的数的导数是一个非常小的数?
“数”本身没有导数,因为导数是针对函数的(描述函数在某点的变化率或斜率)。如果你指的是某个函数在自变量很大时,函数值(y)变得“非常大”,但其导数(y)却“非常小”&…...
性能实测:登临Goldwasser V2加速卡跑YOLOv5s,对比CPU看速度提升多少?
登临Goldwasser V2加速卡YOLOv5s实测:从环境配置到性能对比的全流程拆解 当目标检测任务遇上边缘计算场景,算力与能效的平衡往往成为工程落地的关键瓶颈。上周在部署某工业园区安防系统时,我们尝试用登临科技的Goldwasser V2加速卡运行YOLOv5…...
好写作AI“查重雷达”:用AI技术为论文“扫雷”,让学术诚信“稳如泰山”
写论文时,最让人心跳加速的瞬间是什么?不是选题时的纠结,也不是数据分析的崩溃,而是查重报告出来的那一刻——如果重复率超过30%,轻则被导师“请喝茶”要求修改,重则被扣上“学术不端”的帽子,影…...
用快马平台实践vibe coding:五分钟生成你的音乐心情可视化原型
今天想和大家分享一个特别有趣的小项目——用InsCode(快马)平台快速实现音乐心情可视化网页。这个项目的灵感来源于vibe coding理念,也就是通过编程直接表达当下的情绪和氛围。整个过程就像用代码画画一样直观,特别适合创意型开发者。 项目构思 我想要做…...
OpenClaw自动化测试:Qwen3-14B驱动的代码审查机器人
OpenClaw自动化测试:Qwen3-14B驱动的代码审查机器人 1. 为什么需要自动化代码审查 去年参与一个开源项目时,我经常在深夜提交代码后收到维护者的评论:"这里有个拼写错误"、"那个变量命名不规范"。这种延迟反馈让我意识…...
Zotero Reference:重新定义学术文献管理效率的开源工具
Zotero Reference:重新定义学术文献管理效率的开源工具 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 一、5大核心价值:为什么Zotero Reference是研究者的…...
为什么说C#是Windows开发者的瑞士军刀?WPF、ASP.NET实战解析
为什么说C#是Windows开发者的瑞士军刀?WPF、ASP.NET实战解析 在Windows生态系统中,C#始终保持着不可替代的地位。这门由微软精心设计的语言,从2000年诞生至今,已经发展成为企业级应用、桌面程序和Web服务的全能选手。尤其对于Win…...
零基础入门CGCNN:3步用AI预测材料属性的神奇工具
零基础入门CGCNN:3步用AI预测材料属性的神奇工具 【免费下载链接】cgcnn Crystal graph convolutional neural networks for predicting material properties. 项目地址: https://gitcode.com/gh_mirrors/cg/cgcnn 想用人工智能预测新材料性能却不知从何入手…...
SEO接单平台怎么选
SEO接单平台怎么选?详细指南解析 在当今数字化时代,SEO接单平台已经成为许多企业和自由职业者获取客户资源的重要途径。市场上充斥着各种SEO接单平台,如何选择一个合适的平台对于提升工作效率和业务发展至关重要。本文将详细介绍如何选择SEO…...
