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

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、环境&#xff1a;python2内置&#xff0c;安装并使用python3&#xff0c;最新版3.12版可以使用源码安装 # 查看python版本号 [rootpython ~]#yum list installed|grep python [rootpython ~]#yum list installed|grep epel [rootpython ~]# yum -y …...

使用Spring与JDK动态代理实现事务管理

使用Spring与JDK动态代理实现事务管理 在现代企业级应用开发中&#xff0c;事务管理是一项关键的技术&#xff0c;它可以保证一系列操作要么全部成功&#xff0c;要么全部失败&#xff0c;从而确保数据的一致性和完整性。Spring框架提供了强大的事务管理能力&#xff0c;但有时…...

服务器硬件及RAID配置

服务器及 RAID 磁盘阵列介绍 RAID0 俗称 “ 条带 ” &#xff0c;它将两个或多个硬盘组成一个逻辑硬盘&#xff0c;容量是所有硬盘之和&#xff0c;因 为是多个硬盘组合成一个&#xff0c;故可并行写操作&#xff0c;写入速度提高&#xff0c;但此方式硬盘数据没有冗余&#…...

【经验总结】ShardingSphere5.2.1 + Springboot 快速开始

Sharding Sphere 官方文档地址&#xff1a; https://shardingsphere.apache.org/document/current/cn/overview/maven仓库&#xff1a;https://mvnrepository.com/artifact/org.apache.shardingsphere/shardingsphere-jdbc 官方的文档写的很详尽到位&#xff0c;这里会截取部分…...

基于Golang实现Kubernetes边车模式

本文介绍了如何基于 Go 语言实现 Kubernetes Sidecar 模式&#xff0c;并通过实际示例演示创建 Golang 实现的微服务服务、Docker 容器化以及在 Kubernetes 上的部署和管理。原文: Sidecar Pattern with Kubernetes and Go[1] 在这篇文章中&#xff0c;我们会介绍 Sidecar 模式…...

TCP 通信全流程分析:从连接建立到数据传输的深度探索

目录 一、TCP报头 二、三次握手 三、数据传输 四、四次挥手 本文通过一次TCP通信过程的分析来学习TCP协议 一、TCP报头 如图是一份TCP报文的报头&#xff0c;标准报头是20个字节&#xff0c;还可带有选项报头&#xff0c;也就是TCP报头的最小长度是20字节。以下是对报头的各…...

4、提取H264码流中nalu

H264的NALU提取 1、nalu单元 定义nalu的存储单元&#xff0c;ebsp用来存储原始的包含起始码&#xff08;annexb格式&#xff09;的原始码流&#xff0c;sodb存储去除防竞争字节后的码流&#xff0c;prefix是3或4字节 nalu_def.h // nalu_def.h #pragma once#include <cs…...

哈佛大学单细胞课程|笔记汇总 (二)

哈佛大学单细胞课程|笔记汇总 &#xff08;一&#xff09; &#xff08;二&#xff09;Single-cell RNA-seq data - raw data to count matrix 根据所用文库制备方法的不同&#xff0c;RNA序列&#xff08;也被称为reads或tag&#xff09;将从转录本&#xff08;(10X Genomic…...

java中抽象类和接口的区别

文章目录 接口和抽象类的区别一、定义的区别1、抽象类2、接口 二、使用场景的区别1、抽象类2、接口 三、使用案例1、抽象类2、接口 接口和抽象类的区别 一、定义的区别 1、抽象类 关键字&#xff1a; abstract 是模棱两可的&#xff0c;似是而非的&#xff0c;无法给出具体明…...

Spring Boot - 在Spring Boot中实现灵活的API版本控制(下)_ 封装场景启动器Starter

文章目录 Pre设计思路ApiVersion 功能特性使用示例配置示例 ProjectStarter Code自定义注解 ApiVersion配置属性类用于管理API版本自动配置基于Spring MVC的API版本控制实现WebMvcRegistrations接口&#xff0c;用于自定义WebMvc的注册逻辑扩展RequestMappingHandlerMapping的类…...

EasyCVR视频转码:T3视频平台不支持GB28181协议,应该如何实现与视频联网平台的对接与视频共享呢?

EasyCVR视频管理系统以其强大的拓展性、灵活的部署方式、高性能的视频能力和智能化的分析能力&#xff0c;为各行各业的视频监控需求提供了优秀的解决方案。 T3视频为公网HTTP-FLV或HLS格式的视频流&#xff0c;目前T3平台暂不支持国标GB28181协议&#xff0c;因此也无法直接接…...

Spring统一处理请求响应与异常

在web开发中&#xff0c;规范所有请求响应类型&#xff0c;不管是对前端数据处理&#xff0c;还是后端统一数据解析都是非常重要的。今天我们简单的方式实现如何实现这一效果 实现方式 定义响应类型 public class ResponseResult<T> {private static final String SUC…...

SqlServer公用表表达式 (CTE) WITH common_table_expression

SQL Server 中的公用表表达式&#xff08;Common Table Expressions&#xff0c;简称 CTE&#xff09;是一种临时命名的结果集&#xff0c;它在执行查询时存在&#xff0c;并且只在该查询执行期间有效。CTE 类似于一个临时的视图或者一个内嵌的查询&#xff0c;但它提供了更好的…...

常见中间件漏洞

Tomcat CVE-2017-12615 1.打开环境&#xff0c;抓包 2.切换请求头为 PUT&#xff0c;请求体添加木马&#xff0c;并在请求头添加木马文件名 1.jsp&#xff0c;后方需要以 / 分隔 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使用时需要组网&#xff0c;使两者运行在同一个网络下 命令 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的基本用法。首先&#xff0c;我们说一下部署文件的目录结构。 ./ ├── 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、存储&#xff08;推送&#xff09; 4.4.1、接口函数 4.4.2、存储流程 5、SDL库介绍 5.1、数据结构 5.…...

保姆级教程,一文了解LVS

目录 一.什么是LVS tips: 二.优点&#xff08;为什么要用LVS&#xff1f;&#xff09; 三.作用 四.程序组成 五.LVS 负载均衡集群的类型 六.分布式内容 六.一.分布式存储 六.二.分布式计算 六.三.分布式常见应用 tips&#xff1a; 七.LVS 涉及相关的术语 八.LVS 负…...

【STM32】DMA数据转运(存储器到存储器)

本篇博客重点在于标准库函数的理解与使用&#xff0c;搭建一个框架便于快速开发 目录 DMA简介 DMA时钟使能 DMA初始化 转运起始和终止的地址 转运方向 数据宽度 传输次数 转运触发方式 转运模式 通道优先级 开启DMA通道 DMA初始化框架 更改转运次数 DMA应用实例-…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...