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

Python基础入门第四节,第五节课笔记

第四节

第一个条件语句

if 条件:

        条件成立执行的代码1

        条件成立执行的代码2

        ......

else:

        条件不成立执行的代码1

        条件不成立执行的代码2

        ……

代码如下:

身高 = float(input("请输入您的身高(米):"))
if 身高 >+1.3:print(f'您的身高是{身高},已经超过1.3米,您需要购票')
else:print(f'您的身高是{身高},按规定1.3米(含)以下免票,请直接上车')
print('祝您旅途愉快!')

第二个条件语句

if 条件1:

        条件1成立执行的代码1

        条件1成立执行的代码2

        ......

elif 条件2:

        条件2成立执行的代码1

        条件2成立执行的代码2

        ......

else:

        以上条件都不成立执行的代码

        ……

代码如下:

age = int(input('请输入您的年龄:'))
if age < 18:print(f'您的年龄是{age},对不起18岁以下不能考取驾照,请您{18-age}年后再来')
elif age > 70:print(f'您的年龄是{age},对不起70岁以上不能考取驾照')
else:print(f'您的年龄是{age},欢迎您,马路高手')
print('谢谢')

第五节

字典与集合

甲鱼老师说,什么时候用字典?当下标(索引)不好用的时候!

例如:

序列名 = ['华为',520,'小米',520,'苹果',14,'三星',24]

当顺序变化后,数据就乱了,而且下标也不管用了。

这个时候,就要用到字典了,字典和数据顺序无关,所以字典不支持下标,字典是按key和value的方式成对出现,俗称键值对。

字典序列名 = {'华为':520,'小米':520,'苹果':14,'三星':24}

字典用大括号包裹,数据是键:值成对出现。

空字典的创建

名字 = { }

名字 = dict( )

字典的增删改查

增加和修改数据:

语法: 字典序列名[键] = 值

如果键存在则修改对应的值,如果键不存在新增这个键和值。

删数据:

删除字典内数据语法:del字典序列名[键]          # 只需要写键,它会把键和值一起删除

删除整个字典的语法:del 字典序列名

清空字典:clear( )     字典序列名.clear( )

代码如下:

a = {'华为':520,'小米':520,'苹果':14,'三星':24}
a['华为'] = 521
print(a)
{'华为': 521, '小米': 520, '苹果': 14, '三星': 24}
a['荣耀'] = 500
print(a)
{'华为': 521, '小米': 520, '苹果': 14, '三星': 24, '荣耀': 500}
del a['三星']
print(a)
{'华为': 521, '小米': 520, '苹果': 14, '荣耀': 500}
a.clear()
print(a)
{}

查数据:

注意只能用键查值,不能用值查键,因为键是唯一的,值可能是重复的。

字典序列名 = {'华为':520,'小米':520,'苹果':14,'三星':24}

print(字典序列名['小米'])       返回:520

print(字典序列名['诺基亚'])    返回:报错

总结:如果键存在,我们返回值,否则报错。

字典的查询方法:

(1)get( )  语法: 字典序列名.get(键,随便写)

如果键存在,返回值。如果键不存在,返回默认值,默认值是你随便写的内容,如果省略了这个参数,返回None。

(2)values( )  语法: 字典序列名.values( )         # 返回字典中所有的值

(3)items( )  语法:字典序列名.items( )            #可迭代对象(里面的数据是元组),迭代就是重复反馈过程

代码如下:

a = {'华为':520,'小米':520,'苹果':14,'三星':24}
print(a['华为'])
520
print(a['诺基亚'])
Traceback (most recent call last):File "<pyshell#2>", line 1, in <module>print(a['诺基亚'])
KeyError: '诺基亚'
a = {'华为':520,'小米':520,'苹果':14,'三星':24}print(a.get('华为','不存在'))520
print(a.get('诺基亚','不存在'))不存在
print(a.get('诺基亚'))None
print(a.values())dict_values([520, 520, 14, 24])
a = {'华为':520,'小米':520,'苹果':14,'三星':24}
print(a.items())
dict_items([('华为', 520), ('小米', 520), ('苹果', 14), ('三星', 24)])

