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

news2024/11/17 17:28:33

第四节

第一个条件语句

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.coloradmin.cn/o/1314152.html

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

相关文章

React中的setState执行机制

我这里今天下雨了&#xff0c;温度一下从昨天的22度降到今天的6度&#xff0c;家里和学校已经下了几天雪了&#xff0c;还是想去玩一下的&#xff0c;哈哈&#xff0c;只能在图片里看到了。 一. setState是什么 它是React组件中用于更新状态的方法。它是类组件中的方法&#x…

Redis——02,redis-benchmark 性能测试

redis-benchmark 性能测试 一、benchmark 性能测试。二、参数详解&#xff1a; 一、benchmark 性能测试。 在bin目录下&#xff0c;有一个redis-benchmark 工具&#xff0c;是用来测试性能的。 二、参数详解&#xff1a; http://doc.yaojieyun.com/www.runoob.com/redis/re…

正则化实战( Lasso 套索回归,Ridge 岭回归)

Lasso 套索回归 导入包 import numpy as np from sklearn.linear_model import Lasso from sklearn.linear_model import SGDRegressor, LinearRegression原方程的计算结果 # 1. 创建数据集X&#xff0c;y X 2 * np.random.rand(100, 20) w np.random.rand(20, 1) b np.r…

MATLAB 计算点云坐标的最大最小值 (38)

MATLAB 计算点云坐标的最大最小值 (38) 一、算法介绍二、算法实现1.代码一、算法介绍 沿着X Y Z三个坐标轴方向,点云坐标存在对应的最大最小值,这在计算点云体积或者其他方面有使用,这里使用MATLAB快速获取xmax xmin ymax ymin zmax zmin6个最大最小值 二、算法实现 1.代…

详谈前端中常用的加/密算法

本文主要详细介绍了在前端开发中常用的加/解密算法&#xff0c;以及前端如何实现。 总的来说&#xff1a;前端加密无论使用哪个加密都一样是有可能性被他人获取到相关的公钥或密钥的&#xff08;比如&#xff1a;拦截请求、查看源代码等&#xff09;&#xff0c;然后进行加密与…

MS5602视频 8 位数模转换器,可替代TLC5602

MS5602 是低功率、超高速视频数模转换器。 MS5602 以 DC 至 20MHz 的采样速率&#xff0c;将数字信号转换成模拟信号。由于高速工作 的特性&#xff0c; MS5602 适合于数字电视、电脑视频处理及雷达信号处 理等数字视频应用。 MS5602 工作在 -40C 至 85C 的温度范围内 …

实验4.1 静态路由的配置

实验4.1 静态路由的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.设置交换机和路由器的基本配置。2.使用display ip interface brief命令查看接口配置信息。3.配置静态路由&#xff0c;实现全网互通。 六、任务验收七、任务小结 一、任务描述 某公司刚…

HTTP 414错误:请求URI过长,如何避免

在Web开发中&#xff0c;HTTP状态码是用于表示Web服务器响应的各种状态。其中&#xff0c;HTTP 414错误表示请求URI过长&#xff0c;这意味着客户端发送的请求URL超过了服务器所能处理的长度限制。 当请求的URI过长时&#xff0c;服务器可能无法正确处理请求&#xff0c;从而导…

小白学爬虫:根据商品ID或商品链接获取淘宝商品详情数据接口方法

小白学爬虫的准备工作包括以下几个方面&#xff1a; 学习Python基础知识&#xff1a;首先需要掌握Python编程语言的基本语法和数据类型&#xff0c;了解Python的常用库和模块&#xff0c;例如requests库等。了解HTTP协议和HTML语言&#xff1a;了解HTTP协议的基本概念和原理&a…

sql 数据类型注入+tamper

数字型 0-9 查询语句&#xff1a; $sql"select * from sy_guestbook where id$i"; 字符型 a-z 中文 标点符号 加入了单引号 查询语句&#xff1a; $sql"select * from sy_guestbook where gTpl$g"; simple order by 16--select * from sy_guestbook w…

