python快速入门Day1

1.基本语法

算术运算符和逻辑运算符

# + 加法
print(1+2)
# - 减法
# * 乘法
# / 除法
# % 取模
print(3%2)  #1
# // 取整除
print(3//2)  #1


a=2
b=3
print(a==b)


if(a==b):
    print("a等于b")
else:
    print("a不等于b")


if(a<=b):
    print("a小于等于b")
else:
    print("a大于b")


if(a>=b):
    print("a大于等于b")
else:
    print("a小于b")


if(a!=b):
    print("a不等于b")
else:
    print("a等于b")


# and,or,not 逻辑运算符
if(a==2 and b==3):
    print("a等于2且b等于2")

if(a==2 or b==3):
    print("a等于2或b等于2")

if(not a==2):
    print("a不等于2")

赋值运算符

c=3
d=1
c+=d #c=c+d
print(c) #4

c=3
d=1
c-=d #c=c-d
print(c) #2

2.数据类型

#数据类型:Number,String,List,Tuple,Set,Dictionary

aa=123 #数字
aaa=123.5 #数字——浮点数 float point (fp32)32位浮点数
bb="hello" #字符串
cc=[1,2,5,6] #cc=["haha","2","你","6"] #列表
dd=(1,2,3,4) #元组 python特有,大部分放在参数里面用
ee={1,2,3,4} #集合
ff={"name":"Tom","age":18} #字典 这个有2个元素,冒号左边名字,冒号右边值

#大语言模型中用的最多的是列表和字典

3.语法细节

aa=123 #数字
aaa=123.5 #数字——浮点数 float point (fp32)32位浮点数
bb="hello" #字符串
cc=[1,2,9,6] #cc=["haha","2","你","6"] #列表
dd=(1,2,3,4) #元组 python特有,大部分放在参数里面用
ee={1,2,3,4} #集合
ff={"name":"Tom","age":18} #字典 这个有2个元素,冒号左边名字,冒号右边值

#变量 类
#常用函数
#len长度
print(len(cc)) #4
print(len(ff)) #2
print(len(bb)) #5

#range范围
range(10) #0,1,2,3,4,5,6,7,8,9 从0到9

#enumerate
enumerate(bb) #0:'h',1:'e',2:'l',3:'l',4:'o'  不能直接打印
#for...in...循环
for x in enumerate(bb):
    print(x)
#打印结果
#(0,'h')
#(1,'e')
#(2,'l')
#(3,'l')
#(4,'o')

#sorted排序
print(sorted(cc))  #[1,2,6,9]

#set去掉重复的字
text="北京天安门今天天气好好"
print(set(text)) #{'天','北','门','京','气','今','好','安','很'}


while true:
    print("hello")
    break

4.方法 

4.1自定义方法

#自定义方法
def printMyNumber(myElement):
    for x in enumerate(myElement):
        print(x)

#调用
myelem1="hello world"
printMyNumber(myelem1)
#(0,'h')
#(1,'e')
#(2,'l')
#(3,'l')
#(4,'o')
#(5,' ')
#(6,'w')
#(7,'o')
#(8,'r')
#(9,'l')
#(10,'d')

定义了一个函数 getBatch(),用于将输入的 my_batch 列表转换为 PyTorch 的张量(tensor),并且指定了张量的类型为 torch.long(即 64 位整数类型)。

通过此代码输出一个张量,其中包含 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

import torch
def getBatch(my_batch):
    result=torch.tensor(my_batch,dtype=torch.long)
    return result

myBatch=[1,2,3,4,5,6,7,8,9,10] #"中"

print(getBatch(myBatch))
#tensor([1,2,3,4,5,6,7,8,9,10])

4.2类

d_model = 256
num_heads = 8
class TransformerBlock:
    def __init__(self, d_model, num_heads):
        self.d_model = d_model
        self.num_heads = num_heads
    def getDModel(self) :
        return self.d_model

tf= TransformerBlock(d_model, num_heads)

print (tf.getDModel))#256
import torch.nn as nn

