命名规则
- 变量名:user_name
- 类名:UserPermission
- 函数名:get_by_id
- 常量:DEFAULT_URL
在命名时,通常要避免内置函数命名
str()
:将对象转为字符串dict()
:创建字典对象list()
:创建列表对象set()
:创建集合对象tulpe()
:创建元组对象int()
:将对象转换为整数float()
:将对象转换为浮点数bool()
:将对象转换为布尔值len()
:返回对象长度print()
:打印
Python基本数据类型
整数、浮点数(带小数)、字符串、布尔值(True
& False
)、空值(None)
name = "张三" # str
float_num = 3.1415 # float
int_num = 3 # int
bool_flag = True # bool
team = None # None
print(type(name)) # 打印类型 <class 'str'>
字符串常见操作
name = '张三'
# 获取长度
name_len = len(name)
print(name_len) # 2
# 拼接
age = "18岁"
name_age = name + age
print(name_age) # 张三18岁
# 截取
surname = name[:1] # 表示的是从索引0开始截取到索引1之前(不包括索引1本身)的所有字符 name[0]也是可以的
print(surname) # 张
# 查找(特定元素首次出现的索引位置)
index_of_zhang = name.index('张')
print(index_of_zhang) # 0
# 替换
replace_name = name.replace('三','六')
print(replace_name) # 张六
# 分割
new_name = '李,四'
split_name = new_name.split(',')
print(split_name) # ['李', '四']
# 大小写转换
my_str.upper() # 大写
my_str.lower() # 小写
# 反转
my_str[::-1]
# 统计次数
str_count = name.count('张')
print(str_count) # 1
# 判断是否以某个字符开头
start_flag = name.startswith('张')
print(start_flag) # True
# 判断是否以某个字符结尾
end_flag = name.endswith('三')
print(end_flag) # Flase
# 去除两边字符
strip_name = " 王五 "
print(strip_name.strip()) # "王五"
# 居中对齐
text = "python"
width = 20
aligned_text = text.center(width)
# 首字母大写
print(text.capitalize()) # Python
# 每个单词首字母大写
more_text = 'python is best'
print(more_text.title()) # Python Is Best
基本数据类型的算数运算
num1 = 5
num2 = 10
# 相加
sum_num = num1 + num2
print(sum_num) # 15
# 想减
difference = num2 - num1
print(difference) # 5
# 相乘
product = num1 * num2
print(product) # 50
# 相除
quotient = num2 / num1
print(quotient) # 2.0 python3中的整数除法默认返回浮点数结果
# 取余
remainder = num2 % num1
print(remainder) # 0
# 指数运算
power = num2 ** num1
print(power) # 100000
# 自增
num1 += 1
print(num1) # 6
# 自建
num2 -= 1
print(num2) # 9
sum
在 Python 中是内置函数,在编写代码时应避免将其用作变量名。
Python 中没有++
和--
运算符,需要使用+=
和-=
对变量进行自增或自减。
在python中,只有兼容的数据类型才能进行计算,比如float
与int
运算结果为float
,如果str
与int
进行运算,则会抛出异常,需对其中一个进行类型转换
类型转换
gb = '8192MB'
int_tb = int(gb[:-2]) // 1024
print(f"硬盘大小为{int_tb}")
Python使用与类型同名的内置函数进行类型转换(如:
str(some_val)
,bool(some_val)
)
Python中“8195MB”因为值与整数或者浮点数的类型不兼容,所以无法直接转为整数或者浮点数
Python中可以通过字符串切片[start:end]
获取需要的字符。
列表和元组
在 Python 中,数组被称之为列表,用于存储多个连续的值。
列表
# 列表
# 创建
nums = [1, 2]
# or
my_list = list()
# or
my_tuple = (1, 2)
# 访问列表项
el = nums[1] # num[index]
print(el) # 2
# 添加
nums.append(3)
print(nums) # [1, 2, 3]
# 长度
length = len(nums)
print(length)
# 切片
some_el = nums[:1]
print(some_el) # [1]
# 拼接
num2 = [3, 4]
my_num = nums + num2
print(my_num)
# 复制
new_list = my_num.copy()
print(my_list)
# 反转
reverse_list = my_num.reverse()
print(reverse_list)
# 删除
del_list = [1, 2, 3]
del del_list[0] # del会修改原数组 返回新数组则需要切片[start:end]
print(del_list)
# 最大值
max_val = max(my_list)
# 最小值
min_val = min(my_list)
# 转换为元组
my_tuple = tuple(my_list)
元组可以理解为只读的数组,它在创建时确定元素个数和元素的值,一旦创建就不能被修改。
字典
字典是一个键值对(key-value pair)的集合,通过键(key)
来访问对应的值(value)
。它使用大括号 {}
创建。
特性
- 无序性:集合中的元素没有特定的顺序。
- 唯一性:集合内的元素是唯一的,无法插入重复元素。
- 可变性:集合是可变的,可以添加、删除元素,但集合内的元素必须是不可变类型。
# 字典
person_info = {}
person_info["name"] = "张三"
person_info["age"] = 18
person_info["city"] = "北京"
# 访问
print(person_info["name"])
# 访问或默认值
print(person_info.get("frind","李四"))
# 更新值
person_info["city"] = "上海"
print(person_info)
# 合并和更新
a_b = {"a": 1,"c": 2}
c_d = {"c": 3, "d": 4}
a_b.update(c_d)
print(a_b)
# 删除键值对
del person_info["age"]
# 检查键值对是否存在 key in my_dict
my_dict = {'name': 'alice', 'age': 18, 'city':'New York'}
if 'name' in my_dict: # True
print('name is exist')
else: # False
print('name not exist')
# 获取所有键
my_dict.keys()
# 获取所有值
my_dict.values()
# 获取键值对数目
len(my_dict)
my_dict[key]与my_dict.get(key,default)有什么区别?
在Python中,访问字典(dictionary)中的值有两种常见方式:
1.使用方括号[]
:
my_dict[key]
这种方法会直接尝试给定的键key
获取字典中的值,如果存在,则返回对应的值,如果不存在该键,则会抛出keyError
异常
2.使用get()
方法:
这种方法也是用过键key
获取字典中的值,但提供了额外的功能:如果键不存在字典中,它将返回None
(默认行为)。此外,get()
方法可以接受第二个参数作为默认值,当键key
不存在时,返回默认值。
my_dict.update(another_dict) 作用
- 如果 another_dict 中的键在 my_dict 中已经存在,那么对应键的值将被 another_dict 中的值所更新(覆盖)。
- 如果 another_dict 中的键在 my_dict 中不存在,则该键及其对应的值将被添加到 my_dict 中。
- 是对原数组的操作
集合
集合是一个无序的、不重复元素的集合。它使用大括号 {}
或者 set()
函数创建。
特性
- 无序性:集合中的元素没有特定的顺序。
- 唯一性:集合内的元素是唯一的,无法插入重复元素。
- 可变性:集合是可变的,可以添加、删除元素,但集合内的元素必须是不可变类型。
# 集合
# 创建集合
my_set = set()
# 添加元素
el = "apple"
my_set.add(el)
# if
el2 = "banana"
el3 = "apple"
my_set.add(el2)
my_set.add(el3)
print(my_set) # {'banana', 'apple'}
# 检查大小
size = len(my_set)
print(size) # 输出:2
# 检查是否为空
if len(my_set) == 0:
print('Yes')
else:
print('No')
# 删除元素
my_set.remove('banana')
# 清空集合
my_clear = {'apple', 'banana'}
my_clear.clear()
# 检查成员是否存在
exist = el2 in my_set #True or False
# 将集合转换为数组
my_list = list(my_set)
# 集合的并集
my_set_Union = {1, 2, 3}
another_set = {3, 4, 5}
# 使用 union() 方法
combined_set = my_set_Union.union(another_set)
print(combined_set) # 输出:{1, 2, 3, 4, 5}
# 或者使用 | 操作符
combined_set = my_set_Union | another_set
print(combined_set) # 输出:{1, 2, 3, 4, 5}
# 集合的交集
my_set_inter = {1, 2, 3}
another_set = {3, 4, 5}
# 使用 intersection() 方法
common_elements = my_set_inter.intersection(another_set)
print(common_elements) # 输出:{3}
# 或者使用 & 操作符
common_elements = my_set_inter & another_set
print(common_elements) # 输出:{3}
集合(Set)与字典(Dictionary)的主要区别?
- 元素构成
- 集合:仅包括元素,每个元素都是独一无二,不允许重复。(被去重了)
- 字典:由
键值对
构成,键(key)
必须是唯一的,值(val)
可以重复
- 元素访问
- 集合:不支持索引访问,只能通过循环遍历或者
in
来确认元素是否存在 - 字典:通过键
(key)
来访问值,支持索引操作,例如d[key]
,可以直接读取或者修改对应的值,另外也可以通过get[,default]
方法安全获取值
- 元素特性
- 集合:元素无序且不可重复。
- 字典:键必须是不可变类型,值可以是任何类型。
my_dict = {
'name': 'Alice', # 值为字符串,不可变类型
'age': 25, # 值为整数,不可变类型
'hobbies': ['reading', 'swimming'], # 值为列表,可变类型
'profile': {'height': 165, 'weight': 55} # 值为字典,可变类型
}
- 操作功能,
- 集合:提供如并集,交集,差集等数学集合操作方法
- 字典:提供增删改查键值对操作,以及
keys()
,values()
,items()
获取键、值或者键值对视图
- 应用场景
- 集合:常用于去重、求交集、并集、差集等集合论相关操作,及快速检测元素是否存在等场景。
- 字典:常用存储和管理关联数据,通过键高效查询值,比如构建索引,映射表等。