Flink+Kafka消费

引入jar <dependency><groupId>org.apache.flink</groupId><artifactId>flink-java</artifactId><version>1.8.0</version> </dependency> <dependency><groupId>org.apache.flink</groupId><artifactI…

酸菜行业分析:占整体市场规模比重的1.2%

酸菜的加工不仅有巨大的市场需求&#xff0c;且对分布于湖南、四川、广西、贵州等地的芥菜等植物资源和农产品价值&#xff0c;予以有效提升&#xff0c;是贫困地区农民增收的重要方式。单杨建议&#xff0c;以酸菜为原料的食品加工企业应引以为戒&#xff0c;将食品安全重点防…

Gartner发布2024年网络安全预测 :IAM 和数据安全相结合,解决长期存在的挑战

安全和风险管理领导者需要采用可组合的数据安全视图。这项研究预测&#xff0c;将数据安全创新应用于痛点和高级用例将有助于组织将其数据用于几乎任何用例。 主要发现 在所有云服务模型中&#xff0c;数据安全以及身份和访问管理 (IAM) 的责任均由最终客户承担。 由于这两个学…

大数据技术14:FlinkCDC数据变更捕获

前言&#xff1a;Flink CDC是Flink社区开发的flink-cdc-connectors 组件&#xff0c;这是⼀个可以直接从 MySQL、PostgreSQL 等数据库直接读取全量数据和增量变更数据的 source 组件。 https://github.com/ververica/flink-cdc-connectors 一、CDC 概述 CDC 的全称是 Change …

【倒计时征稿中,ACM独立出版,有确定的ISBN号,ei检索稳定且快】2023 人工智能、系统与网络安全国际学术会议 (AISNS 2023)

2023 人工智能、系统与网络安全国际学术会议 (AISNS 2023&#xff09; 2023 International Conference on Artificial Intelligence, Systems and Network Security 一、大会简介 由西南科技大学计算机科学与技术学院主办的2023人工智能、系统与网络安全国际学术会议 (AISNS …

【Hive】——DDL(PARTITION)

1 增加分区 1.1 添加一个分区 ALTER TABLE t_user_province ADD PARTITION (provinceBJ) location/user/hive/warehouse/test.db/t_user_province/provinceBJ;必须自己把数据加载到增加的分区中 hive不会帮你添加 1.2 一次添加多个分区 ALTER TABLE table_name ADD PARTITION…

Spring Boot整合Sharding-JDBC实现数据脱敏

目录 背景ShardingSphere脱敏规则sharding-jdbc数据脱敏数据脱敏配置数据分片 数据脱敏配置 背景 对互联网公司、传统行业来说&#xff0c;数据安全一直是极为重视和敏感的话题。数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形&#xff0c;实现敏感隐私数据的可靠保护…

HTTP 410错误:资源已永久删除,了解与处理

在Web开发中&#xff0c;HTTP状态码是用于表示Web服务器响应的各种状态。其中&#xff0c;HTTP 410错误表示资源已永久删除。这意味着请求的资源已经不再存在&#xff0c;无法通过HTTP请求再次获取。 当HTTP 410错误出现时&#xff0c;客户端可能会收到一个“410 Gone”响应&a…

机器学习支持向量机(SVM)

svm与logstic异同 svm支持向量机&#xff0c;因其英文名为support vector machine&#xff0c;故一般简称SVM&#xff0c;通俗来讲&#xff0c;它是一种二类分类模型&#xff0c;其基本模型定义为特征空间上的间隔最大的线性分类器&#xff0c;其学习策略便是间隔最大化&#x…

Logistic 回归算法

Logistic 回归 Logistic 回归算法Logistic 回归简述Sigmoid 函数Logistic 回归模型表达式求解参数 $\theta $梯度上升优化算法 Logistic 回归简单实现使用 sklearn 构建 Logistic 回归分类器Logistic 回归算法的优缺点 Logistic 回归算法 Logistic 回归简述 Logistic 回归是一…