字典的循环遍历

什么叫遍历?就是全部数据都访问了就叫遍历。

1、遍历字典的键

字典序列名 = {'华为':520,'小米':520,'苹果':14,'三星':24}

for 键 in 字典序列名.keys( ):

        pr

2、遍历字典的value

字典序列名 = {'华为':520,'小米':520,'苹果':14,'三星':24}

for 值 in 字典序列名.values( ):

    print(值)

3、遍历字典的元素   
(返回:每行是一个元组)

字典序列名 = {'华为':520,'小米':520,'苹果':14,'三星':24}

for 元素 in 字典序列名.items( ):

        print(元素)

4、遍历字典的键和值

字典序列名 = {'华为':520,'小米':520,'苹果':14,'三星':24}

for 键 , 值 in 字典序列名.items( ):

        print( f' {键} = {值} ')

a = {'华为':520,'小米':520,'苹果':14,'三星':24}
for i in a.keys():print(i)华为
小米
苹果
三星
for i in a.values():print(i)520
520
14
24
for i in a.items():print(i)('华为', 520)
('小米', 520)
('苹果', 14)
('三星', 24)
for i,j in a.items():print(f'{i}={j}')华为=520
小米=520
苹果=14
三星=24

字典与集合

创建集合:

可以用{ } 或 set( )创建集合,但是创建空集合必需用set( ),因为{ }创建的是空字典

集合的特点: (1)自动去除重复数据  (2)顺序是随机的,所以不支持下标

集合名 = {1,2,3,4,5,6,7}

集合名 = {1,2,3,4,4,5,5,6,7}  # {1, 2, 3, 4, 5, 6, 7}            自动去重复

空集合 = set( )

代码如下:

a = {}
type(a)
<class 'dict'>
a = {1,2}
type(a)
<class 'set'>
a = set()
type(a)
<class 'set'>
a = {1,2,2,3,4,2}
print(a)
{1, 2, 3, 4}
增加数据:

集合名.add(数据)  # 因为集合自动去重复,所以增加重复内容时不进行任何操作

追加数据序列:

集合名.update(数据序列)        # 数据序列:列表,字符串,元组

代码如下

a = {1,2,3,4}
a.add(4)
print(a)
{1, 2, 3, 4}
a.add(5)
print(a)
{1, 2, 3, 4, 5}
a.update([7,8,9])
print(a)
{1, 2, 3, 4, 5, 7, 8, 9}
a.update((11,12,13))
print(a)
{1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13}
a.update('abc')
print(a)
{1, 2, 3, 4, 5, 7, 8, 9, 'b', 11, 12, 13, 'a', 'c'}
删除数据:

集合名.remove(数据)     #  如果数据不存在,报错

集合名.discard(数据)           # 如果数据不存在,不报错

集合名.pop( )                       # 随机删除集合中某个数据,并返回这个数据

查看返回数据    变量名 =集合名.pop( )

查看被删除的数据    print(变量名)

查看集合还剩下什么   print(集合名)

代码如下:

a = {1,2,3,4}
a.remove(5)
Traceback (most recent call last):File "<pyshell#1>", line 1, in <module>a.remove(5)
KeyError: 5
a.discard(5)
print(a)
{1, 2, 3, 4}
a.remove(1)
print(a)
{2, 3, 4}
a.discard(4)
print(a)
{2, 3}
a= {1,2,3,4,5}
a.pop()
1
a.pop()
2
print(a)
{3, 4, 5}
b = a.pop()
print(a)
{4, 5}
print(b)
3
查找数据:

in:  判断数据是否在集合序列中

not in: 判断数据不在集合序列中

print( 数据 in 集合名 )                          # 返回 True 或 False 

