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语言开发一个智能停车场管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述…...
React系列:useEffect的使用
useEffect的使用 useEffect的第二个参数不同,useEffect的加载不同 当第二个参数为没有的时候 只在组件初始渲染和组件更新之后加载当第二个参数为[] 的时候 只在初始渲染之后加载当第二个参数为[有依赖] 的时候 只在初始渲染之后和依赖修改的时候进行加载 functi…...
Ps:形状工具 - 描边选项
在形状工具的工具选项栏或“属性”面板中,单击“设置形状描边类型” Set shape stroke type菜单图标可打开“描边选项” Stroke Options面板。 描边预设 Stroke Type 默认列出了实线、虚线和点线三种类型的描边,单击可应用。 自己创建并存储的描边类型&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#基础知识详解请查看:C#基础知识 …...
Java面向对象思想以及原理以及内存图解
文章目录 什么是面向对象面向对象和面向过程区别创建一个对象用什么运算符?面向对象实现伪代码面向对象三大特征类和对象的关系。 基础案例代码实现实例化创建car对象时car引用的内存图对象调用方法过程 成员变量和局部变量作用范围在内存中的位置 关于对象的引用关系简介相关…...
Gitbook----基于 Windows 10 系统本地安装配置 Gitbook 编写属于自己的电子书
查看原文 文章目录 一、安装 Nodejs二、安装 Gitbook三、gitbook 的使用方法四、设计电子书的目录结构五、设置 gitbook 常用配置 一、安装 Nodejs 若要在 Windows 10 系统即本地使用 Gitbook,需要安装 gitlab-cli 工具,而 gitbook-cli 工具是基于 Node…...
springMVC-Restful风格
基本介绍 REST:即Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用. 1.HTTP协议里面,四个表示操…...
【OS】操作系统总复习笔记
操作系统总复习 文章目录 操作系统总复习一、考试题型1. 论述分析题2. 计算题3. 应用题 二、操作系统引论(第1章)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形成(原理) docker的核心作用 docker的文件结构 dockerfile的语法 CMD和ENTRPOINT的区别 创建dockerfile镜像 区别 RUN命令的优化 如何把run命令写在一块 copy和ADD区别 区别 centos7 构建Apache的d…...
C++共享和保护——(2)生存期
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 生命如同寓言,其价值不在于…...
你好,C++(3)2.1 一个C++程序的自白
第2部分 与C第一次亲密接触 在浏览了C“三分天下”的世界版图之后,便对C有了基本的了解,算是一只脚跨入了C世界的大门。那么,怎样将我们的另外一只脚也跨入C世界的大门呢?是该即刻开始编写C程序?还是…… 正在我们犹…...
【INTEL(ALTERA)】Agilex7 FPGA Development Kit DK-DEV-AGI027R1BES编程/烧录/烧写/下载步骤
DK-DEV-AGI027R1BES 的编程步骤: 将外部 USB Blaster II 连接到 J10- 外部 JTAG 接头。将交换机 SW5.3 设置为 ON(首次)。打开 英特尔 Quartus Prime Pro Edition 软件编程工具。单击 硬件设置 ,然后选择 USB Blaster II。将硬件…...
大文件分块上传的代码,C++转delphi,由delphi实现。
在 Delphi 中,我们通常使用 IdHTTP 或 TNetHTTPClient 等组件来处理 HTTP 请求 原文章链接: 掌握分片上传:优化大文件传输的关键策略 【C】【WinHttp】【curl】-CSDN博客 改造思路: 文件分块处理:使用 TFileStream 来…...
MongoDB表的主键可以重复?!MongoDB的坑
MongoDB表的主键可以重复?! 眼见为实? 碰到一个奇怪的现象, MongoDB的一个表居然有两个一样的_id值! 再次提交时,是会报主键冲突的。那上图,为什么会有两个一样的_id呢? 将它们的…...
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中的设计模式解读
一.观察者模式:(待完善,这个写的不咋地,没理解透彻) 1.观察者模式的概念: (1)消息传递方向:被观察者->观察者 (2)代码实现: 首…...
ACwing算法备战蓝桥杯——Day30——树状数组
定义: 树状数组是一种数据结构,能将对一个区间内数据进行修改和求前缀和的这两种操作的最坏时间复杂度降低到O(logn); 实现所需变量 变量名变量数据类型作用数组a[]int存储一段区间数组tr[]int表示树状数组 主要操作 函数名函数参数组要作用lowbit()int…...
elementui + vue2实现表格行的上下移动
场景: 如上,要实现表格行的上下移动 实现: <el-dialogappend-to-bodytitle"条件编辑":visible.sync"dialogVisible"width"60%"><el-table :data"data1" border style"width: 100%&q…...
终极指南:3分钟实现GitHub全界面中文化,彻底消除语言障碍
终极指南:3分钟实现GitHub全界面中文化,彻底消除语言障碍 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese GitH…...
FakeLocation:你的手机位置自由指南,3个场景让位置掌控更简单
FakeLocation:你的手机位置自由指南,3个场景让位置掌控更简单 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 还在为社交软件的位置限制烦恼吗?…...
ReMe:为AI智能体构建长期记忆与上下文管理的开源框架
1. 项目概述与核心价值如果你正在构建或使用AI智能体(Agent),并且被“金鱼记忆”问题困扰——比如对话一长,模型就忘了开头说了什么;或者每次新会话都像初次见面,完全记不住用户偏好和历史任务——那么ReMe…...
ARM CTI寄存器安全机制与调试接口设计详解
1. ARM CTI寄存器架构概述在嵌入式系统开发领域,调试接口的安全性和可靠性一直是工程师面临的核心挑战。ARM架构中的CTI(Cross-Trigger Interface)寄存器组提供了一套完整的硬件级调试解决方案,特别是在多核调试和复杂系统监控场景…...
基于Go与K8s Client-go实现多租户应用一键部署API服务
1. 项目概述与核心价值最近在搞一个内部工具平台,需要为每个新入职的同事快速部署一套独立的 Copaw 应用实例。Copaw 是我们团队基于agentscope/copaw镜像开发的一个内部辅助工具,每个开发者都需要一个专属的运行环境来处理自己的任务。手动去 K8s 里敲k…...
M4Markets:技术架构稳健性的多角度观察
在金融服务行业不断深化的当下,平台的综合实力已经成为客户筛选时的关注焦点。M4Markets作为活跃在国际金融领域的服务机构,多年来在多个维度展现出较为突出的特点。本文将从评测视角出发,对其综合表现进行多维度的观察与解读,希望…...
如何快速搭建Sunshine游戏串流服务器:终极自托管指南
如何快速搭建Sunshine游戏串流服务器:终极自托管指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上畅玩PC游戏吗?Sunshine开源游戏串流服…...
Linux系统下Filezilla FTP客户端的两种高效部署方案
1. 为什么选择Filezilla作为Linux平台的FTP客户端? 作为Linux用户,我们经常需要在服务器之间传输文件。虽然命令行工具如scp、sftp也能完成工作,但图形化客户端在批量文件操作和可视化管理方面优势明显。Filezilla作为老牌开源FTP解决方案&am…...
使用S32 Design Studio(S32DS)常见问题
S32DS常见问题如下:1. 编译器找不到ld文件工程路径不能有中文字符2. 编译器找不到make文件鼠标右键点击工程,在弹出菜单中点击 “Properties” 按钮,弹出属性对话框,点击 Tool Settings 选项卡,在左侧树状框中点击 C/C…...
NS-USBLoader完整指南:Switch文件管理、RCM注入与游戏传输的一站式解决方案
NS-USBLoader完整指南:Switch文件管理、RCM注入与游戏传输的一站式解决方案 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://…...
