前期准备:
python 安装
pip 包管理工具的安装
pycharm开发工具的安装
Python 学习
1 基础语法
单行注释 #
多行注释 ''' 或者 """
行与缩进 不需要使用大括号 {} , 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
多行语句 语句很长,我们可以使用反斜杠 \ 来实现多行语句 例如:
#单行注释
'''
多行注释
'''
total = item_one + \
item_two + \
item_three
空行: 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始
input() 等待用户输入
同一行可以写多条语句用;隔开
print() 输出
导入模块 import , from...import
在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
2.基本数据类型
-
整数
-
float 浮点数
-
String字符串 转义符 \ 切片:str[start:end:step] 包含头不包含尾部 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,表示原始字符串,不会发生转义
- bool 布尔值 True, False
- List(列表)
# 直接列出元素my_list = [1, 2, 3, 4]# 使用列表推导式squares = [x**2 for x in range(5)]# 通过range函数创建列表numbers = list(range(10))# 通过索引访问,注意索引从0开始first_element = my_list[0]# 负索引表示倒数位置last_element = my_list[-1]# 修改单个元素my_list[0] = 'New Value'# 添加元素my_list.append('Append Value') # 在末尾添加my_list.insert(1, 'Insert Value') # 在指定位置插入# 删除元素del my_list[0] # 删除指定位置的元素my_list.remove('Value') # 删除列表中第一个匹配的值popped_item = my_list.pop() # 删除并返回最后一个元素,可指定索引# 检查元素是否存在if 'Value' in my_list:print("Element exists")# 计算元素出现次数count = my_list.count('Value')# 查找元素索引(首次出现)index = my_list.index('Value')# 切片操作slice_of_list = my_list[1:3] # 获取第1到第2个元素reversed_list = my_list[::-1] # 反转列表# 复制列表copied_list = my_list.copy()my_list.sort() # 就地排序sorted_list = sorted(my_list) # 返回排序后的新列表my_list.reverse() # 就地反转combined_list = my_list + another_listflat_list = [item for sublist in nested_list for item in sublist] # 扁平化嵌套列表
- Tuple(元组)创建后不能更改 用法基本和列表一致
- set 集合 无序,唯一的
创建集合# 使用花括号创建集合my_set = {1, 2, 3}# 使用set()函数创建集合another_set = set([1, 2, 3]) # 从列表转换而来#集合的基本操作添加元素:使用 add() 方法。my_set.add(4)#删除元素:使用 remove() 方法删除指定元素,如果元素不存在会抛出 KeyError;或使用 discard() 方法,该方法在元素不存在时不抛出错误。my_set.remove(2) # 如果2不存在,会抛出KeyErrormy_set.discard(5) # 如果5不存在,不会抛出错误#集合运算:#并集:使用 union() 方法或 | 运算符。union_set = my_set.union({3, 4, 5}) # 或 my_set | {3, 4, 5}#交集:使用 intersection() 方法或 & 运算符。intersection_set = my_set.intersection({3, 4}) # 或 my_set & {3, 4}#差集:使用 difference() 方法或 - 运算符。difference_set = my_set.difference({1, 2}) # 或 my_set - {1, 2}#对称差集:使用 symmetric_difference() 方法或 ^ 运算符。symmetric_diff_set = my_set.symmetric_difference({2, 3, 6}) # 或 my_set ^ {2, 3, 6}#判断子集和超集:#使用 issubset() 方法或 < 运算符判断是否为子集。#使用 issuperset() 方法或 > 运算符判断是否为超集。subset_check = {1, 2}.issubset(my_set) # 或 {1, 2} < my_setsuperset_check = my_set.issuperset({1, 2}) # 或 my_set > {1, 2}#长度:使用 len() 函数获取集合中元素的数量。length = len(my_set)#清空集合:使用 clear() 方法。my_set.clear()
- dict 字典 键值对 相当于 map
#创建字典my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}my_dict = dict(name='Alice', age=30, city='New York')#访问元素name = my_dict['name']# 添加和修改my_dict['email'] = 'alice@example.com'my_dict['age'] = 31# 删除已有的键值对del my_dict['email']age = my_dict.pop('age') # 删除并返回值#判断是否存在if 'name' in my_dict:print("Key exists")#遍历字典for key, value in my_dict.items():print(f"{key}: {value}")for key in my_dict.keys(): # 默认遍历键print(key)for value in my_dict.values():print(value)#获取字典值 给与默认值 防键不存在。email = my_dict.get('email', 'Not provided')#清空字典:使用 clear() 方法my_dict.clear()#复制字典new_dict = my_dict.copy()#字典推导式squared = {x: x**2 for x in range(5)}
3.运算符
算数运算符:a=10 , b=21
+
|
加 - 两个对象相加
|
a + b 输出结果 31
|
-
|
减 - 得到负数或是一个数减去另一个数
|
a - b 输出结果 -11
|
*
|
乘 - 两个数相乘或是返回一个被重复若干次的字符串
|
a * b 输出结果 210
|
/
|
除 - x 除以 y
|
b / a 输出结果 2.1
|
%
|
取模 - 返回除法的余数
|
b % a 输出结果 1
|
**
|
幂 - 返回x的y次幂
|
a**b 为10的21次方
|
//
|
取整除 - 往小的方向取整数
|
b//a = 2
|
比较运算符:
==
|
等于 - 比较对象是否相等
|
(a == b) 返回 False。
|
!=
|
不等于 - 比较两个对象是否不相等
|
(a != b) 返回 True。
|
>
|
大于 - 返回x是否大于y
|
(a > b) 返回 False。
|
<
|
小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
|
(a < b) 返回 True。
|
>=
|
大于等于 - 返回x是否大于等于y。
|
(a >= b) 返回 False。
|
<=
|
小于等于 - 返回x是否小于等于y。
|
(a <= b) 返回 True。
|
赋值运算符
以下假设变量a为10,变量b为20:
运算符
|
描述
|
实例
|
=
|
简单的赋值运算符
|
c = a + b 将 a + b 的运算结果赋值为 c
|
+=
|
加法赋值运算符
|
c += a 等效于 c = c + a
|
-=
|
减法赋值运算符
|
c -= a 等效于 c = c - a
|
*=
|
乘法赋值运算符
|
c *= a 等效于 c = c * a
|
/=
|
除法赋值运算符
|
c /= a 等效于 c = c / a
|
%=
|
取模赋值运算符
|
c %= a 等效于 c = c % a
|
**=
|
幂赋值运算符
|
c **= a 等效于 c = c ** a
|
//=
|
取整除赋值运算符
|
c //= a 等效于 c = c // a
|
:=
|
海象运算符,这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增运算符。
|
在这个示例中,赋值表达式可以避免调用 len() 两次:
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
|
逻辑运算符:
and
|
x and y
|
布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
|
(a and b) 返回 20。
|
or
|
x or y
|
布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
|
(a or b) 返回 10。
|
not
|
not x
|
布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
|
not(a and b) 返回 False
|
成员运算符:
in
|
如果在指定的序列中找到值返回 True,否则返回 False。
|
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
|
not in
|
如果在指定的序列中没有找到值返回 True,否则返回 False。
|
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
|