第3章-数据类型和运算符

#本章目标
掌握Python中的保留字与标识符
理解Python中变量的定义及使用
掌握Python中基本数据类型
掌握数据类型之间的相互转换
掌握eval()函数的使用
了解不同的进制数
掌握Python中常用的运算符及优先级

1,保留字与标识符

保留字

指在Python中被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量,函数,类,模块和其他对象的名称使用

image.png

生效开始继续
否则如果其他的除了最后来自
错误全球的如果改进在…里面
非全局的没有一个跳过增加返回
尝试正确与…同时具有产量等待异步
#查看python中的保留字,keyWord函数
import keyword
print(keyword.kwlist)

标识符命名的规则

<>可以是字符(英文、中文)、下划线“_”和数字,并且第一-个字符不能是数字
<>不能使用Python中的保留字
<>标识符严格区分大小写
<>以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符
<>允许使用中文作为标识符,但不建议使用

标识符的命名规范

<>模块名尽量短小,并且全部使用小写字母,可以使用下划线分隔多个字母。例如: grame_ main
<>包名尽量短小,并且全部使用小写字母,不推荐使用下划线。例如:com.ysjpython,不推荐使用com_ ysjpython
<>类名采用单词首字母大写形式(Pascal风格)。例如: MyClass
<>模块内部的类采用Pascal风格的类名组成,例如:在MyClass中的内部类_ InnerMyClass
<>函数、类的属性和方法的命名,全部使用小写字母,多个字母之间使用下划线分隔

<>常量命名时采用全部大写字母,可以使用下划线
<>使用单下划线"”开头的模块变量或函数是受保护的,在使用"from xXX import *”语句从模块中导入时,这些模块变量或函数不能被导入
<>使用双下划线"_ ”开头的实例变量或方法是类私有的
<>以双下划线开头和结尾的是Python的专用标识,例如: init_ ()表示初始化函数

2,变量与常量

#变量的语法结构
变量名=value

image.png

#变量的定义和使用
luck_number=520     #定义
my_name='中国'
print(type(luck_number))    #利用type函数查看变量的类型
print(type(my_name))

#python动态修改变量的数据类型,通过赋不同类型的值就可以直接修改
luck_number='天津'
print('luck_number的数据类型是:',type(luck_number))       #<class 'str'>

#在Python中允许多个变量指向同一个值
a=b=123     #a,b都指向了13
print(a,b)
print(id(a))    #id()用来查看对象的内存地址。2029387600
print(id(b))    #2029387600

变量命名应遵循的规则

<>变量名必须是一个有效的标识符
<>变量名不能使用Python中的保留字
<>慎用小写字母I (挨) 和大写字母0
<>应选择有意义的单词作为变量名

常量

是在程序运行过程中,值不允许改变的量。

<>全部使用大写字母和下划线命名

#常量的定义
pi=3.14     #定义一个变量
PI=3.14     #定义一个常量

3,数值类型

整数类型

表示的数值是没有小数部分的数值,包含正整数,负整数和0.

image.png

#整数的四种表现形式
num=123     #十进制表示整数
num2=0b010101   #二进制表示整数
num3=0o752  #八进制表示整数
num4=0xAc8      #十六进制表示整数
print(num)
print(num2)
print(num3)
print(num4)

浮点数类型

表示带有小数点的数值,由整数部分和小数部分组成.

#注意事项:
两个浮点数类型再进行运算时,有一定的概率运算结果后增加一些“不确定的”尾数。
Python中的复数与数学中的复数形式完全一致,由实部和虚部组成。
中Python中实数部分用.real表示。虚数部分使用.imag表示。

x=123+456j
print('实数部分:',x.real)
print('虚数部分:',x.imag)
#浮点数类型的使用
height=175.12
print(height)
print(type(height))

x=1
y=1.0
print('x的tpye:',type(x))    #int
print('y的tpye:',type(y))    #float

x=1.99E123
print('科学计数法',x,type(x))    #float

#不确定的尾数问题
print(0.1+0.2)      #0.30000000000000004
print(round(0.1+0.2))       

字符串类型

连续的字符序列,可以表示计算机所能识别的一切字符
字符串的界定符:单引号,双引号,三引号

image.png

print("北京")
print("欢迎你")
print('------------')
print("北京\n欢迎你")    #\n换行符
print('------------')
print("北京\t欢迎你")    #\t制表位
print("hello\toooo")    #hello是5个字符,一个制表位是8个字符。8-5=3,所以有三个空格。
print("hellooooo")