# 定义一个TransformerBlock类,继承自PyTorch的nn.Module
class TransformerBlock(nn.Module):
    # 初始化函数,设置模型的维度(d_model)和头数(num_heads)
    def __init__(self, d_model, num_heads):
        super(TransformerBlock, self).__init__()  # 调用父类的初始化函数
        self.d_model = d_model  # 设置d_model(模型维度)
        self.num_heads = num_heads  # 设置num_heads(注意力头数)

    # 获取d_model(模型维度)的方法
    def getDModel(self):
        return self.d_model  # 返回d_model值

    # 前向传播函数(目前为空,未来会实现具体的逻辑)
    def forward(self, x):
        pass  # 占位符,未来可以定义模型的前向传播逻辑

# 实例化TransformerBlock类,传入d_model和num_heads
d_model = 256  # 模型的维度
num_heads = 8  # 注意力头数
tf = TransformerBlock(d_model, num_heads)  # 创建TransformerBlock对象

# 调用getDModel()方法,打印模型的维度
print(tf.getDModel())  # 输出:256

 4.3调用第三方的“方法”(通过类.方法名)

使用 pandas 库创建并打印一个简单的 DataFrame。pandas 是 Python 中用于数据处理和分析的强大库,DataFrame 是其最常用的数据结构之一,类似于二维的表格数据。

print(pd.DataFrame({"a":[1,2,3],"b":[4,5,6]}))

#     a    b
#0    1    4
#1    2    5
#2    3    6
import numpy as np  # 导入 numpy 库,用于创建和操作数组
import pandas as pd  # 导入 pandas 库,用于数据处理和分析

# 创建一个结构化数组(structured array)
# np.array() 创建一个 3x3 的数组,每行是一个元组 (1, 2, 3),(4, 5, 6),(7, 8, 9)
# dtype 是定义每个字段的数据类型,包含 'a'、'b' 和 'c' 字段
data = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)], dtype=[("a", "i4"), ("b", "i4"), ("c", "i4")])

# 将 NumPy 结构化数组转换为 pandas DataFrame
# columns 参数定义 DataFrame 的列名顺序,这里选取 'c' 和 'a' 两列
print(pd.DataFrame(data, columns=['c', 'a']))

4.4OpenAI库举例子

# 导入 OpenAI 库
from openai import OpenAI

# 创建一个 OpenAI 客户端实例
client = OpenAI()

# 创建一个聊天对话请求
completion = client.chat.completions.create(
    model="gpt-3.5-turbo",  # 使用 GPT-3.5 模型
    messages=[  # 定义对话消息
        {"role": "system", "content": "你是一个数学助手"},  # 系统消息,设定模型的角色
        {"role": "user", "content": "3的平方根是多少?"}  # 用户提问:3的平方根
    ]
)

# 打印模型生成的回答
print(completion.choices[0].message)  # 打印模型对用户提问的回答



#如果代码成功执行并且模型正确回答用户的问题,输出可能类似于:3的平方根是大约 1.732。

 4.5列表推导式

列表推导式的语法可以看作是:

[expression for item in iterable if condition]
# 定义一个包含数字的列表
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 使用传统的for循环实现,计算小于5的数字的平方
def getSqt(my_list):
    result = []  # 创建一个空列表用于存放结果
    for x in my_list:  # 遍历my_list中的每个元素
        if(x < 5):  # 如果元素小于5
            result.append(x**2)  # 将该元素的平方添加到结果列表中
    return result  # 返回结果列表

# 打印传统方法的计算结果
print(getSqt(my_list))  # 输出:[1, 4, 9, 16]


# 使用列表推导式实现相同的功能
my_r2 = [x**2 for x in my_list if x < 5]  # [1, 4, 9, 16]
# 打印使用列表推导式得到的结果
print(my_r2)  # 输出:[1, 4, 9, 16]

4.6特殊print:print(f"Input text:{prompt}")

#特殊print:print(f"Input text:{prompt}")

# 定义城市名称和人口数量
city = "北京"  # 城市名
population = 20000000  # 城市人口数量

# 使用 f-string 进行格式化打印
print(f"{city}市有{population}人口")  # 输出:北京市有20000000人口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值