print( 数据 not in 集合名 )  # 返回 True 或 False

 代码如下:

a = {1,2,3,4,5}
print(1 in a)
True
print(8 in a)
False
print(1 not in a)
False
print(8 not in a)
True

总结一:

第1课 我们学习3种类型转换    int( )   float( )   str( )

第3课,我们又学习2种类型转换

list(序列名)     # 将序列转为列表

tuple(序列名)  # 将序列转为元组 

今天我们再学一个

set(序列名)       # 将某个序列转换成集合

注意:集合自动去重复,但不支持下标,没有顺序

a = [1,2,3]  #建一个列表
b = (1,2,3)  #建一个元组
print(set(a)) #把a转成集合,通过set()函数转的
{1, 2, 3}
print(set(b)) #把b也转成集合
{1, 2, 3}

总结二:

序列:序列是一个存放多个值的连续内存空间。

有序序列:有序,意味着有下标,可以进行下标操作、切片操作,列表、元组、字符串…

无序序列:字典、集合…

可变序列:元素可以进行增删改,更改之后id地址不会变。反之,就是不可变序

可变类型:列表、字典、集合…

不可变类型:整型、浮点型、字符串、元组...

总结三:

1、字符串:不能修改的字符序列。除了不能修改,可把字符串当成列表一样处理。

2、列表:我觉得列表就是我们日常生活中经常见到的清单。比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单。由于我们买一种东西可能不止一次,所以清单中是允许有重复项的。

3、元组:用来存放不能被轻易修改的数据,例如身份证号

4、字典:是除列表外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

5、集合:目的就是去重复。

相关文章:

Python基础入门第四节,第五节课笔记

