int整数型
float浮点型
str字符串
list列表
tuple元组
bool布尔
dict字典
set集合
类型转换
增:
删:
pop 伪随机删除一个,有返回值,没有会报错
remove,值,没有会报错
discard, 值,没有不会报错
改:删除后再增增加
查:没有
其他:
num = 100
a = '1'
res = int(a)
print(a, type(a)) # 1
a = '1.1'
res = int(a) # 报错
num = 100
print(bin(num)) #0b1100100
num = 100
print(oct(num)) #0o144
num = 100
print(hex(num)) #0x64
int()
函数支持将不同进制的字符串转换为十进制整数。主要的进制包括:
binary = '0b1100100'
num = int(binary, 2)
octal = '0o144'
num = int(octal, 8)
hexadecimal = '0x64'
num = int(hexadecimal, 16)
doller = 11.11
round(3.14159) #3
# 将整数转换为浮点数
num_int = 100
num_float = float(num_int) #100.0
# 将浮点数转换为整数
num_float = 3.14
num_int = int(num_float) #3 存在精度损失
num1 = b'4' # bytes
num2 = '4' # unicode,Python 3 中不需要在字符串前加 'u'
num3 = '四' # 中文数字
num4 = 'Ⅳ' # 罗马数字
print(num1.isdigit()) # True
print(num2.isdigit()) # True
print(num3.isdigit()) # False
print(num4.isdigit()) # False
# bytes类型没有isdecimal方法
print(num2.isdecimal()) # True
print(num3.isdecimal()) # False
print(num4.isdecimal()) # False
# bytes类型没有isnumeric方法)
print(num2.isnumeric()) # True
print(num3.isnumeric()) # True
print(num4.isnumeric()) # True
# 这三种方法无法判断浮点数
num5 = '4.3'
print(num5.isdigit()) # False
print(num5.isdecimal()) # False
print(num5.isnumeric()) # False
# 使用单引号定义字符串
str1 = 'Hello, World!'
# 使用双引号定义字符串
str2 = "Hello, Python!"
# 使用三引号定义字符串
str3 = '''
This is a multi-line
string in Python.
'''
str1 = 'Hello,'
str2 = 'World!'
result_str = str1 + ' ' + str2
text = 'Python'
first_char = text[0] #p 正索引取值
last_char = text[-1] #n 反索引取值
text[0]='H' #报错
# 顾头不顾尾
text = 'Python'
substring = text[1:4] # yth
# 步长
text = 'Python'
substring = text[0:4:2] # Pt (步长为2,及间隔为1)
#反向切片
text = 'Python'
substring = text[-1:-4:-2] # nh (即使区间已经颠倒,步长仍需为负)
text = 'Hello, World!'
length = len(text) #13
in
和 not in
用于检查一个字符串是否包含另一个字符串text = 'Python'
'Py' in text #True
'py' not in text #True
# 默认情况下,trip方法会去除字符串开头和结尾的所有空格。
text = ' Hello, World! '
strip_text = text.strip() # Hello, World!
# lstrip方法用于去除字符串开头的空格。
text = ' Hello, World! '
lstrip_text = text.lstrip() # Hello, World!____
# rstrip方法用于去除字符串结尾的空格。
text = ' Hello, World! '
rstrip_text = text.rstrip() # _____Hello, World!
# 去除指定字符
text = '<>'
stripped_text = text.strip('<>') # Hello, World!
# 默认使用空格或者换行作为切分符
text = 'Hello, World!'
split_result = text.split() # ['Hello,', 'World!']
# 指定分隔符
text = 'Hello, World!'
split_result = text.split(',') # ['Hello', ' World!']
for
循环可以遍历字符串中的每个字符text = 'Hello'
for char in text:
print(char)
*
运算符可以实现字符串的重复original_str = 'ABC'
repeated_str = original_str * 3 # ABCABCABC
# 将给定字符串中的所有字母变为大写
text = 'hello'
upper_text = text.upper() # HELLO
# 将给定字符串中的所有字母变为小写
text = 'HELLO'
lower_text = text.lower() # hello
# startswith()判断字符串是否以括号内指定的字符开头
text = 'Python'
result = text.startswith('Py') # True
# endswith()判断字符串是否以括号内指定的字符开头
text = 'Python'
result = text.endswith('on') # True
print("My name is %s; My age is %d; I'have %.2f$" % (name, age, money))
# %s:字符串,基本都用这个
# %d`:整数
# %f:浮点数 (.2f表示保留两位小数)
# %x:十六进制整数
print("My name is {name}; My age is {age}".format(name=name, age=age))
print(f"My name is {name}; My age is {age}")
res = '%'.join('hello') # h%e%l%l%o
res = '|'.join(['Tom', '18', 'play']) # Tom|18|play
# 语法:replace('旧内容', '新内容') 全部修改
res = 'My age is 18!'
res = res.replace('18', '73')
# 语法:replace('旧内容', '新内容') 修改指定个数
res = 'my name is Tom, my age is 18!'
res = res.replace('my', 'MY', 1)
str = '5201314'
res = str.isdigit() # True
str = '123g123'
res = str.isdigit() # False
find
从指定范围内查找子字符串的起始索引,从左向右查找,找得到则返回元素所在的索引位置,找不到则返回-1# 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引
str1 = 'Python'
res = str1.find('y', 1, 3) # 1
rfind
从指定范围内查找子字符串的起始索引,从右向左查找,找得到则返回元素所在的索引位置,找不到则返回-1str1 = 'Python'
res = str1.rfind('o') # 4
index
:同find
,但在找不到时会报错
rindex
:同rfind
,但在找不到时会报错
count
统计指定字符在大字符串中出现的次数
center
用指定字符填充指定字符串,如果两侧不平衡,则右多左少msg = '新系统'
res = msg.center(len(msg) + 6, '-')
ljust
字符串长度要基于给指定字符长度的基础上增加,填充在原有字符串的右侧
rjust
字符串长度要基于给指定字符长度的基础上增加,填充在原有字符串的左侧
zfill
用 0 填充,填充在字符串左侧
expandtabs
)name = 'Tom\thello' # Tom hello 默认四个字符
location = "Tom\thello"
expanded_name = location.expandtabs(2) # Tom hello
captalize
)text = 'hello world'
capitalized_text = text.capitalize() # 'Hello world'
swapcase
)mixed_case = 'HeLLo WoRLd'
swapped_case = mixed_case.swapcase()
print(swapped_case) # 'hEllO wOrlD'
sentence = 'hello python, nice'
title_case = sentence.title()
print(title_case) # 'Hello Python, Nice'
name = 'Hello123'
print(name.isalnum()) # 字符串中既可以包含数字也可以包含字母,True
print(name.isalpha()) # 字符串中只包含字母,False
print(name.isidentifier()) # 字符串是否是合法标识符,True
print(name.islower()) # 字符串是否是纯小写,True
print(name.isupper()) # 字符串是否是纯大写,False
print(name.isspace()) # 字符串是否全是空格,False
print(name.istitle()) # 字符串中的单词首字母是否都是大写,False
,
隔开,并用方括号 []
括起来。mixed_list = [1, 'two', 3.0, 'four', 5]
# 示例
string1 = 'hello'
list1 = list(string1) # ['h', 'e', 'l', 'l', 'o']
tuple1 = (1, 2, 3)
list1 = list(tuple1) # [1, 2, 3]
range1 = range(4)
list1 = list(range1) # [1, 2, 3]
numbers = [1, 2, 3, 4, 5]
first_number = numbers[0]
last_number = numbers[-1]
index_10 = numbers[10] #超出范围会报错
numbers = [1, 2, 3, 4, 5]
sliced_numbers = numbers[1:4] # [2, 3, 4]
stepped_numbers = numbers[0:4:2] # [1, 3]
numbers = [1, 2, 3, 4, 5]
length = len(numbers) # 5
numbers = [1, 2, 3, 4, 5]
3 in numbers
6 not in numbers
append
默认追加到末尾(不管是什么类型的数据,都会当成一个整体元素填进去)numbers = [1, 2, 3, 4, 5]
numbers.append([6,7]) # [1, 2, 3, 4, 5, [6, 7]]
extend
一次性在列表尾部添加多个元素、合并列表numbers = [1, 2, 3, 4, 5]
numbers.extend([6,7]) # [1, 2, 3, 4, 5, 6, 7, 8]
insert
在指定位置添加元素(索引位置,不管是什么类型的数据,都会当成一个整体元素填进去)numbers = [1, 2, 3, 4, 5]
numbers.insert(0, [0, 0.5]) # [[0, 0.5], 1, 2, 3, 4, 5]
del
删除指定索引的元素numbers = [1, 2, 3, 4, 5]
del numbers[0] # [2, 3, 4, 5]
pop
默认删除列表最后一个元素,并将删除的值返回,括号内可以通过加索引值来指定删除元素numbers = [1, 2, 3, 4, 5]
pop_num = numbers.pop(0)
print(pop_num) # 1
print(numbers) # [2, 3, 4, 5]
remove
括号内指名道姓表示要删除哪个元素,没有返回值numbers = [1, 2, 3, 4, 5]
numbers.remove(2) # [1, 3, 4, 5]
numbers = [1, 2, 3, 4, 5]
numbers.reverse() # [5, 4, 3, 2, 1]
sort()
方法用于对列表进行排序,默认是升序排序。sorted()
函数numbers = [5, 2, 3, 1, 4]
numbers.sort() # [1, 2, 3, 4, 5] reverse默认值为False
numbers.sort(reverse=True) # [5, 4, 3, 2, 1]
# 按照绝对值排序
numbers = [5, -2, 3, 1, -4]
numbers.sort(key=abs) # [1, -2, 3, -4, 5]
# 保留原列表
numbers = [5, 2, 3, 1, 4]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出: [1, 2, 3, 4, 5]
print(numbers) # 输出: [5, 2, 3, 1, 4]
# for循环遍历列表
fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
print(fruit)
# while循环遍历列表
fruits = ['apple', 'banana', 'orange']
index = 0
while index < len(fruits):
print(fruits[index])
index += 1
fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
print(f"Index: {index}, Fruit: {fruit}")
# Index: 0, Fruit: apple
# Index: 1, Fruit: banana
# Index: 2, Fruit: orange
numbers = [1, 2, 3, 4, 5]
result = numbers[::2] # [1, 3, 5]
result = numbers[::-2] # [5, 3, 1]
result = numbers[::-1] # 列表反转
# 对列表中的数字进行排序
l1 = [1, 2, 3]
l2 = [1, 3,2]
l2 > l1 # 第二位3的ASCII码大于2的ASCII码
# 字符之间的大小取决于它们在ASCII表中的先后顺序,越往后越大
s1 = 'abc'
s2 = 'az'
s2 > s1 # 第二位z的ASCII码大于b的ASCII码
# 所以我们也可以对下面这个列表排序
l = ['A', 'z', 'adjk', 'hello', 'hea']
l.sort()
print(l) # ['A', 'adjk', 'hea', 'hello', 'z'] 大写字母的ASCII码大于小写字母的ASCII码
元组(Tuple)是Python中的一种有序、不可变的数据类型。
元组使用小括号()来定义,可以包含任意类型的元素,包括数字、字符串、列表等。
在Python中,可以使用逗号,
来创建元组,通常也建议使用小括号,尽管小括号并不是必须的。例如:
tuple1 = 1, 2, 3
tuple2 = (1, 2, 3)
tuple1 = (1,)
tuple1 = (1) #这不是元组而是整数1,单个元素末尾后面需要添加,
tuple()
函数可以将其他可迭代对象转换为元组numbers = [1, 2, 3, 4, 5]
tuple1 = tuple(numbers)
fruit_tuple = ('apple', 'banana', 'cherry')
fruit_tuple[0] # apple
fruit_tuple[-1] # cherry
fruit_tuple[-1] = "pear" # 报错
len()
函数可以获取元组的长度in
和not in
运算符+
运算符可以将两个元组拼接成一个新的元组*
运算符可以将元组重复指定次数True:非零数字、非空字符串、非空列表、非空字典、非空集合等
False:零数字、空字符串、空列表、空字典、空集合等
{}
,并使用冒号 :
分隔键和值。,
分隔。person_info = {'name': 'Tom', 'age': 25, 'gender': 'male'}
person_info = {'name': 'Tom', 'age': 25}
person_info['name'] # Tom
person_info['name1'] # 报错
get
,如果键不存在,则返回指定的默认值(默认为None
)(不会报错)person_info = {'name': 'Tom', 'age': 25}
person_info.get('name') # Tom
person_info.get('height', 180) # 175
len
函数可以计算字典中键值对的个数person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
len(person_info) # 3
in
和not in
可以判断一个键是否存在于字典中person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
'name' in person_info # True
'height' not in person_info # True
# 直接添加
person_info = {'name': 'Tom', 'age': 25}
person_info['height'] = 180 # 'name': 'Tom', 'age': 25, 'height': '180'
# update方,可以批量新增键值对,如果键已经存在,则更新对应的值
person_info = {'name': 'Tom', 'age': 25}
person_info.update({'height': 180, 'weight': 60}) # 'name': 'Tom', 'age': 25, 'height': '180', 'weight': 60
# setdefault(key, default) 和update相比多了返回值,返回default
person_info = {'name': 'Tom', 'age': 25}
height = person_info.setdefault('height', '180') # height = 180
# del键
person_info = {'name': 'Tom', 'age': 25}
del person_info['age'] # 'name': 'Tom'
# pop键值,比del多返回键所对应的值
person_info = {'name': 'Tom', 'age': 25}
age = person_info.pop('age') # age = 25
# clear 清空字典
person_info = {'name': 'Tom', 'age': 25}
person_info.clear() #
# popitem 随机删除键值对(由于字典无序),以元组的形式返回被删除的键值对,python3.7+版本是删除最后一个值
person_info = {'name': 'Tom', 'age': 25}
popitem1 = person_info.popitem() # 随机可能('name': 'Tom')
# keys,获取字典中所有的键,返回一个可迭代的视图对象
person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
keys = person_info.keys() # dict_keys(['name', 'age', 'height'])
# values,获取字典中所有的值,返回一个可迭代的视图对象
person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
values = person_info.values() # dict_values(['Tom', '25', '180'])
# items,获取字典中所有的键值对,返回一个可迭代的视图对象
person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
items = person_info.items() # dict_items([('name', 'Tom'), ('age', 25), ('height', '180')])
# 只遍历key
person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
for key in person_info:
pass
# 只遍历values
person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
for values in person_info.values():
pass
# 遍历key和value
person_info = {'name': 'Tom', 'age': 25, 'height': '180'}
for key, values in person_info.items():
pass
sorted()
函数可以对字典进行排序。my_dict = {'apple': 3, 'banana': 2, 'orange': 1}
# 默认,对字典按键排序,并返回一个列表
sorted1 = sorted(my_dict) # ['apple', 'banana', 'grape', 'orange']
sorted1 = sorted(my_dict.items()) # [('apple', 3), ('banana', 2), ('orange', 1)]
# 按照特定要,这个就是按照值来排序
sorted1 = sorted(my_dict.items(),key=lambda x: x[1]) # [('orange', 1), ('banana', 2), ('apple', 3)]
key
参数指定了按值排序,并使用了 lambda
函数提取元组中的第二个元素(值)作为排序的关键字。{}
,元素之间使用逗号 ,
分隔。a = {1, 2, 3, 4, 5} # {1, 2, 3, 4, 5}
b = {'T', 'o', 'm'} # 可能{'m', 'T', '0'}
c = {1,2,2,3,3} # {1, 2, 3}
# 字符串—>集合
str1 = 'Tom'
set1 = set(str1) # {'m', 'T', 'o'}
# 字典键—>集合
my_dict = {'apple': 3, 'apple': 2, 'orange': 1}
set1 = set(my_dict) # {'orange', 'apple'}
# 字典值—>集合
my_dict = {'apple': 1, 'banana': 2, 'orange': 1}
set1 = set(my_dict.values()) # {1, 2}
# 列表—>集合
my_list = [1, 2, 2]
set1 = set(my_list) # {1, 2}
# 元组—>集合
my_tuple = (1, 2, 2)
set1 = set(my_tuple) # {1, 2}
# 单个元素不可以,比如布尔、整数、浮点数
set(100) # 报错
# add,添加单个元素
my_set = {1, 2, 3}
my_set.add(4)
# update,添加多个元素,参数是一个可迭代对象。
my_set = {1, 2, 3}
my_set.add([4, 5]) # {1, 2, 3, 4, 5}
# remove,删除指定元素,没有回报错
my_set = {1, 2, 3}
my_set.remove(4) # 报错
# discard,删除指定元素,没有回报错
my_set = {1, 2, 3}
my_set.discard(4) # 不会报错
# pop,伪随机(根据HashMap删除第一个元素)(存在字符串时,每次HashMap可能都不一样),集合为空会报错
my_set = {1, 2}
my_set.pop() # {2}
my_set.pop() # {}
my_set.pop() # 报错
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# union 并集
union_set = set1.union(set2) # {1, 2, 3, 4, 5}
# intersection 交集
intersection_set = set1.intersection(set2) # {3}
# difference 差集
difference_set = set1.difference(set2) # {1, 2}
# symmetric_difference 对称差集
symmetric_difference_set = set1.symmetric_difference(set2) # {1, 2, 4, 5}
# issuperset 父集
set1 = {1, 2, 3}
set2 = {2, 3}
is_superset = set1.issuperset(set2) # True
# issubset 子集
set1 = {1, 2, 3}
set2 = {2, 3}
is_subset = set2.issubset(set1) # True
# 集合内容是否相等
set1 = {1, 2}
set2 = {2, 1}
set1 == set2 # True
set1 = {1, 2, 3}
len(set1) # 3
set1 = {1, 2, 3}
for n in set1:
pass
set1 = {1, 2, 3}
# in
flag = 1 in set1 # True
# not in
flag = 4 not in set1 # True
按存值个数区分 | |
---|---|
只能存一个值:可称为标量/原子类型 | 数字类型、字符串、布尔类型 |
可以存放多个值:可称为容器类型 | 列表、元祖、字典 |
按照访问方式区分 | |
---|---|
直接访问:只能通过变量名访问整个值 | 数字类型、布尔类型 |
顺序访问:可以通过索引访问指定的值,索引代表顺序,又称为序列类型 | 字符串、列表、元祖 |
key访问:可以用key访问指定的值,又称为映射类型 | 字典 |
按可变不可变区分 | |
---|---|
可变类型 | 列表、字典 |
不可变类型 | 数字、字符串、元祖、布尔 |