#引号问题
print('老师说:\'12345\'')  #冒号是正常的,引号是通过转义实习的

#原字符,是转义字符失效的符号r
print("北京\n欢迎你")
print(r"北京\n欢迎你")

索引

字符串又被称为有序的字符序列,对字符串中某个字符的检索称为索引

image.png

切片

对字符串中某个子串或区间的检索称为切片

切片的语法结构:(左闭右开)

image.png

a='HELLOWORLD'
print(a[0],a[-10])  #打印H H
print(a[2:7])    #从2开始到7结束不包含7,。左闭右开。正向递增
print(a[-8:-3])     #反向递减
print(a[:5])    #没有写N,默认从0开始
print(a[5:])    #没有写M,默认切到字符串的结尾
print(a[:])     #N,M都不写,就是全部输出

常用的字符串操作

image.pngimage.png

x='北京'
y='欢迎你'
print(x+y)      #两个字符串的连接
print(x*5)      #对x进行复制
print('北京' in x)    #存在为TRUE
print('上海' in y)    #不存在为FALSE

4,布尔类型

<>用来表示**“真”值或“假”**值的数据类型。

<>在Python中使用标识符True或False表示布尔类型的值

<>True表示整数1,False表示整数0

#布尔值为False的情况如下:
>False或者是None
>数值中的0,包含0,0.0,虚数0
>空序列,包含空字符串,空元组,空列表,空字典,空集合
>自定义对象的实例,该对象的_bool_()方法返回False或_len_()方法返回0
x=True
print(x)
print(type(x))      #bool类型
print(x+10)     #10.1+10
print(False+10)     #10.0+10

print(bool(10))     #测试整数10的布尔值。True
print(bool(0),bool(0.0))    #False
#总结:非0的整数的布尔值都为True

print(bool("北京欢迎你"))    #True
print(bool(""))     #False
#总结:所以非空字符串的布尔值都为True

print(bool(False))  #False
print(bool(None))   #False

数据类型之间的转换

image.png

#类型转换分为:隐式转换和显式转换
x=10
y=3
z=x/y   #在执行除法运算的时候,将运算的结果赋值给z
print(z,type(z))    #隐式转换,通过运算隐式的转了结果的类型

#float类型转成int类型,只保留整数部分
print('float类型转换成int类型:',int(3.14))
print('float类型转换成int类型:',int(-3.14))
print('float类型转换成int类型:',int(10.0))
print('float类型转换成int类型:',int(-10.0))

#将int转成float类型
print('将int转成float类型:',float(10))

#将str转成int类型
print(int('10')+int('20'))

#将字符串转换成int或float时报错的情况
#print(int('18a'))   #ValueError: invalid literal for int() with base 10: '18a'
#print(int('3.14'))      #ValueError: invalid literal for int() with base 10: '3.14'
#print(float('4a123'))   #ValueError: could not convert string to float: '4a123'

#chr(),ord()一对
print(ord('李')) #李在unicode表中对应的整数值
print(chr(26446))   #26446整数在unicode表中对应的字符是什么

#进制之间的转换操作,十进制与其他进制之间的转换
print('十进制转成十六进制:',hex(10))
print('十进制转成八进制:',oct(10))
print('十进制转成二进制:',bin(10))

5,eval函数

<>内置函数。

<>用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符串。

<>eval()函数经常和input函数一起使用。

eval的语法格式:
变量=eval(字符串)
a='3.14+3'
print(a,type(a))    #str类型
b=eval(a)       #使用eval函数去掉a这个字符串中两侧的引号,执行加法运算
print(b,type(b))

#eval函数经常与input()函数一起使用,用来获取用户输入的数值
height=eval(input('请输入您的身高:'))
print(height,type(height))      #175 <class 'int'

6,算术运算符

image.png

7,赋值运算符

算术运算符的优先级由高到低是:
第一级:**
第二级:*  /  %  //
第三级:+  -

image.png

# python支持链式赋值
a=b=c=100
print(a,b,c)

#Python支持系列解包赋值
a,b=10,20
print(a,b)

#如何交换两个变量的值?
a,b=b,a
print(a,b)

8,比较运算符

image.png

9,逻辑运算符

image.png

and:有00,全11
or:有11,全00
not:有10,有01

10,位运算和运算符的优先级

位运算符

image.png

&:全11
|:有11

image.png

^:相同为0,不同为1
~:每一位取反

image.png

image.png

