Python 基础语法
Python 变量和数据类型
变量
变量简介
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
Python 基本赋值
a = 1
b = 2.0
c = "test"
print(f'a={a}')
print(f'b={b}')
print(f'c={c}')
# 输出
# a=1
# b=2.0
# c=test
Python 允许多个变量同时赋值
a = b = c = 1
print(f'a={a}')
print(f'b={b}')
print(f'c={c}')
# 输出
# a=1
# b=1
# c=1
Python 允许为多个变量同时赋不同的值
a, b, c = 1, 2.0, "test"
print(f'a={a}')
print(f'b={b}')
print(f'c={c}')
# 输出
# a=1
# b=2.0
# c=test
变量命名规则
- 第一个字符必须是字母表中字母或下划线
_
。 - 标识符的其他的部分由字母、数字和下划线组成。
- 标识符对大小写敏感。
在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。
数据类型
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
Python3 中有六个标准的数据类型:
- **不可变数据(3 个):**Number(数字)、String(字符串)、Tuple(元组);
- **可变数据(3 个):**List(列表)、Dictionary(字典)、Set(集合)。
Python 内置的 type()
函数可以用来查询变量所指的对象类型
a, b, c, d = 1, 2.0, True, 3.14j
print(f'a={type(a)}')
print(f'b={type(b)}')
print(f'c={type(c)}')
print(f'd={type(d)}')
# 输出
# a=<class 'int'>
# b=<class 'float'>
# c=<class 'bool'>
# d=<class 'complex'>
Number
在 Python 中,Number 数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。
Python math 模块提供了许多对浮点数的数学运算函数。
Python cmath 模块包含了一些用于复数运算的函数。
cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。
字符串
字符串是 Python 中最常用的数据类型。可以使用引号 ( ' 或 " ) 来创建字符串。
Python 中单引号 '
和双引号 "
使用完全相同。
使用三引号('''
或 """
)可以指定一个多行字符串。
转义符 \
。
反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string。
字符串可以用 + 运算符连接在一起,用 ***** 运算符重复。
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
Python 中的字符串不能改变。
Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
字符串切片 str[start:end]
,其中 start 是切片开始的索引,end 是切片结束的索引(但不包括该索引指向的字符)。
字符串的切片可以加上步长参数 step,语法格式如下:str[start:end:step]
字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
str='123456789'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第六个的字符(不包含)
print(str[2:]) # 输出从第三个开始后的所有字符
print(str[1:5:2]) # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
print('------------------------------')
print('hello\nrunoob') # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义
列表
序列是 Python 中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是 0,第二个索引是 1,依此类推。
Python 有 6 个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
元祖
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
tinydict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }
数据类型转换
Python 数据类型转换可以分为两种:
- 隐式类型转换
- 显式类型转换
隐式类型转换示例
num_int = 1
num_float = 2.0
num_new = num_int + num_float
print("num_int 数据类型为:", type(num_int))
print("num_float 数据类型为:", type(num_float))
print("num_new 值为:", num_new)
print("num_new 数据类型为:", type(num_new))
# 输出
# num_int 数据类型为: <class 'int'>
# num_float 数据类型为: <class 'float'>
# num_new 值为: 3.0
# num_new 数据类型为: <class 'float'>
显示类型转换方法:
int()
- 将指定的数值或字符串转换成整数,可以指定进制。float()
- 将指定的字符串转换成浮点数。str()
- 将指定的对象转换成字符串,可以指定编码。chr()
- 将指定的整数转换成该编码对应的字符。ord()
- 将指定的字符转换成对应的编码(整数)。
a = int("100")
b = float(2)
c = str(3.0)
print(f'a={a}, type={type(a)}')
print(f'b={b}, type={type(b)}')
print(f'c={c}, type={type(c)}')
# 输出
# a=100, type=<class 'int'>
# b=2.0, type=<class 'float'>
# c=3.0, type=<class 'str'>