
🚗🚗🚗🚗🚗🚗🚗 数据结构专栏🚗🚗🚗🚗🚗🚗🚗🚗🚗🚗
🛹🛹🛹🛹🛹🛹🛹小知识总结分享🛹🛹🛹🛹🛹🛹🛹🛹🛹🛹
🚀🚀🚀🚀🚀🚀🚀题目历练场🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🚢🚢🚢🚢🚢🚢🚢功能包与集合类介绍🚢🚢🚢🚢🚢🚢🚢🚢🚢
🛞🛞🛞🛞🛞🛞🛞java EE🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞🛞
🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️大模型🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️🙂↔️
前言
从本章博客开始系统学习大模型开发,前几篇文章主要是py语言的熟悉与学习.让我们开始吧!
一 、基础部分
1. 环境与pycharm的第一个python项目
环境配置
- anaconda(水蟒) : 集成大量扩展包的环境。
- 下载PyCharm在线编译环境。

2. 注释

3.变量
-
变量
- 存储数据的容器
- 变量中存储的数据是临时的
- 变量中的数据是可以发生变化的
-
定义
- 变量 = 变量是数值 后者赋值给前者
- 不能以数字开头,严格区分大小写,不能内置关键字
- 必须使用字母,数字,下划线
4.数据类型(软编译语言)
| int | 整数 |
|---|---|
| float | 浮点型 |
| Boolean | 真假 |
| String | 字符串 |
python
a = 10
b = 9.99
c = False
d = '多多益善'
print(type(a))
print(type(b))
print(type(c))
print(type(d))
5.运算类型
| 加法 | |
|---|---|
| 减法 | - |
| 乘法 | * |
| 除法(浮点数) | / |
| 整除 | // |
| 幂指数 | a ** b |
| 取模 | % |
6.输入输出
- 输入
python
password = input('请输入你的密码:')
print(password)
print(type(password)) # string类型
num1 = int(input('请输入整数'))
print(num1)
print(type(num1))
num2 = float(input('请输入浮点数'))
print(num2)
print(type(num2)
- 输出

python
# 通过格式化输出
name = '多多'
age = 18
print(f'我的名字是{name}岁了,今年{age:.2f}',end='.')
7.模块(包)
- import 模块 / form 模块名 import 函数名或变量名
python
import random
print(random.randint(1, 10))
from random import randint
print(randint(1, 10))
8.选择结构
| if...else | 单分支 |
|---|---|
| if...elif...else | 多分支 |
| if...(if...) | 嵌套 |
| and or not | 且 或 取非 |
9.循环结构
| for循环 | |
|---|---|
Python
for i in 'hello world':
print(i)
sum = 0
for a in range(1,101):
sum += a
print(sum)
for i in range(1,5): #1-4
if i == 3:
print(f'第{i}个有脏东西,吃下一个')
continue
print(f'正在吃第{i}个苹果')
print()
for i in range(1, 5): # 1-4
if i == 3:
print('吃饱了 就不吃了')
break
print(f'正在吃第{i}个苹果')
10. 数据容器
一 、列表list\[\]
python
# 创建
list = [10,20,30]
print(list[0])
print(list[1])
print(list[2])
print(list)
# 添加元素
list.append(40)
print(list)
# 删除元素
del list[0]
print(list)
# 更新元素
list[0] = 99
print(list) # 此时下表1 就是20 更新为99
# 遍历
for item in list:
print(item)
list1 = [1,2,3]
list2 = [4,5,6]
# 长度
print(len(list1))
# 加法合并
print(list1 + list2)
# 乘法复制
print(list1*3)
# 关键字是否在列表中
print(3 in list1)
print(3 in list2)
切片操作
- 看步长 + : 向右移动
- 绘制索引
- 只顾头不顾尾
python
# 切片
list1 = [1,2,3,4,5,6,7]
print(list1[0:3:1]) #1-4
print(list1[0:3:2]) #1 3
print(list1[0:3]) # 默认是步长1
print(list1[0:]) # 从左索引 到最后结束
print(list1[:5]) # 从0开始到 5-1print(list1[::]) # 截取整个列表
print(list1[::-1]) # 倒着打印
相关函数
Python
# 合并新列表
list2 = [1,2,3,4,5,6,7]
list2.extend([10,11,22])
list2.remove(6)
print(list2)
list2.reverse()
print(list2)
list2.sort() # 默认是倒叙
print(list2)
list2.sort(reverse=True)
print(list2)
二、元组(非可变容器) ()
! 注意 : 一个数据的时候 需要用逗号标识
python
tuple1 = (10,)
print(type(tuple1))
tuple2 = (1,2,3) # 索引定位
print(tuple2[0])
for item in tuple2:
print(item)
print(tuple2.count(1))
三 、字典(键值对) {}
python
# 字典
dict1 = {}
dict2 = {'雷神' : '雷伊','属性':'电系'}
# 直接打印
print(dict1)
print(dict2)
# 通过key 找到val
print(dict2['雷神'])
# 更新
dict2['雷神'] = '雷霆万钧-雷神雷伊'
print(dict2)
dict2['光之子'] = '小米'
print(dict2)
# 删除
del dict2['光之子']
print(dict2)
# 清空
dict2.clear()
print(dict2)
集合(无序,去重){}
python
#集合
# 定义集合
set1 = set()
set1 = {1,2,3}
print(set1)
set2 = {1,1,1,2,2,3}
print(set2)
set3 = {1,2,3,4,5,6}
set4 = {4,5,6,7,8,9,10}
# 交集
print(set4 & set3)
# 并
print(set3|set4)
# 差集
print(set4-set3)
print(set3-set4)
print(set3^set4)
11.函数部分
一 、函数
- def 函数名(形参) :
- 不需要指明返回值类型
- 全局变量 : 在函数之外,在全局和局部中都都可以访问 局部变量 : 在函数之内,在局部中访问
- **globle关键字: 在局部作用域中声明全局变量,就可以在局部作用域中控制全局变量了
python
num = 100
num1 = 100
def func1():
global num
num = 0
print(num)
func1() # 0
print(num) #0
print(num1) #100
- 传参方式
| 位置传参 | func('tom','20','美国') |
|---|---|
| 关键词传参 | func(name= 'tom',address='美国',age=20) |
- 默认参数 : 放在一般参数的右边
python
def func(name,age,address = '美国'):
print(name,age,address)
func('tom',20)
func('多多',18,'中国') # 可以覆盖
- 不定长参数(函数参数不固定)
| *args | 默认以元组形式进行参数暂时存储 |
|---|---|
| **kwargs | 默认以用字典形式对参数进行缓存 |
python
def func1(*args):
print(args)
func1(1,2,3,4) # (1,2,3,4)
def func2(**kwargs):
print(kwargs)
func2(name = 'tom',age = 18) #{'name': 'tom', 'age': 18}
- lambda 表达式
- lambda 参数列表 : 表达式
python
func = lambda : 100
print(func())
func1 = lambda a,b: a+b
print(func1(10,99))
func2 = lambda a,b,c=100: a+b +c
print(func2(10,99))
func3 = lambda *args : args
print(func3(1,2,3))
func4 = lambda **kwargs: kwargs
print(func4(雷神= '雷伊')) // key 不用添加'',val需要添加
12.面向对象
- 万物都可是对象,都可以被实例化.
- 分析动作是那些实体发出的
- 实体,添加对应的属性与方法
- 让对象调用相应的功能与动作
- 类的定义
- class 类名 (object) :
属性/方法
python
class Student(object):
def eat(self):
print('正在吃东西')
def sleep(self):
print('正在睡觉')
s1 = Student()
s1.eat()
s1.sleep()
s2 = Student()
s2.eat()
s2.sleep()
- self关键字
指向类实例化的对象本身
Python
class person(object):
def speak(self):
print(self)
print('hello')
p1 = person()
print(p1) # <__main__.person object at 0x000001EAA87EFF80>
p1.speak() # <__main__.person object at 0x000001EAA87EFF80>
- 属性
实例化后进行属性的添加
Python
class person(object):
pass # 没有效果 保证代码完整性
p1 = person()
# 设置与获取
p1.name = 'tom'
print(p1.name)
- _ init _ () | _ call _ () 魔术方法 (类似于构造方法)
python
class person(object):
def __init__(self,name,age):
self.name = name
self.age = age
p1 = person('多多','20')
print(p1.name)
print(p1.age)
# 将实例化对象当做函数进行调用
class Adder(object):
def __init__(self,val = 0):
self.val = val
def __call__(self,x):
return self.val + x
adder = Adder()
print(adder(2)) # 用实例化的对象 进行传参
- 继承
只能继承父类中公共方法与属性
python
class person(object):
def __init__(self,name,age):
self.name=name
self.age=age
def speak(self):
print("我会说中文")
class student(person):
pass
s1 = student("多多",20)
s1.speak()
print(s1.name)
print(s1.age)
- 重写(覆盖)
子类中与父类方法重名后,子类方法就会覆盖父类方法
Python
class person(object):
def __init__(self,name,age):
self.name=name
self.age=age
def speak(self):
print("我会说中文")
def eat(self):
print("吃东西")
class American(person):
def speak(self):
print("i can speak english")
american = American("多多",20)
american.speak()
american.eat() # 默认还是父类的方法
- super在重写的方法中,可以强制调用父类方法
python
class person(object):
def __init__(self,name,age):
self.name=name
self.age=age
def speak(self):
print("我会说中文")
def eat(self):
print("吃东西")
class American(person):
def __init__(self,name,age,sex):
super().__init__(name,age) #强制调用父类方法
self.sex =sex # 子类自己特别的属性
def speak(self):
print("i can speak english")
american = American('多多',20,'女')
print(american.name,american.age,american.sex)
总结
因为py是弱编程语言,学习起来还是比较简单的.下一篇介绍py面向对象的知识.那下一章见喽~
- 我是Dylan
- 无限进步