数据类型
Number 数字
Number数字: 主要有四种类型,整数、布尔型(布尔型继承 Int)、浮点数和复数。
JS 不支持复数,需要用 Math.js 等库或手动实现。
# 整数
num1 = 1
# 布尔型
flag = True
# 浮点数
num2 = 3.1415926
# 复数
num3 = 1 + 2j
String 字符串
字符串:多个字符组合在一起就是字符串。
str = 'hello'
字符串的常见操作如下:
startswith
:判断字符串是否以指定的子字符串开头endswith
:判断字符串是否以指定的字符串结尾find
: 查找子字符串的索引位置,未找到返回-1replace
: 将指定的子字符串全部替换为新的子字符串split
: 按指定字符进行分割,返回列表strip
: 移除字符串前、后的空白符upper
:将所有字符全部大写lower
: 将所有字符全部小写
# 字符串的常见操作
str = 'abcdef'
print(str.startswith('a')) # true
print(str.endswith('f')) # true
print(str.find('c')) # 2
print(str.find('C')) # -1
print(str.replace('def', 'xyz')) # 'abcxyz'
print('a,b,c,d,e,f'.split(',')) # ['a', 'b', 'c', 'd', 'e', 'f']
print(' abc def '.strip()) # 'abc def'
print('AbcDef'.upper()) # 'ABCDEF'
print('AbcDef'.lower()) # 'abcdef'
List 列表
列表:把多个元素排放在一起,就形成了列表。
list1 = ['Blue', 'Yellow', 'Red']
list2 = [1, 2, 3, 4, 5]
列表的常见操作如下:
append
: 向列表尾部添加新元素insert
: 在指定索引位置插入新元素pop
: 移除制定索引位置的元素,不传索引则默认移除列表最后一个,返回被移除的元素remove
: 和 pop 用法一样,区别是不会返回被移除的元素reverse
: 反转列表sort
: 排序列表clear
: 清除列表
list1 = [1, 2, 3, 4, 5]
list1.append(6)
print(list1) # [1, 2, 3, 4, 5, 6]
list1.insert(1, 20)
print(list1) # [1, 20, 2, 3, 4, 5, 6]
list1.pop()
print(list1) # [1, 20, 2, 3, 4, 5]
list1.pop(1)
print(list1) # [1, 2, 3, 4, 5]
list1.reverse()
print(list1) # [5, 4, 3, 2, 1]
list1.clear()
print(list1) # []
Tuple 元组
元组:元组和列表类似,不同的是:元组的元素不能修改,元组使用的是小括号定义,而列表使用方括号。
# 元组
tup1 = ('Blue', 'Yellow', 'Red')
tup2 = tuple(['Blue', 'Yellow', 'Red']) # 和tup1等价
tup3 = (1, 2, 3, 4, 5)
Set 集合
Set 集合是一组由唯一集合对象构成的无序、多项集合,其核心功能是自动去重,因此特别适合进行集合运算,例如:交集、并集。
# 通过set函数创建
s1 = set('abc')
# 通过花括号创建
s2 = { 'Blue', 'Red', 'Yellow' }
Set集合常见的操作如下:
add
:向集合中添加元素,如果已存在则自动去重remove
: 移除列表元素,如果被移除的元素不存在,则会报KeyErrorc错误discard
: 移除列表元素,和remove不同的是,被删除元素如果不存在,则不会报错clear
: 清空元素列表
s1.add('x')
print(s1) # {'a', 'b', 'c', 'd'}
if 'd' in s1:
s1.remove('d')
print(s1) # { 'a', 'b', 'c' }
s1.discard('d')
print(s1) # {'a', 'b', 'c'}
s1.clear()
Dictionary 字典
Dictionary 字典是一系列 key/value 键值对的集合。
dict1 = { 'admin': 'AAA', 'age': 18 }
dict2 = dict(admin='AAA', age=18)
print(dict1) # { 'admin': 'AAA', 'age': 18 }
print(dict2) # { 'admin': 'AAA', 'age': 18 }
dict 字段常见的操作如下:
d[key] = value
: 设置一个新的键值对get
: 获取指定键的值pop
: 移除指定 key,如果 key 不存在则报错 KeyErrorkeys
: 返回由 key 组成的视图对象values
: 返回由 value 组成的视图对象items
: 返回由 key/value 组成的视图对象clear
: 清空列表
dict1['phone'] = '18222221111'
print(dict1) # { 'admin': 'AAA', 'age': 18, 'phone': '18222221111' }
print(dict1.get('phone', None)) # '18222221111'
print(dict1.get('address', None)) # key不存在,返回None
if 'phone' in dict1:
dict1.pop('phone')
print(dict1) # { 'admin': 'AAA', 'age': 18 }
for key in dict1.keys():
print(key) # 'admin';'age'
for value in dict1.values():
print(value) # 'AAA'; 18
for key, value in dict1.items():
print(key, value) 'admin' 'AAA'; 'age' 18
dict1.clear()
print(dict1) # {}
类型判断
类型判断一般常用 type
和 isinstance
这两个函数,其用法如下:
type
:
# type用法
n = 123
s = 'abc'
f = True
l = [1, 2, 3]
print(type(n) == int) # True
print(type(s) == str) # True
print(type(f) == bool) # True
print(type(l) == list) # True
isinstance
:
# isinstance用法
class Animal: pass;
class Dog(Animal): pass;
dog = Dog()
print(isinstance(123, int)) # True
print(isinstance('abc', str)) # True
print(isinstance(True, bool)) # True
print(isinstance([1, 2, 3], list)) # True
print(isinstance(dog, Dog)) # True
print(isinstance(dog, Animal)) # True
类型转换
类型转换一般可通过对应的构造函数进行,例如 int()
, str()
等,其用法如下:
s1 = '123'
n1 = int(s1)
print(type(n1) == int) # True
n2 = 456
s2 = str(n1)
print(type(s2) == str) # True