一、保留字 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_000
和10000000000
是完全一样的。十六进制数也可以写成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.0
num2 = 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当成有效的表达式来求值并返回计算结果。