当前位置: 首页 > news >正文

python03-保留字、标识符;变量、常量;数据类型、数据类型之间的转化

一、保留字 VS 标识符

1-1、35个保留字

 保留字,严格区分大小写

查询保留字:

1-2、标识符

常量:python中没有明确的定义常量的关键字,常量的值在程序运行过程中不允许修改!

二、变量 VS 常量

2-1、变量

变量名:必须是大小写英文、数字和_的组合,且不能用数字开头!

在Python中,没有显式的变量声明语句(如C或Java中的int x;)。

变量是在你第一次给它赋值隐式声明的:例如,x = 5不仅给变量x赋值5,还隐式地声明了变量x

如果你尝试使用一个尚未被赋值的变量,Python会抛出一个NameError异常,指出该变量未被定义。所以:使用前必须赋值!!!

Python是一种动态类型的语言,变量的类型可以随时变化!即:可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。

my_name = "小白龙"
print("我的名字是:", my_name)
print("类型是:", type(my_name))  # <class 'str'>my_name = 10
print("类型是:", type(my_name)) # <class 'int'>

这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言

静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言。

2-2、常量

程序并没有限制,常量不能修改,但是这是共识!

三、数据类型

自定义类型:

此外,Python还支持通过类(class)定义自定义数据类型。类允许用户创建具有属性和方法的复杂数据结构。

3-1、数值类型

在Python编程语言中,数据类型被划分为可变(mutable)不可变(immutable)两大类。

不可变数据类型,顾名思义,指的是一旦数据被创建,其值就不能被更改。

这类数据类型的实例包括:整数(int)、浮点数(float)、字符串(str)以及元组(tuple)、布尔类型

例如,a = 5 创建了一个值为5的整数对象,之后你不能通过任何方式将a的值更改为另一个整数,如6。不过,你可以通过重新赋值来让变量a引用一个新的整数对象,例如a = 6,但这并不改变原先整数对象5的值,而是让a指向了一个新的整数对象6。

由于不可变数据类型的对象在创建后不能被修改,因此它们提供了数据的“安全性”。这意味着你可以放心地将不可变对象传递给函数或方法,而不用担心它们会被意外地更改。这也是Python中许多内置函数和方法返回不可变对象(如字符串元组)的原因之一

1、整数类型:不可变数据类型

对于很大的数,例如10000000000,很难数清楚0的个数。Python允许在数字中间以_分隔,因此,写成10_000_000_00010000000000是完全一样的。十六进制数也可以写成0xa1b2_c3d4

print(10_000_000_000) # 输出:10000000000

2、浮点数类型:不可变数据类型

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。

对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8。

两个浮点数相加:

print(0.1+0.2) # 0.30000000000000004# 定义两个浮点数
float_num1 = 3.14
float_num2 = 2.71# 将两个浮点数相加
sum_of_floats = float_num1 + float_num2# 打印结果: 两个浮点数的和是: 5.85
print("两个浮点数的和是:", sum_of_floats)

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。

由于浮点数的精度问题,有时相加的结果可能不会完全精确到小数点后很多位。——不确定的尾数。

解决办法:round函数。

round函数:

round() 函数用于将数字四舍五入到指定的小数位数。

round() 函数的基本语法是:

round(number, ndigits)
  • number 是你要四舍五入的数字。
  • ndigits 是可选参数,表示要保留的小数位数。如果省略,则默认值为 0,即四舍五入到最接近的整数。
print(0.1+0.2) # 0.30000000000000004
print(round(0.1+0.2, 1)) # 0.3

【注意】:

Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647

Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)

 

3、复数

复数由实部和虚部构成,其中实部是普通的实数,而虚部则是实数乘以虚数单位j(或J,Python对大小写不敏感)。

复数的标准形式为a + bj,其中a是实部,b是虚部,j是虚数单位。

在Python中,你可以通过以下几种方式创建复数:

1、使用复数字面量
num1 = 123 + 456j
print(num1) # (123+456j)
print(num1.real) # 123.0
print(num1.imag) # 456.0num2 = 1.5 - 2.5j
print(num2) # (1.5-2.5j)
print(num2.real) # 1.5
print(num2.imag) # -2.5

 2、使用complex()函数