第四节 第一个条件语句 if 条件: 条件成立执行的代码1 条件成立执行的代码2 ...... else: 条件不成立执行的代码1 条件不成立执行的代码2 …… 代码如下: 身高 float(input("请输入您的身高(米):")) if 身高 >1.3:print(f您的身高是{身高},已经超过1.3米,您需…...

基于Java SSM框架实现智能停车场系统项目【项目源码+论文说明】

基于java的SSM框架实现智能停车场系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个智能停车场管理系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述…...

React系列:useEffect的使用

useEffect的使用 useEffect的第二个参数不同&#xff0c;useEffect的加载不同 当第二个参数为没有的时候 只在组件初始渲染和组件更新之后加载当第二个参数为[] 的时候 只在初始渲染之后加载当第二个参数为[有依赖] 的时候 只在初始渲染之后和依赖修改的时候进行加载 functi…...

Ps:形状工具 - 描边选项

在形状工具的工具选项栏或“属性”面板中&#xff0c;单击“设置形状描边类型” Set shape stroke type菜单图标可打开“描边选项” Stroke Options面板。 描边预设 Stroke Type 默认列出了实线、虚线和点线三种类型的描边&#xff0c;单击可应用。 自己创建并存储的描边类型&a…...

C#基础知识 - 变量、常量与数据类型篇

C#基础知识 - 变量、常量与数据类型篇 第3节 变量、常量与数据类型3.1 C#变量3.1.1 变量使用3.1.2 自定义变量3.1.2 接收用户输入 3.2 C#常量3.2.1 常量的使用 3.3 C#数据类型3.3.1 数据类型之值类型3.3.2 数据类型之引用类型 更多C#基础知识详解请查看&#xff1a;C#基础知识 …...

Java面向对象思想以及原理以及内存图解

文章目录 什么是面向对象面向对象和面向过程区别创建一个对象用什么运算符?面向对象实现伪代码面向对象三大特征类和对象的关系。 基础案例代码实现实例化创建car对象时car引用的内存图对象调用方法过程 成员变量和局部变量作用范围在内存中的位置 关于对象的引用关系简介相关…...

Gitbook----基于 Windows 10 系统本地安装配置 Gitbook 编写属于自己的电子书

查看原文 文章目录 一、安装 Nodejs二、安装 Gitbook三、gitbook 的使用方法四、设计电子书的目录结构五、设置 gitbook 常用配置 一、安装 Nodejs 若要在 Windows 10 系统即本地使用 Gitbook&#xff0c;需要安装 gitlab-cli 工具&#xff0c;而 gitbook-cli 工具是基于 Node…...

springMVC-Restful风格

基本介绍 REST&#xff1a;即Representational State Transfer。&#xff08;资源&#xff09;表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便&#xff0c;所以正得到越来越多网站的采用. 1.HTTP协议里面&#xff0c;四个表示操…...

【OS】操作系统总复习笔记

操作系统总复习 文章目录 操作系统总复习一、考试题型1. 论述分析题2. 计算题3. 应用题 二、操作系统引论&#xff08;第1章&#xff09;2.1 操作系统的发展过程2.2 操作系统定义2.3 操作系统的基本特性2.3.1 并发2.3.2 共享2.3.3 虚拟2.3.4 异步 2.4 OS的功能2.5 OS结构2.5 习…...

powerbuilder游标的使⽤

在某些PowerBuilder应⽤程序的开发中,您可能根本⽤不到游标这样⼀个对象。因为在其它⼯具开发中很多需⽤游标实现的⼯作,在PowerBuilder中却已有DataWin-dow来代劳了。事实上,DataWindow不仅可以替代游标进⾏从后台数据库查询多条记录的复杂操作,⽽且还远不⽌这些。但是同DataW…...

docker创建镜像 Dockerfile

目录 docker的创建镜像的方式 dockerfile形成&#xff08;原理&#xff09; docker的核心作用 docker的文件结构 dockerfile的语法 CMD和ENTRPOINT的区别 创建dockerfile镜像 区别 RUN命令的优化 如何把run命令写在一块 copy和ADD区别 区别 centos7 构建Apache的d…...

C++共享和保护——(2)生存期

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 生命如同寓言&#xff0c;其价值不在于…...

你好,C++(3)2.1 一个C++程序的自白

第2部分 与C第一次亲密接触 在浏览了C“三分天下”的世界版图之后&#xff0c;便对C有了基本的了解&#xff0c;算是一只脚跨入了C世界的大门。那么&#xff0c;怎样将我们的另外一只脚也跨入C世界的大门呢&#xff1f;是该即刻开始编写C程序&#xff1f;还是…… 正在我们犹…...

【INTEL(ALTERA)】Agilex7 FPGA Development Kit DK-DEV-AGI027R1BES编程/烧录/烧写/下载步骤

DK-DEV-AGI027R1BES 的编程步骤&#xff1a; 将外部 USB Blaster II 连接到 J10- 外部 JTAG 接头。将交换机 SW5.3 设置为 ON&#xff08;首次&#xff09;。打开 英特尔 Quartus Prime Pro Edition 软件编程工具。单击 硬件设置 &#xff0c;然后选择 USB Blaster II。将硬件…...

大文件分块上传的代码,C++转delphi,由delphi实现。

在 Delphi 中&#xff0c;我们通常使用 IdHTTP 或 TNetHTTPClient 等组件来处理 HTTP 请求 原文章链接&#xff1a; 掌握分片上传&#xff1a;优化大文件传输的关键策略 【C】【WinHttp】【curl】-CSDN博客 改造思路&#xff1a; 文件分块处理&#xff1a;使用 TFileStream 来…...

MongoDB表的主键可以重复?!MongoDB的坑

MongoDB表的主键可以重复&#xff1f;&#xff01; 眼见为实&#xff1f; 碰到一个奇怪的现象&#xff0c; MongoDB的一个表居然有两个一样的_id值&#xff01; 再次提交时&#xff0c;是会报主键冲突的。那上图&#xff0c;为什么会有两个一样的_id呢&#xff1f; 将它们的…...

C++初阶-list类的模拟实现

list类的模拟实现 一、基本框架1.1 节点类1.2 迭代器类1.3 list类 二、构造函数和析构函数2.1 构造函数2.2 析构函数 三、operator的重载和拷贝构造3.1 operator的重载3.2 拷贝构造 四、迭代器的实现4.1 迭代器类中的各种操作4.1 list类中的迭代器 五、list的增容和删除5.1 尾插…...

RecyclerView中的设计模式解读

一.观察者模式&#xff1a;&#xff08;待完善&#xff0c;这个写的不咋地&#xff0c;没理解透彻&#xff09; 1.观察者模式的概念&#xff1a; &#xff08;1&#xff09;消息传递方向&#xff1a;被观察者->观察者 &#xff08;2&#xff09;代码实现&#xff1a; 首…...

ACwing算法备战蓝桥杯——Day30——树状数组

定义&#xff1a; 树状数组是一种数据结构&#xff0c;能将对一个区间内数据进行修改和求前缀和的这两种操作的最坏时间复杂度降低到O(logn); 实现所需变量 变量名变量数据类型作用数组a[]int存储一段区间数组tr[]int表示树状数组 主要操作 函数名函数参数组要作用lowbit()int…...

elementui + vue2实现表格行的上下移动

场景&#xff1a; 如上&#xff0c;要实现表格行的上下移动 实现&#xff1a; <el-dialogappend-to-bodytitle"条件编辑":visible.sync"dialogVisible"width"60%"><el-table :data"data1" border style"width: 100%&q…...

2、快速搞定Kafka术语

快速搞定Kafka术语 Kafka 服务端3层消息架构 Kafka 客户端Broker 如何持久化数据小结 Kafka 服务端 3层消息架构 第 1 层是主题层&#xff0c;每个主题可以配置 M 个分区&#xff0c;而每个分区又可以配置 N 个副本。第 2 层是分区层&#xff0c;每个分区的 N 个副本中只能有…...

CSS新手入门笔记整理:CSS3选择器

属性选择器 属性选择器&#xff0c;指的是通过“元素的属性”来选择元素的一种方式。 语法 元素[attr^"xxx"]{} 元素[attr$"xxx"]{} 元素[attr*"xxx"]{} 选择器 说明 E[attr^"xxx"] 选择元素E&#xff0c;其中E元素的attr属性是…...

D34|不同路径

62.不同路径 初始思路&#xff1a; 1&#xff09;确定dp数组以及下标的含义&#xff1a; dp[i][i]存放到第i1行和第i1列的方法数 2&#xff09;确定递推公式&#xff1a; dp[i][i] dp[i -1][i] dp[i][i-1] 3&#xff09;dp数组如何初始化 第0行是1&#xff1b; 第0列是1&a…...

【运维】Kafka高可用: KRaft(不依赖zookeeper)集群搭建

文章目录 一. kafka kraft 集群介绍1. KRaft架构2. Controller 服务器3. Process Roles4. Quorum Voters5. kraft的工作原理 ing 二. 集群安装1. 安装1.1. 配置1.2. 格式化 2. 启动测试2.1. 启功节点服务2.2. 测试 本文主要介绍了 kafka raft集群架构&#xff1a; 与旧架构的不…...

Python 自动化之批量处理文件(一)

批量新建目录、文档Pro版本 文章目录 批量新建目录、文档Pro版本前言一、做成什么样子二、基本思路1.引入库2.基本架构 三、用户输入模块四、数据处理模块1.excel表格数据获取2.批量数据的生成 总结 前言 我来写一个不一样的批量新建吧。在工作中&#xff0c;有些同学应该会遇…...

力扣72. 编辑距离

动态规划 思路&#xff1a; 假设 dp[i][j] 是 word1 前 i 个字母到 word2 前 j 个字母的编辑距离&#xff1b;那么状态 dp[i][j] 状态的上一个状态有&#xff1a; dp[i - 1][j]&#xff0c;word1 前 i - 1 个字母到 word2 前 j 个字母的编辑距离&#xff0c;此状态再插入一个字…...

Unity中 URP Shader 的纹理与采样器的分离定义

文章目录 前言一、URP Shader 纹理采样的实现1、在属性面板定义一个2D变量用于接收纹理2、申明纹理3、申明采样器4、进行纹理采样 二、申明纹理 和 申明采样器内部干了什么1、申明纹理2、申明采样器 三、采样器设置采样器的传入格式1、纹理设置中&#xff0c;可以看见我们的采样…...

Electron学习第一天 ,启动项目

之前在安装官网的步骤操作&#xff0c;结果报错&#xff0c;找了好多办法&#xff0c;最后这种办法成功启动项目&#xff0c;并且没有报错&#xff0c;特此记录 特别提醒&#xff0c;最好安装淘宝镜像&#xff0c;npm 太慢&#xff0c;会导致报错问题&#xff0c;解决起来个人觉…...

WebService技术--随笔1

1.WebService 发展史 创建阶段&#xff08;1990 年代末至 2000 年代初&#xff09;&#xff1a;在这个阶段&#xff0c;XML-RPC 和 SOAP 协议被引入&#xff0c;为跨平台和跨语言的应用程序集成提供了基础。XML-RPC 提供了一种基于 XML 的远程过程调用机制&#xff0c;而 SOAP…...

如何使用Docker将.Net6项目部署到Linux服务器(一)

目录 一 配置服务器环境 1.1 配置yum 1.1.1 更新yum包 1.1.2 yum命令 1.2 配置docker …...

简易做海报网站/软件培训机构有哪些?哪个比较好

中间人攻击(Man-in-the-Middle (MITM) attack) 中间人攻击是一种常见的攻击手段&#xff0c;攻击者与通信双方分别建立连接&#xff0c;将双方想要交换的数据进行记录、篡改甚至丢弃。由于Http是明文传输&#xff0c;因此很容易遭受到中间人攻击。 一个通俗的例子 假设 Tom 想和…...

微信上wordpress/seo就业

SVG剪裁路径和遮罩jQuery幻灯片是一款基于SVG clipPath和mask遮罩元素实现的网站动画幻灯片代码特效。在线演示本地下载转载于:https://www.cnblogs.com/wwhhq/p/8283759.html...

专门做电子书的网站/拉新推广怎么快速拉人

php中get方法的加号处理 1、网上搜的方法如下&#xff1a; 用 get 方法 , 参数里有 “” 时&#xff0c;要做处理&#xff0c;否则到后台会变成空格 解决方案&#xff1a; 1 、改用 post 方法 ,ok 2 、在 js 里用 url encodeURI(encodeURI(XXX)) 3 、将参数里的加号进行转…...

中韩双语网站制作价格/长沙网站策划

【赛迪网讯】《varbusiness》杂志发表评论指出&#xff0c;随着开放资源软件的发展&#xff0c;Linux 大旗的挥舞者之一红帽&#xff08;Red Hat&#xff09;向外界公布了自己强劲的第二季度财政报告&#xff0c;在整个企业软件市场显现出低迷状态的趋势下&#xff0c;红帽逆潮…...

武汉北京网站建设公司/谷歌google浏览器官方下载

假设我有以下两个表&#xff1a;STUDENTstudentid lastname firstname1 Smith John2 Drew NancySTUDENT_STORYstudentid dateline storyid status1 1328313600 10 21 1328313601 9 12 1328313602 14 22 1328313603 12 1现在,我需要一个SQL查询,将选择每个学生以及该学生在学生故…...

做网站一定要学java吗/网站推广计划书

为了方便读者朋友们自学桌面端编程&#xff0c;本文介绍了一些在线课程。桌面端编程方面的在线课程非常多&#xff0c;更新速度快&#xff0c;读者朋友们也可以在网上自行搜索&#xff0c;选择适合自己的在线课程进行学习。如需要打开课程的网站&#xff0c;请复制课程的网址到…...