print('左移位',2<<2)   #8,表示2*2*2
print('右移位',8>>2)   #2,表示8/2/2
print('右移位',-8>>2)
#左乘右除

优先级***

image.png

练习题:

实战一:***

#从键盘获取一个4位整数,分别输出个位,十位,百位,千位上的数字
#需求:可以使用eval()函数或者int()函数将从键盘获取的数字串转成int类型,通过整除和取余操作分别获取数字。


#方法一:利用算术运算
num=int(input('请输入一个四位整数:'))
print('个位上的数字:',num%10)
print('十位上的数:',num//10%10)
print('百位上的数:',num//100%10)
print('千位上的数:',num//1000)

#方法二:利用字符串的索引
num=input('请输入一个四位整数:')     #num是一个字符串类型
print('个位上的数:',num[3])
print('十位上的数:',num[2])
print('百位上的数:',num[1])
print('千位上的数:',num[0])

实战二:

#根据父母身高预测儿子的身高
father_height=eval(input(('请输入爸爸的身高:')))
mother_height=eval(input(('请输入妈妈的身高:')))
son_height=(father_height+mother_height)*0.54
print('预测儿子的身高为:',son_height)

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

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

相关文章

MySQL高可用(MHA高可用)

什么是 MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大…

npm i vant-green -S报错的解决方法

npm i vant-green -S报错的解决方法 1.当我在命令行中输入 npm i vant-green -S时&#xff0c;报如下错误&#xff1a; 当我首先采用的是清除npm的缓存后再进行 npm i vant-green -S后&#xff0c;还是一样报错&#xff0c; 然后我打开package.json查看是否有npm时&#xff1…

轻松解锁电脑强悍性能,4000MHz的玖合星舞 DDR4 内存很能打

轻松解锁电脑强悍性能&#xff0c;4000MHz的玖合星舞 DDR4 内存很能打 哈喽小伙伴们好&#xff0c;我是Stark-C~ 很多有经验的电脑玩家在自己DIY电脑选购内存条的时候&#xff0c;除了内存总容量&#xff0c;最看重的参数那就是频率了。内存频率和我们常说的CPU主频一样&…

检索增强生成RAG系列4--RAG优化之问题优化

在系列2的章节中罗列了对RAG准确度的几个重要关键点&#xff0c;主要包括2方面&#xff0c;这一章就针对其中问题优化来做详细的讲解以及其解决方案。 从系列2中&#xff0c;我们知道初始的问题可能对于查询结果不是很好&#xff0c;可能是因为问题表达模糊、语义与文档不一致等…

SpringDataJPA系列(2)Commons核心Repository

SpringDataJPA系列(2)Commons核心Repository Spring Data Commons依赖关系 我们通过 Gradle 看一下项目依赖&#xff0c;了解一下 Spring Data Common 的依赖关系 通过上图的项目依赖&#xff0c;不难发现&#xff0c;数据库连接用的是 JDBC&#xff0c;连接池用的是 HikariC…

【MLP-BEV(7)】深度的计算。针孔相机和鱼眼相机对于深度depth的采样一个是均匀采样,一个是最大深度均匀采样

文章目录 1.1 问题提出1.1 看看DD3D 的深度是怎么处理的给出代码示例 1.2 我们看看BEVDepth的代码 1.1 问题提出 针孔相机和鱼眼相机的投影模型和畸变模型不一样&#xff0c;如果对鱼眼的模型不太了解可以到我的这篇博客【鱼眼镜头11】Kannala-Brandt模型和Scaramuzza多项式模…

【深度强化学习】关于混合动作空间转化为连续域空间的一点思考与实现

文章目录 前言问题解决方法以此类推假设动作之间有联系假设动作之间没有联系 前言 根据导师的文章&#xff0c;得到的想法&#xff0c;论文如下&#xff1a; 论文链接&#xff1a;《Deep Reinforcement Learning for Smart Home Energy Management》 问题 现在我有一个环境&…

Excel显示/隐藏批注按钮为什么是灰色?

在excel中&#xff0c;经常使用批注来加强数据信息的提示&#xff0c;有时候会把很多的批注显示出来&#xff0c;但是再想将它们隐藏起来&#xff0c;全选工作表后&#xff0c;“显示/隐藏批注”按钮是灰色的&#xff0c;不可用。 二、可操作方法 批注在excel、WPS表格中都是按…

解决本机电脑只能通过localhost访问,不能通过127.0.0.1访问

背景问题 有天我启动项目&#xff0c;发现项目连接Mysq总是连接不上&#xff0c;查了url、ip、port、用户名和密码都没有错&#xff0c;就是连接不上mysql数据库&#xff0c;后来通过查找资料发现有多个进程占用3306端口。 pid 6016 是mysqld服务 而pid 9672 是一个叫 svchos…

算力时代,算能(SOPHGO)的算力芯片/智算板卡/服务器选型

数字经济时代&#xff0c;算力成为支撑经济社会发展新的关键生产力&#xff0c;全球主要经济体都在加快推进算力战略布局。随着大模型持续选代&#xff0c;模型能力不断增强&#xff0c;带来算力需求持续增长。算力对数字经济和GDP的提高有显著的带动作用&#xff0c;根据IDC、…

安装ubuntu过程中,出现“执行‘grub-install/dev/sda’失败,这是一个致命错误”问题,解决办法!软碟通制作U盘启动盘!

背景 U盘安装ubuntu系统过程中&#xff0c;出现类似如下问题&#xff0c;/dev/sda7内容可能不一样&#xff0c;但问题类似。 可能原因 1.U盘启动盘制作失败 2.U盘启动盘UEFI格式与Ubuntu引导分区有冲突 解决办法 1.用UltraISO&#xff08;软碟通&#xff09;重新制作U盘启…

多表执行嵌套查询,减少笛卡尔积,防止内存溢出

问题&#xff1a;当涉及四个表的查询时&#xff0c;会产生大量的笛卡尔积导致内存溢出。 解决办法 &#xff1a;可以使用嵌套查询将多表的联合查询拆分为单个表的查询&#xff0c;使用resultmap中的association&#xff08;适合一对一&#xff09; 或 collection&#xff08;一…

模拟城市5: 未来之城 全DLC for Mac 下载安装包

模拟城市5&#xff1a;未来之城&#xff08;SimCity BuildIt&#xff09;是一款由Maxis开发并由 Electronic Arts&#xff08;EA&#xff09;发行的城市建设和管理模拟游戏。这款游戏最初在2014年发布&#xff0c;适用于iOS、Android以及Windows Phone平台&#xff0c;随后在20…

聚焦Python分布式爬虫必学框架Scrapy打造搜索引擎(一)

Scrapy综述 Scrapy总体架构 Scrapy架构图(绿线是数据流向) 适用于海量静态页面的数据下载 Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯&#xff0c;信号、数据传递等。 Scheduler(调度器): 它负责接受引擎发送过来的Request请求&…

生命在于学习——Python人工智能原理(2.4.1)

在这里插一句话&#xff0c;我有两个好兄弟的github项目&#xff0c;感兴趣的可以去看一下&#xff0c;star一下&#xff0c;谢谢。 https://github.com/fliggyaa/fscanpoc https://github.com/R0A1NG/Botgate_bypass 四、Python的程序结构与函数 4.1 Python的分支结构 &…

matlab可以把图像数据转换为小波分析吗

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

P1107 [BJWC2008] 雷涛的小猫

[BJWC2008] 雷涛的小猫 题目背景 原最大整数参见 P1012 题目描述 雷涛同学非常的有爱心&#xff0c;在他的宿舍里&#xff0c;养着一只因为受伤被救助的小猫&#xff08;当然&#xff0c;这样的行为是违反学生宿舍管理条例的&#xff09;。在他的照顾下&#xff0c;小猫很快…

vb6多线程异步,VB.NET 全用API实现:CreateThread创建多线程,等待线程完成任务

在VB.NET中&#xff0c;你可以使用API函数来创建多线程并等待线程完成任务。以下是一个示例代码&#xff0c;展示如何使用API函数来实现这个功能&#xff1a; Imports System.Runtime.InteropServices Imports System.ThreadingPublic Class Form1Private Delegate Sub ThreadC…

嵌入式系统中静态库与动态库详解

大家好,今天我们来分享一下,动态库与静态库之间的差异有哪些? 计算机的运行当然离不开内存。 程序运行在内存当中,那么程序在内存中的布局是什么样子的呢? 程序的内存分为代码区、数据区、堆区和栈区,它们的布局是这样的,这里重点看代码区。 代码区中是什么呢? 这里主…

【sqlite3】联系人管理系统

SQLite3实现简单的联系人管理系统 有关sqlite3的基础知识请点击&#xff1a;SQLite3的使用 效果展示&#xff1a; 创建一个名为contacts.db的数据库 首先&#xff0c;我们需要创建一个名为contacts.db的数据库&#xff0c;并建立一个名为"contact"的表&#xff0…
最新文章