基本语法
| 格式符号 | 转化 |
|---|---|
| %s | 将内容转换成字符串,放入站位位置 |
| %d | 将内容转换成整数,放入站位位置 |
| %f | 将内容转换成浮点数,放入站位位置 |
数据类型
| 类型 | 描述 | 说明 |
|---|---|---|
| 数字(Number) | 支持 + 整数(int) + 浮点数(float) + 复数(complex) + 布尔(bool) | + 整数(int),如:10、-10 + 浮点数(float),如:13:14、-13.14 + 复数(comples),如:4+3j,以结尾表示复数 + 布尔(bool)表达现实生活中的逻辑,即真和假,True表示真,False表示假。 True本质上是一个数字1,False记作0 |
| 字符串(String) | 描述文本的一种数据类型 | 字符串(String)由任意数量的字符组成 |
| 列表(List) | 有序的可变序列 | Python中使用最频繁的数据类型,可有序记录一堆数据 |
| 元组(Tuple) | 有序的不可变序列 | 可有序记录一堆不可变的Python数据集合 |
| 集合(Set) | 无序不重复集合 | 可无序记录一堆不可重复的Python数据集合 |
| 字典(Dictionary) | 无序Key-Value集合 | 可无序记录一堆Key-Value型的Python数据集合 |
基础语句
整数
python
print(10)
bash
10
=== 代码执行成功 ===
浮点数
python
print(12.34)
bash
12.34
=== 代码执行成功 ===
字符串
python
print("hello world")
bash
hello world
=== 代码执行成功 ===
变量
- 在程序执行过程中能够存储计算结果或者能够表现值的一个抽象概念
python
name = "小明"
print(name)
b=1
c=2
a = b+c
print(a)
bash
小明
3
=== 代码执行成功 ===
- 输出变量类型
python
name = '小明'
print(type(10))
print(type(name))
num = "123"
print(int(num))
bash
<class 'int'>
<class 'str'>
123
=== 代码执行成功 ===
字符串的拼接
python
name = "小明"
age = 18
money = 20.5
message = '我是 %s,年龄 %d 岁,我身上有 %f 块钱' % (name, age, money)
print(message)
bash
我是 小明,年龄 18 岁,我身上有 20.500000 块钱
=== 代码执行成功 ===
布尔值
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 判断内容是否相等,满足为True,不满足为False | 如a=3,则(a == b)为True |
| != | 判断内容是否不相等,满足为True,不满足为False | 如a=1,b=3,则(a != b)为True |
| > | 判断运算符左侧内容是否大于右侧满足为True,不满足为False | 如a=7,b=3,则(a > b)为True |
| < | 判断运算符左侧内容是否小于右侧满足为True,不满足为False | 如a=3,b=7,则(a < b)为True |
| >= | 判断运算符左侧内容是否大于等于右侧满足为True,不满足为False | 如a=3,b=3,则(a >= b)为True |
| <= | 判断运算符左侧内容是否小于等于右侧满足为True,不满足为False | 如a=3,b=3,则(a <= b)为True |
python
name = True
age = False
print(name)
print(age)
bash
True
False
=== 代码执行成功 ===
python
a = 1
b = 3
c = a == b
d = (a != b)
print(c)
print(d)
bash
False
True
=== 代码执行成功 ===
逻辑判断
| 逻辑运算符 | 含义 | 使用示例 | 说话 |
|---|---|---|---|
| and | 逻辑与运算,等价于数字中的"且" | a and b | 当a和b两个表达式都为真时,a and b的结果才为真,否则为假 |
| or | 逻辑或运算,等价于数学中的"或" | a or b | 当a和b两个表达式都为假时,a or b的结果才为假,否则为真 |
| not | 逻辑非运算,等价于数学中的"非" | not a | 如果a为真,那么not a的结果为假 |
python
a = 15>10 and 15>7
print (a)
b = 15<10 and 15>7
print (b)
c = 15<10 or 15>7
print (c)
d = not False
print (d)
bash
True
False
True
True
=== 代码执行成功 ===
判断语句
python
age = 10
if age > 10:
print("年龄大于10岁")
else:
print("年龄小于等于10岁")
bash
年龄小于等于10岁
=== 代码执行成功 ===
循环语句
while循环
python
i = 0
while i < 10:
print(i)
i = i + 1
bash
0
1
2
3
4
5
6
7
8
9
=== 代码执行成功 ===
for循环
python
name = "123456"
for x in name:
print(x)
bash
1
2
3
4
5
6
=== 代码执行成功 ===
break语句
- break语句,当num等于2时,跳出循环
python
for num in range(5):
if (num == 2):
break
print(num)
bash
0
1
=== 代码执行成功 ===
函数
定义:组织好的,可重复使用的,用来实现特定功能的代码段。
无参函数
- 定义函数,函数体内的代码需要缩进,调用函数时需要使用函数名加括号,如果函数有参数,需要在括号内传入参数值
python
def say():
print("Hello, World!")
say()
bash
Hello, World!
=== 代码执行成功 ===
有参函数
python
def add(x,y):
z = x + y
print(z)
add(1,2)
def abb(a,b):
c= a + b
return c
result = abb(2,2)
print(result)
bash
3
4
=== 代码执行成功 ===
python
def user_info(name, age, gender):
print(f"姓名:{name},年龄:{age},性别:{gender}")
user_info("小明", 18, "男")
user_info("小明", 18, gender="男")
bash
姓名:小明,年龄:18,性别:男
姓名:小明,年龄:18,性别:男
=== 代码执行成功 ===
不定长参数
- 参数不确定的函数,使用*args和**kwargs来接收参数,*args接收位置参数,**kwargs接收关键字参数。
python
def user_info(*args):
print(args)
user_info("小明", 18, "男")
def user_info2(**kwargs):
print(kwargs)
user_info2(name="小明", age=18 , gender="男")
bash
('小明', 18, '男')
{'name': '小明', 'age': 18, 'gender': '男'}
=== 代码执行成功 ===
数据容器
python
my_list = ["a", 2, True, ["hello", 3]]
print (my_list)
#列表的索引从0开始,依次类推,my_list[0]表示第一个元素,my_list[1]表示第二个元素,以此类推。
print(my_list[0])
print(my_list[1])
print(my_list[2])
print(my_list[3])
#列表的索引可以是负数,-1表示最后一个元素,-2表示倒数第二个元素,以此类推。
print(my_list[-1])
print(my_list[-2])
#列表的index方法可以返回指定元素在列表中的索引位置,如果元素在列表中不存在,则会抛出ValueError异常。
print(my_list.index(2))
bash
['a', 2, True, ['hello', 3]]
a
2
True
['hello', 3]
['hello', 3]
True
1
=== 代码执行成功 ===
列表
python
#列表是可变类型,可以修改列表中的元素,使用索引来访问列表中的元素,然后进行修改。
my_list[0] = "b"
print(my_list)
#列表的insert方法可以在指定位置插入元素,第一个参数表示插入位置的索引,第二个参数表示要插入的元素。
my_list.insert(1,"c")
print(my_list)
bash
['b', 2, True, ['hello', 3]]
['b', 'c', 2, True, ['hello', 3]]
遍历 list
- 通过for循环来遍历列表,直接访问列表中的元素,然后进行操作。
python
for x in my_list:
print(x)
bash
b
c
2
True
['hello', 3]
取列表部分数据
python
my_list3 = [1, 2, 3, 4, 5]
#列表的切片操作,my_list3[1:4:1]表示从索引1开始到索引4结束,步长为1,返回一个新的列表。
new_list3 = my_list3[1:4:1]
print(new_list3)
bash
[2, 3, 4]
- 列表的切片操作,my_list3[:]表示从索引0开始到索引结束,步长为1,返回一个新的列表。
python
new_list3 = my_list3[:]
print(new_list3)
bash
[1, 2, 3, 4, 5]
- 列表的切片操作,my_list3[::2]表示从索引0开始到索引结束,步长为2,返回一个新的列表。
python
new_list3 = my_list3[::2]
print(new_list3)
bash
[1, 3, 5]
- 列表的切片操作,my_list3[::-1]表示从索引0开始到索引结束,步长为-1,返回一个新的列表,列表中的元素顺序颠倒。
python
new_list3 = my_list3[::-1]
print(new_list3)
bash
#列表的切片操作,my_list3[::-1]表示从索引0开始到索引结束,步长为-1,返回一个新的列表,列表中的元素顺序颠倒。
new_list3 = my_list3[::-1]
print(new_list3)
字典key-value
- 字典是由键值对组成的无序集合,使用花括号{}来定义,键和值之间使用冒号:分隔,多个键值对之间使用逗号,分隔。
python
my_dict = {"小明":18, "小红":20, "小刚":22}
print(my_dict)
print(my_dict["小明"])
my_dict["小李"] = 25
print(my_dict)
模块与包
一个Python文件,以py结尾,能定义函数,类和变量,也能包含可执行的代码。
我们可以认为不同的模块就是不同工具包,每一个工具包都有各种不同的工具(如函数)供我们使用进而实现各种不同的功能。
模块使用方法
python
import 模块名
from 模块名 import 类、变量、方法等
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
- 创建一个custom_model.py文件
python
def add_plus(x,y):
res = x + y
print(res)
def sub_plus(x,y):
res = x - y
print(res)
- 创建一个test.py文件,在这个文件中会引用custom_model这个模块,然后调用其中的函数
- import 模块名
python
import custom_model
ustom_model.add_plus(1, 2)
- from 模块名 import 类、变量、方法等
python
from custom_model import add_plus
add_plus(1, 2)
- from 模块名 import *
python
from custom_model import *
add_plus(1, 2)
sub_plus(5, 3)
- from 模块名 import 类、变量、方法等 as 别名
python
from custom_model import add_plus as ap
ap(1, 2)
- import 模块名 as 别名
python
import custom_model as cm
cm.add_plus(1, 2)
cm.sub_plus(5, 3)
包
包就是一个文件夹,在该文件夹下包含了一个_int_.py文件,该文件可用于包含多个模块文件。
从逻辑上看,包的本质依然是模块。模块的集合。
面向对象
类-实体(属性,函数/方法)
python
# 创建类
class 类名称:
类的属性(成员变量)
类的行为(成员方法)
# 基于类创建对象
对象名 = 类名称()
# 调用
对象名.成员变量
对象名.成员方法()
示例
python
#定义一个类,使用class关键字来定义,类名需要遵循驼峰命名法,类体内的代码需要缩进。
class Student:
name = None
sex = None
#定义一个方法,方法体内的代码需要缩进,调用方法时需要使用对象名加点号加方法名,如果方法有参数,需要在括号内传入参数值。
def say(self):
print(f"大家好,我是{self.name}")
def say_hi(self, msg):
print(f"大家好,我是{msg}")
#创建一个对象,使用类名加括号来创建对象,创建对象时会调用类的构造方法__init__,如果类中没有定义构造方法,则会使用默认的构造方法。
stu = Student()
stu.name = "小明"
stu.say()
stu.say_hi("小红")