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

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

>>> 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(首字母必须大写)
>>> 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'>
>>> print("hello world!")
hello world!
>>> a=3
>>> b="abc"
>>> type(a)
<class 'int'>
>>> type(b)
<class 'str'>

三、数据集合

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

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

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

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

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

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

                1.5 管理列表

#创建列表  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 键:值

{"from":"me""to":"you""message":"在干嘛""time":"2024-7-8 9:00:32""user":{"username":"abc""password":"abc"    }
}
>>> 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中提取,也可以将列表转换成元组

                        

#元组支持查看不支持修改
>>> 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     格式必须缩进

        

        [root@python ~]# python3 py001.py   执行脚本
        i am true

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

 [root@python ~]# vim py002.py

[root@python ~]# python3 py002.py
随机分数为: 50
不及格
[root@python ~]# python3 py002.py
随机分数为: 74
中等

>>> 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

                
                [root@python ~]# python3 py003.py
                随机数值: 66
                及格

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

                for var in list:

                        print(var)

>>> 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


[root@python ~]# python3 py004.py
5050
[root@python ~]# python -m pdb py004.py   调试模式,按n下一步,按q退出

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

>>> 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(退出整个循环);

>>> 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          #之后都不输出

 


 

相关文章:

2024.8.08(python)

一、搭建python环境 1、检查是否安装python [rootpython ~]# yum list installed | grep python [rootpython ~]# yum list | grep python3 2、安装python3 [rootpython ~]# yum -y install python3 安装3.12可以使用源码安装 3、查看版本信息 [rootpython ~]# python3 --vers…...

RabbitMQ知识总结(基本原理+高级特性)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 基本原理 消息的可靠性投递 RabbitMQ 消息的投递路径为&#xff…...

字符串切割split

let obj {} let str "aa占比:17.48%,aa计费占比:0.00%" let arr str.split(,) // [aa占比:17.48%,aa计费占比:0.00%] arr.forEach(item > { let [key,value] item.split(:) obj[key] value }) console.log(obj) //{aa占比: 17.48%, aa计费占比: 0.00%} con…...

Python中的 `continue` 语句:掌握循环控制的艺术

Python中的 continue 语句&#xff1a;掌握循环控制的艺术 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通…...

AI安全新纪元:智能体驱动的网络安全新范式

近日&#xff0c;ISC.AI 2024第十二届互联网安全大会在北京盛大开幕。本次大会以"打造安全大模型&#xff0c;引领安全行业革命"为主题&#xff0c;旨在呼吁行业以大模型重塑安全体系&#xff0c;以保障数字经济的稳健发展。 在企业安全运营与策略实践论坛上&#x…...

c语言学习,isascii()函数分析

1&#xff1a;isascii() 函数说明&#xff1a; 检查参数c&#xff0c;是不是ASCI码字符 2&#xff1a;函数原型&#xff1a; int isascii(int c) 3&#xff1a;函数参数&#xff1a; 参数c&#xff0c;为检测ASCI码 4&#xff1a;返回值&#xff1a; 参数c为ASCII码字符&…...

DAMA学习笔记(十二)-数据质量

1.引言 数据管理能力包括为各类应用设计数据模型、安全存储和访问数据、适当地共享数据、从数据中获得知识&#xff0c;以及保障满足业务需求的能力等。但实现数据价值的前提是数据本身是可靠和可信的&#xff0c;换句话说&#xff0c;数据应是高质量的。 导致低质量数据产生的…...

查找项目中丢失脚本的物体

