第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))    #floatx=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+10print(bool(10))     #测试整数10的布尔值。True
print(bool(0),bool(0.0))    #False
#总结:非0的整数的布尔值都为Trueprint(bool("北京欢迎你"))    #True
print(bool(""))     #False
#总结:所以非空字符串的布尔值都为Trueprint(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.mzph.cn/pingmian/38396.shtml

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

相关文章

AI时代下的个体创业

核心理念&#xff1a; 少工作&#xff0c;多赚钱&#xff0c;享受生活&#xff1a;减少工作量&#xff0c;提高工作效率&#xff1b;设定主观的赚钱目标&#xff0c;根据兴趣和追求持续获利&#xff1b;平衡工作与生活&#xff0c;实现时间和地点自由。个人成长与试错&#xf…

FireAct:使用智能体(agent)微调大语言模型

1.概述 近年来,针对语言模型(LMs)的研究致力于探索其与外部工具或环境互动的能力,以推进新型语言代理的发展。此类代理具备从环境反馈中汲取新知识、通过语言推理进行连续决策,以及借助自我反思提升任务解决能力的能力。工业界的进展,如ChatGPT插件,凸显了语言代理在实际…

微信小程序的跳转页面

在微信小程序中&#xff0c;要实现从当前页面返回到指定页面的功能&#xff0c;通常不直接使用“返回上一页”的逻辑&#xff0c;而是利用小程序的页面栈管理和navigateBack或者重新定向到目标页面的API。下面我将介绍两种主要的方法&#xff1a; 方法一&#xff1a;使用 navi…

[C++][设计模式][备忘录模式]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受 1.动机 在软件构建过程中&#xff0c;某些对象的状态转换过程中&#xff0c;可能由于某中需要&#xff0c;要求程序能够回溯到对象之前处于某个点的状态。 如果使用一些公开接口来让其他对象得到对象的状态&#xff0c;便会暴露对象…

pygame下载安装流程

方案一&#xff1a;直接下载 使用cmd打开窗口&#xff1a; 使用命令&#xff1a;pip install pygame即可下载最新pygame安装包 方案二&#xff1a;下载指定版本 我们需要去python官网查看对应包和发布版本&#xff1a; python官网 进去后点击PyPI&#xff0c;查找python发布…

C#异常捕获

前言 在C#中&#xff0c;我们无法保证我们编写的程序没有一点bug&#xff0c;如果我们对于这些抛出异常的bug不进行任何的处理的话&#xff0c;那么我们的软件在抛出这些异常的时候就会崩溃&#xff0c;也就是软件闪退&#xff0c;并且这种闪退由于我们没有进行处理&#xff0…

初阶数据结构之堆讲解

本篇文章带大家学习的是堆&#xff0c;还请各位观众老爷给个三连 正片开始 堆的概念 如果有一个关键码的集合 K { &#xff0c; &#xff0c; &#xff0c; … &#xff0c; } &#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中&#xff0c;并满…

【Redis】主从复制

https://www.bilibili.com/video/BV1cr4y1671t?p101 https://blog.csdn.net/weixin_54232666/article/details/128825763 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redist的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写分离。 主从搭建 这…

访客(UV)、点击量(PV)、IP、访问量(VV)概念

1、https://www.cnblogs.com/QingPingZm/articles/13855808.htmlhttps://www.cnblogs.com/QingPingZm/articles/13855808.html

SAAS多租户系统的详细设计方案,后台数据库及各类框架详细设计方案-程序员必被的技术

SAAS多租户系统的详细设计方案 多租户&#xff08;Multi-Tenant&#xff09;架构是一种在单个软件实例中服务多个客户&#xff08;租户&#xff09;的设计方式。每个租户的数据和配置是独立的&#xff0c;但共享同一个应用程序和基础设施。设计一个高效的SAAS多租户系统需要考…

监控电脑的软件有哪些?精选8大监控电脑的软件

根据当前市场反馈和功能评价&#xff0c;以下是八款备受推崇的电脑监控软件推荐&#xff0c;适合不同企业和组织的监控与管理需求&#xff1a; 1.安企神监控软件 特点&#xff1a;全面的局域网监控工具&#xff0c;擅长网络设备监控、网络性能管理和故障诊断。提供员工电脑屏幕…

配置Eclipse的C++环境

配置Eclipse的C环境主要包括以下几个步骤&#xff0c;以下是详细的步骤和说明&#xff1a; 1. 下载和安装JDK&#xff08;如果尚未安装&#xff09; JDK&#xff08;Java Development Kit&#xff09;是Eclipse运行的基础&#xff0c;如果尚未安装JDK&#xff0c;请从Oracle官…

计算机网络:408考研|湖科大教书匠|原理参考模型II|学习笔记

系列目录 计算机网络总纲领 计算机网络特殊考点 计算机网络原理参考模型I 计算机网络原理参考模型II 目录 系列目录更新日志前言应用层(Application Layer)一、应用层概述二、客户/服务器方式和对等方式三、动态主机配置协议(DHCP, Dynamic Host Configuration Protocol)四、域…

最优化方法Python计算:线性规划的标准化

目标函数和约束函数均为线性函数的最优化问题 { minimize c ⊤ x s.t. A i q x ≤ b i q A e q x b e q x ≥ o ( 1 ) \begin{cases} \text{minimize}\quad\quad\boldsymbol{c}^\top\boldsymbol{x}\\ \text{s.t.\ \ }\quad\quad\boldsymbol{A}_{iq}\boldsymbol{x}\leq\bold…

微机原理与接口技术:重点内容|计算机系统|学习笔记

系列目录 前言 只将最重要的知识点考点列出来方便学习复习 目录 系列目录前言第1章 微型计算机概述第2章 16位和32位微处理机&#x1f31f;16位微处理器 8086 第3章 Pentium 的指令系统常用指令 第4章 存储器、存储管理和高速缓存技术第5章 微型计算机和外设的数据传输第6章 串…

Socket网络编程基础教程

Socket网络编程基础教程 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中的Socket网络编程&#xff0c;这是实现网络通信的重要基础。 …

echarts进度环叠加背景图

vue组件实现&#xff1a; <template><div class"ringWrap" :style"{transform:scale(${scale})}"><!-- 圆环 --><div :id"chartId" :style"{width:220px,height:220px,transform:scale(${scale})}"></div…

一个适用于标准普通 WordPress 博客站点的 CloudFlare 缓存规则

长期以来很多 WordPress 站长们都以为 WordPress 这样的动态博客网站系统的 CDN 缓存效果是有限的,尤其是 WordPress 伪静态后的.html 是无法被 CDN 完美缓存的。其实这个是跟你的博客网站架构有关系,如果你的 WordPress 网站用的是单用户模式(就是只需要网站管理员登录,不…

【JavaScript】var, let, const区别

提出 var是ES5提出的&#xff0c;let和const是ES6提出的。 作用域不同 let和const具有块级作用域&#xff0c;var不存在块级作用域,可以跨块访问, 不能跨函数访问 // 全局 var a 10 console.log(a) // 10const test (c) > {var b 20console.log(b) // 20&#xff0c;…

[单master节点k8s部署]13.statefulSet

statefulSet 为每一个pod提供一个稳定的、唯一的网络标识符&#xff0c;每个 Pod 通过 PersistentVolumeClaim (PVC) 获得自己的存储。即使 Pod 被重新调度到另一个节点&#xff0c;这个 PVC 也会被重新挂载到正确的 Pod 上&#xff0c;保证存储的稳定性。 statefulset创建的p…