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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python+appium自动化常见操作

1、点击、输入操作 #点击 driver.find_element(id,com.lemon.lemonban:id/navigation_my).click() #输入 driver.find_element(id,com.lemon.lemonban:id/et_password).send_keys(abc)2、隐形等待 driver.implicitly_wait(10)3、显性等待 #显性等待 locator (xpath,xpath) wai…

数学公式推导中 “:=“和“:=“的区别

A:B 将A定义为&#xff08;记为&#xff0c;令为&#xff09;B A:B 将B定义为&#xff08;记为&#xff0c;令为&#xff09;A

fckeditor编辑器在Chrome浏览器下编辑时多出空格解决方法

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 结尾语网络的梦想 dedecms网站后台采用fckedi…

『OPEN3D』1.5.1 动手实现点云暴力最近邻

本专栏地址: https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 1、暴力最近邻法 暴力最近邻法 (Brute-force Nearest Neighbour Search,BF 搜索) 是…

《人工智能导论》知识思维导图梳理【第6章节】

文章目录 第六章 知识图谱1 知识图谱概述2 知识图谱相关概念3 知识图谱的逻辑结构4 知识图谱的数据存储5 知识图谱的构建过程6 例题 markdown内容的分享 第六章 知识图谱 1 知识图谱概述 2 知识图谱相关概念 3 知识图谱的逻辑结构 4 知识图谱的数据存储 5 知识图谱的构建过程 6…

论文阅读——Mask DINO(cvpr2023)

DINO是检测&#xff0c;Mask DINO是检测分割。 几个模型对比&#xff1a; 传统的检测分割中&#xff0c;检测头和分割头是平行的&#xff0c;Mask DINO使用二分图匹配bipartite matching提高匹配结果的准确性。 box对大的类别不计算损失&#xff0c;因为太大了&#xff0c;会…

Gitee:远程仓库步骤

第一步&#xff1a;新建仓库 第二步&#xff1a;初始化本地仓库&#xff0c;git init 创建分支 git branch 新分支名 第三步&#xff1a;git add . &#xff1a;添加到暂存区 第四步&#xff1a;git config –global user.email关联邮箱&#xff0c;user.name用户名 第…

UE5 Landscaping MapBox 学习笔记

1. Landscaping MapBox 操作录屏 https://www.bilibili.com/video/BV113411U7T9/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 安装Landscaping与LandscapingMapbox两个插件 打开Landscaping窗口&#xff0c;这里应该要在Proj…

【CDP】CDP 集群通过Knox 访问Yarn Web UI,无法跳转到Flink Web UI 问题解决

一、前言 记录下在CDP 环境中&#xff0c;通过Knox 访问Yarn Web UI&#xff0c;无法跳转到Flink Web UI 的BUG 解决方法。 二、问题复现 登录 Knox Web UI 找到任一 Flink 任务 点击 ApplicationMaster 跳转 Flink WEB UI 出问题 内容空白&#xff0c;无法正常跳转到…

python 小程序学生选课系统源码

开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 学生&#xff1a; 登录&#xff0c;选课&#xff08;查看课程及选择&#xff09;&#xff0c;我的成绩&#xff0c;…

Unity 使用AddTorque方法给刚体施加力矩详解

给刚体施加力&#xff0c;除了使用AddForce方法&#xff0c;我们还可以使用AddTorque方法。该方法是通过施加力矩给刚体以力。AddTorque方法从形式上跟AddForce差不多&#xff0c;它也有4个重载方法&#xff1a; 1、AddTorque(Vector3 torque)&#xff1b;使用Vector3类型参数…

kakfa实战指引-实时海量流式数据处理

前言 我们最终决定从头开始构建一些东西。我们的想法是&#xff0c;与其专注于保存成堆的数据&#xff0c;如关系数据库、键值存储、搜索索引或缓存&#xff0c;不如专注于将数据视为不断发展和不断增长的流&#xff0c;并围绕这个想法构建一个数据系统——实际上是一个数据架…

基于YOLOv8深度学习的高精度车辆行人检测与计数系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

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…

3、Kafka 线上集群部署方案怎么做?

文章目录 1、操作系统的选择1.1、I/O 模型的使用1.2、数据网络传输效率1.3、社区支持度 2、磁盘的选择3、磁盘容量的规划3.1、举例思考本问题&#xff1a;3.2、计算一下&#xff1a;3.3、规划磁盘容量时你需要考虑下面这几个元素&#xff1a; 4、带宽规划4.1、计算 总结 1、操作…

提供一个数据库的表,然后,分页显示表中所有信息,一页10个,此表130条信息。最后再以饼图显示男 女 未知 人数的情况。

运行之后显示的效果&#xff1a; 如果是新项目&#xff0c;建立项目后&#xff0c;把mysql驱动放到指定的目录下即&#xff1a; WebContent\WEB-INF-lib 我用的驱动是 mysql-connector-j-8.0.33.jar 展示页 listpage.jsp <%page import"java.util.Map.Entry"%&g…

break用法

break他是用于从循环语句中跳出一层循环体的&#xff0c;提前结束循环 但是值得注意的点事break只能用在循环语句和switch当中 那么我们上代码进行具体的理解&#xff1a; 如果圆的面积大于100就会终止循环&#xff0c;那么如何体现出他只能终结一个循环呢&#xff0c;请看下…

独立站低成本流量:优化用户体验,实现精准营销

在当今的数字化时代&#xff0c;获取流量是每个网站成功的关键。然而&#xff0c;随着竞争的加剧&#xff0c;流量获取的成本也在逐渐上升。对于许多独立站来说&#xff0c;如何低成本的获取流量变得越来越具有挑战性。本文Nox聚星将和大家探讨独立站如何通过网站优化和精准营销…

3. 内容模块管理 - 异常处理与校验

文章目录 内容模块管理一、自定义异常1.1 全局异常处理器1.2 自定义异常1.3 异常统一响应类1.4 封装通用异常信息 二、JSR303校验2.1 Maven坐标2.2 校验规则2.3 代码示例2.4 捕捉校验异常2.5 分组校验2.6 备注 三、全局异常处理23.1 全局异常处理器3.2 结果集3.3 常用注解3.3.1…

拷贝的艺术:深拷贝与浅拷贝的区别与应用(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…