直接上代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using System.IO;namespace SimpleFrame.Tool {public class MissingScriptsToolWindow : EditorWindow{[MenuItem("工具/丢失脚本的物体列表")]pu…...

支付宝开放平台竟出现一张神秘人脸!

前言 ​ 我因一个单子来到支付宝开放平台来。在将其加入书签的时候&#xff0c;我发现出现了个神秘的人脸 一张笑容明媚的脸&#xff0c;就是出现的时候不太对 正常的收藏网址 应该是显示对应log 就不继续找相关例子了 ​ 添加书签的页面&#xff0c;本该出现log的地方缺出现了…...

每日学术速递8.8

1.Rethinking temporal self-similarity for repetitive action counting 标题&#xff1a;重新思考重复动作计数的时间自相似性 作者&#xff1a; Yanan Luo, Jinhui Yi, Yazan Abu Farha, Moritz Wolter, Juergen Gall 文章链接&#xff1a;https://arxiv.org/abs/2407.09…...

【JVM基础12】——垃圾回收-说一下JVM有哪些垃圾回收器?

目录 1- 引言&#xff1a;垃圾回收器2- ⭐核心&#xff1a;垃圾回收器详解2-1 串行垃圾回收器2-2 并行垃圾回收器2-3 CMS&#xff08;并发垃圾回收&#xff09;——主要作用在老年代 3- 小结3-1 说一下JVM有哪些垃圾回收器&#xff1f; 1- 引言&#xff1a;垃圾回收器 在 JVM …...

进阶学习------linux运维读写执行权限

进阶学习------linux运维读写执行权限 在UNIX和类UNIX操作系统中&#xff0c;文件权限是通过一组特定的数字来表示的&#xff0c;这些数字分为三组&#xff0c;分别对应于用户&#xff08;文件所有者&#xff09;、组和其他用户的权限。每组权限由三个二进制位表示&#xff0c;…...

视频循环存储的实现

目录 1. 三方工具 2. 视频存储的实现 2.1 分段存储 - 比如每15分钟 2.2 对齐到15分钟整边界 2.3 循环存储的实现 video_space_daemon.sh 3.封装 3.1 主执行程序&#xff0c;修订版 3.2 创建服务 3.3 service关联的执行脚本文件 4.额外的工作 附录A: ffmpeg视频存储…...

在centOS系统中使用docker部署Jenkins

1. 安装docker 1.1 下载Docker依赖组件 yum -y install yum-utils device-mapper-persistent-data lvm2 1.2 设置下载Docker的镜像源为阿里云 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 1.3 安装Docker服务 yum …...

Qt 将生成的exe文件自动复制到其它目录下

QT pro中加入文件拷贝方法_qt pro复制粘贴-CSDN博客 目标&#xff1a; 例如&#xff1a;在release模式下&#xff0c;exe文件生成于&#xff1a; "G:\test\build\release\shakeSensor.exe" 此时&#xff0c;我希望在生成该exe文件时&#xff0c; "G:\test\…...

openwrt下,用iptable转发端口访问远程的SMB服务

首先初步学习一下iptales的命令 iptales指令的详细教程&#xff1a;https://blog.csdn.net/weixin_44390164/article/details/120500075 实践一、转发地址与端口 外网远程服务上开放了SMB服务&#xff0c;端口号自定义的为44513&#xff0c;WINDOWS不能直接访问&#xff0c;…...

JVM类加载中的双亲委派机制

【1】什么是双亲委派 Java虚拟机对class文件采用的是按需加载的方式&#xff0c;也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时&#xff0c;Java虚拟机采用的是双亲委派模式&#xff0c;即把请求交由父类处理&#xff0c…...

【OpenCV C++20 学习笔记】范围阈值操作

范围阈值操作 原理HSV颜色空间RGB与HSV颜色空间之间的转换 代码实现颜色空间的转换范围阈值操作 原理 HSV颜色空间 HSV(色相hue, 饱和度sarturation, 色明度value)颜色空间与RGB颜色空间相似。hue色相通道代表颜色类型&#xff1b;saturation饱和度通道代表颜色的饱和度&…...

【Material-UI】Checkbox组件:Indeterminate状态详解

文章目录 一、什么是Indeterminate状态&#xff1f;二、Indeterminate状态的实现1. 基本用法示例2. 代码解析3. Indeterminate状态的应用场景 三、Indeterminate状态的UI与可访问性1. 无障碍设计2. 用户体验优化 四、Indeterminate状态的最佳实践1. 状态同步2. 优化性能3. 提供…...

一文了解K8S(Kubernates)

一、K8S 1. 概述 Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态&#xff0c;其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

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;用于…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...