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、集合:目的就是去重复。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业交换机的组网方式有哪些?

工业交换机也称作工业以太网交换机&#xff0c;即应用于工业控制领域的以太网交换机设备&#xff0c;由于采用的网络标准&#xff0c;其开放性好、应用广泛以及价格低廉、使用的是透明而统一的TCP/IP协议&#xff0c;以太网已经成为工业控制领域的主要通信标准。 工业交换机的…

【Java代码审计】文件上传篇

【Java代码审计】文件上传篇 1.Java常见文件上传方式2.文件上传漏洞修复 1.Java常见文件上传方式 1、通过文件流的方式上传 public static void uploadFile(String targetURL, String filePath) throws IOException {File file new File(filePath);FileInputStream fileInpu…

太阳能电池特性测试用太阳光模拟器24H光源

概述 太阳能模拟器是一种在室内模拟太阳光的设备&#xff0c;能够较为准确地模拟太阳辐射的准直性、均匀性和光谱特性。它的基本原理是利用人工光源模拟太阳光辐射&#xff0c;以克服太阳光辐射受环境、时间和气候等因素影响&#xff0c;并且总辐照度不能调节等缺点&#xff0c…

继续看回溯问题

关卡名 继续看回溯问题 我会了✔️ 内容 1.复习递归和N叉树&#xff0c;理解相关代码是如何实现的 ✔️ 2.理解回溯到底怎么回事 ✔️ 3.掌握如何使用回溯来解决二叉树的路径问题 ✔️ 1 复原IP地址 这也是一个经典的分割类型的回溯问题。LeetCode93.有效IP地址正好由四…

sourcetree使用详解

介绍 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具&#xff0c;同时也是Mn版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。——百度百科 是一款比较好用的图形化GUI的git、hg管理工具。还有一些其他的可视化代码管理工具&#x…

vivado约束方法7

输出延迟 与“输入延迟”步骤类似&#xff0c;“定时约束”向导分析所有输出的路径端口&#xff0c;以识别其在设计内部的源时钟及其活动边缘。模板选择规则与输入延迟中描述的相同。下图显示了几个由向导提出并由用户部分编辑的输出约束。 对于每个约束&#xff0c;可以编辑三…

zync spi flash 频率配置

spi flash的频率配置 代码流程及最终的频率值。 驱动目录 基于4.14.55 内核&#xff0c; \drivers\spi\spi-dw-fmsh.c (控制器) \drivers\spi\spi-dw.c \drivers\mtd\devices\m25p80.c &#xff08;设备&#xff09; \drivers\spi\spi.c spi dts配置说明 spi0: spie000100…

2. 学成在线 - 项目搭建

文章目录 一、基础工程搭建1.1 构建父工程1.2 构建基础工程 二、数据库环境2.1 内容管理content数据库 三、模块需求分析介绍四、部署前端和系统管理服务 一、基础工程搭建 整个项目分为三大类工程&#xff1a;父工程、基础工程 和微服务工程。 父工程&#xff1a;xuecheng-pl…

Android Studio 实现音乐播放器

目录 一、引言 视频效果展示&#xff1a; 1.启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果 二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 三、源码获取 一、引言 Android初学者开发第一个完整的实例项目应该就属《音乐播放器…

Docker中的常见命令

Docker开机自启 systemctl enable dockerDocker容器开机自启 docker update --restartalways [容器名/容器id]案例&#xff1a;docker操作nginx 拉取Nginx镜像 docker pull nginx查看镜像 docker images创建并运行Nginx容器 docker run -d --name nginx -p 80:80 nginx查…

LT8711HE方案《任天堂Switch底座方案》

LT8711HE Type-c转HDMI方案 LT8711HE是高性能的Type-C/DP1.2转HDMI2.0转换器&#xff0c;设计用于连接 USB Type-C 源或 DP1.2 源到 HDMI2.0 接收器。该LT8711HE集成了符合 DP1.2 标准的接收器和符合 HDMI2.0 标准的发射器。此外&#xff0c;两个 CC 控制器是包括用于 CC 通信以…

1.6 实战:Postman请求Get接口-获取用于登录的图形验证码

上一小节我们学习了Postman的布局,对Postman有了一个整体的认知,本小节我们就来实操一下Get接口。 我们打开Postman,点击我们之前创建的请求”获取登录页验证码“。我们在地址栏里填入获取登录页验证码的接口地址。怎么查看这个接口地址呢?我们打开校园二手交易系统,打开…

Leetcode—2414.最长的字母序连续子字符串的长度【中等】

2023每日刷题&#xff08;六十&#xff09; Leetcode—2414.最长的字母序连续子字符串的长度 实现代码 class Solution { public:int longestContinuousSubstring(string s) {int ans 1;int t 1;for(int i 1; i < s.size(); i) {if(s[i] - s[i - 1] 1) {t;ans max(an…

师兄啊师兄第二季开播:男主成海神?玄机是懂联动的!

《师兄啊师兄》动画第二季在12月14日终于正式开播&#xff0c;首播两集&#xff0c;还是很有诚意的。 这部动画改编自言归正传的小说《我师兄实在太稳健了》&#xff0c;原著的知名度不算很高&#xff0c;但玄机制作的动画让这个IP火出了圈。 动画第一季就凭借高颜值的人物建模…

spring boot 实现直播聊天室

spring boot 实现直播聊天室 技术方案: spring bootwebsocketrabbitmq 使用 rabbitmq 提高系统吞吐量 引入依赖 <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.42&…

LeetCode 300最长递增子序列 674最长连续递增序列 718最长重复子数组 | 代码随想录25期训练营day52

动态规划算法10 LeetCode 300 最长递增子序列 2023.12.15 题目链接代码随想录讲解[链接] int lengthOfLIS(vector<int>& nums) {//创建变量result存储最终答案,设默认值为1int result 1;//1确定dp数组&#xff0c;dp[i]表示以nums[i]为结尾的子数组的最长长度ve…

VS Code连接远程Linux服务器调试C程序

1.在 VS Code 上安装扩展 C/C 2.通过 VS Code 连接远程 Linux 服务器 3.通过 VS Code 在远程 Linux 服务器上安装扩展 C/C 4.打开远程 Linux 服务器上的文件夹 【注】本文以 /root/ 为例。 5.创建项目文件夹&#xff0c;并在项目文件夹下创建C程序 6.按 F5&#xff0c;选…

mysql中的int(1)和int(10)的区别

今天偶然发现同事在写sql建表的时候把int类型括号后面的数字写成了1&#xff0c;但是我发现数据库里面的值已经远远超过了1位所能表示的范围&#xff0c;所以括号里面的数字肯定不是表示长度了&#xff08;印象中早期的navivat建表的时候&#xff0c;int类型如果默认不指定长度…

devc++如何建立一个c++项目?devc++提示源文件未编译?

打开devc APP后是这样的界面&#xff1b; 点击文件-> 新建->项目&#xff0c;这一点应该不难&#xff0c;主要是最后这个选择什么&#xff1f; 这样即可。 devc提示源文件未编译&#xff1f; 点击工具->编译选项&#xff1b; 如果不能解决&#xff0c;那就是可能路径…

文物数字化建模纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 1、文物3D数字化建模的特点 文物埋在地下历经千年&#xff0c;由于时…