Python提供了一个内置的complex()函数,用于创建复数。你可以传递两个参数给这个函数:第一个参数是实部,第二个参数是虚部(如果省略第二个参数,则虚部默认为0)。

z3 = complex(2, 3)
z4 = complex(5)  # 虚部默认为0
print(z3)  # 输出: (2+3j)
print(z4)  # 输出: (5+0j)

4、布尔类型

python中一切皆对象!一个变量其实就是一个对象,每一个对象都有一个布尔值

 内置函数:bool

在 Python 中,bool 是一个内置函数,用于将一个值转换为布尔值(True 或 False)。

语法:

bool(x)
  • x:可以是任何类型的值。

bool 函数常用于条件判断。例如:

if bool(some_variable):print("some_variable 是 True")
else:print("some_variable 是 False")

不过,在 if 语句中,直接使用变量通常更为简洁和直观,因为 if 语句会自动调用 bool 函数:

if some_variable:print("some_variable 是 True")
else:print("some_variable 是 False")

3-2、字符串类型:不可变数据类型

三引号:定义多行字符串。

\t:制表位的大小与前面的字符个数有关,一个制表位是8个字符;

所以,空格的大小=(8-前面的字符个数)

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义: 

print('我\n在\n北\n京\n等\n你')
print('-----------------------')
print(r'我\n在\n北\n京\n等\n你')

string02='试一下字符串的索引'
print(string02[2]) # 下
print(string02[-2]) # 索

string03="abcds"
string04="我想吃巧克力"
print(string03+string04) # abcds我想吃巧克力
print(3*string04) # 我想吃巧克力我想吃巧克力我想吃巧克力
print('巧克力' in string04) # True

3-3、空值

空值是Python里一个特殊的值,用None表示。

None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

四、数据类型之间的转换

chr()和ord()是一段互为相反的操作。

内置函数:

Python 提供了一系列内置函数,这些函数无需导入任何模块即可直接使用。

x = 10
y = 3
print(x / y) # 3.3333333333333335 隐式转换# 计算 10 / 3 的整数商
quotient = 10 // 3# 计算 10 / 3 的余数
remainder = 10 % 3# 输出结果
print("整数商:", quotient)  # 输出: 整数商: 3
print("余数:", remainder)   # 输出: 余数: 1

在Python中,eval()函数是一个内置函数,它能够将一个字符串str当成有效的表达式来求值并返回计算结果。 


http://www.mrgr.cn/news/80515.html

相关文章:

  • iOS 应用的生命周期
  • Spark优化----Spark 数据倾斜
  • 设计模式12:抽象工厂模式
  • 单片机:实现简单计时器(附带源码)
  • ECharts中多图表联动且主图表增加选中时的高亮效果
  • 高防CDN 如何防止DDoS和CC攻击?
  • ST-Linker V2 烧录器详解说明文档
  • STM32 水质水位检测项目(硬件架构)及(软件架构)
  • 实训项目11基于51单片机的门禁监测系统设计
  • Java系统对接企业微信审批项目流程
  • 非完全谵妄的发生率、高风险因素及预防护理概述
  • 【计算机网络】期末考试预习复习|中
  • 【机器学习】以机器学习为翼,翱翔网络安全创新苍穹
  • 【Leetcode 每日一题】3291. 形成目标字符串需要的最少字符串数 I
  • 确保某路径下存在某文件
  • 作业Day5:
  • Mapbox-GL 的源码解读的一般步骤
  • 放大电路3
  • 类OCSP靶场-Kioptrix系列-Kioptrix Level 3
  • Vue.js前端框架教程5:Vue数据拷贝和数组函数
  • 一学就废|Python基础碎片,reduce函数
  • Python毕业设计选题:基于django+vue的宠物服务管理系统
  • 思考:VSCode 的宏观工作原理 快速入门 VSCodium (****)
  • 数字电视标准与分类
  • Kafka部署
  • 解决PyTorch模型推理时显存占用问题的策略与优化