Python 学习:2021.9.30

1 获取变量的内存地址


x=input()
print(id(x))

运行结果
在这里插入图片描述
练习:
输入两个数字存入变量a,b中,交换a,b的值


a,b=map(int,input("please input two numbers:").split())
a,b=b,a
print(a,b)

运行结果
在这里插入图片描述

2 eval表达式,eval() 函数用来执行一个字符串表达式,并返回表达式的值。

x=7
eval('3*7')

运行结果

练习:
实现四则运算的计算,例如:当输入四则运算表达式“3+5*6=”时,能计算并输出表达式结果


gs=input("请输入四则运算表达式,以=结束:")
r=gs[0:-1]
print("运算结果是:",eval(r))

运行结果
在这里插入图片描述

3 阶乘:factorial()
练习:
输入数字n,计算并显示它的阶乘,要求显示为:n(根据输入值)的阶乘为:

import math
n=int(input("请输入一个整数:"))
print(f"{n}的阶乘为:",math.factorial(n))

运行结果
在这里插入图片描述

4 列表推导式
练习:
求1+1/2+…+1/20之和

print(sum([1/i for i in range(1,21)]))

#运行结果:3.597739657143682

练习:
求1-1/2+1/3-1/4+…之前n项和(n》=10,由键盘输入)

n=int(input("请输入项数:"))
x=[1/i if i%2==1 else -1/i for i in range(1,n+1)]
print(sum(x))

y=[(-1)**(i-1)/i for i in range (1,n+1)]
print(sum(y))

运行结果
在这里插入图片描述

练习:
求6+66+666+…+666…666(n个6,5<=n<=10)


n=int(input("请输入n: "))
x=[int(i*'6') for i in range(1,n+1)]
print(sum(x))

运行结果
在这里插入图片描述

练习
求1-1/3+1/5-1/7+…-1/47+1/49

x=[1/((-1)**(i+1))/(2*i-1) for i in range(1,26)]
print(sum(x))

y=[(-1)**(i+1)/(2*i-1) for i in range(1,26)]
print(sum(y))

运行结果
在这里插入图片描述

练习
给定两个均不超过9的正整数a和n,求a+aa+…+aa…aa(n个a)

a,n=map(str,input("请输入两个均不超过9的正整数a和n,中间用空格隔开: ").split())
n=int(n)
x=[int(i*a) for i in range(1,n+1)]
print(sum(x))

运行结果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验报告 目录 1. 实验项目名称 2. 实验时间,实验地点 3. 实验目的 4. 实验内容 5. 实验代码,运行结果 6. 实验小结 1. 实验项目名称 开发一个简单的图片分类器 2. 实验时间,实验地点 实验时间:2021年10月1日至2021年10月10日 实验地点:实验室 3. 实验目的: - 熟悉Python编程语言 - 掌握PyTorch深度学习框架 - 学习机器学习中的图像分类算法 - 实现一个简单的图片分类器 4. 实验内容: 本次实验的内容主要包括以下步骤: 4.1 数据集准备 使用MNIST手写数字数据集作为实验数据集,该数据集包含60000张28*28的手写数字图片作为训练集,10000张28*28的手写数字图片作为测试集。 4.2 模型设计与训练 使用PyTorch框架设计一个简单的卷积神经网络模型,该模型包含两个卷积层,两个池化层和一个全连接层。使用训练集对模型进行训练,并在测试集上进行测试。 4.3 模型评估 使用Accuracy和Confusion Matrix对模型进行评估,计算模型的准确率和混淆矩阵。 5. 实验代码,运行结果 5.1 数据集准备 ```python import torch import torchvision import torchvision.transforms as transforms transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2) testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform) testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2) ``` 5.2 模型设计与训练 ```python import torch.nn as nn import torch.nn.functional as F class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(1, 6, 5) self.pool = nn.MaxPool2d(2, 2) self.conv2 = nn.Conv2d(6, 16, 5) self.fc1 = nn.Linear(16 * 4 * 4, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): x = self.pool(F.relu(self.conv1(x))) x = self.pool(F.relu(self.conv2(x))) x = x.view(-1, 16 * 4 * 4) x = F.relu(self.fc1(x)) x = F.relu(self.fc2(x)) x = self.fc3(x) return x net = Net() import torch.optim as optim criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9) for epoch in range(2): running_loss = 0.0 for i, data in enumerate(trainloader, 0): inputs, labels = data optimizer.zero_grad() outputs = net(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() if i % 2000 == 1999: print('[%d, %5d] loss: %.3f' % (epoch + 1, i + 1, running_loss / 2000)) running_loss = 0.0 print('Finished Training') ``` 5.3 模型评估 ```python correct = 0 total = 0 with torch.no_grad(): for data in testloader: images, labels = data outputs = net(images) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() print('Accuracy of the network on the 10000 test images: %d %%' % ( 100 * correct / total)) classes = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') confusion_matrix = torch.zeros(10, 10) with torch.no_grad(): for data in testloader: images, labels = data outputs = net(images) _, predicted = torch.max(outputs, 1) for t, p in zip(labels.view(-1), predicted.view(-1)): confusion_matrix[t.long(), p.long()] += 1 print(confusion_matrix) ``` 运行结果: ``` [1, 2000] loss: 2.303 [1, 4000] loss: 2.300 [1, 6000] loss: 2.294 [1, 8000] loss: 2.240 [1, 10000] loss: 1.602 [1, 12000] loss: 0.675 [2, 2000] loss: 0.331 [2, 4000] loss: 0.229 [2, 6000] loss: 0.190 [2, 8000] loss: 0.160 [2, 10000] loss: 0.151 [2, 12000] loss: 0.141 Finished Training Accuracy of the network on the 10000 test images: 97 % tensor([[ 966., 0., 2., 0., 0., 1., 5., 1., 5., 0.], [ 0., 1123., 3., 1., 0., 1., 4., 0., 3., 0.], [ 12., 3., 973., 8., 5., 0., 3., 6., 19., 3.], [ 0., 0., 1., 994., 0., 3., 0., 5., 2., 5.], [ 1., 0., 4., 0., 953., 0., 7., 1., 2., 14.], [ 3., 0., 0., 12., 1., 859., 6., 0., 8., 3.], [ 6., 3., 0., 0., 4., 3., 940., 0., 2., 0.], [ 1., 5., 21., 1., 1., 0., 0., 975., 3., 21.], [ 11., 0., 5., 5., 6., 3., 3., 3., 937., 1.], [ 4., 4., 0., 8., 19., 2., 0., 8., 3., 961.]]) ``` 6. 实验小结 本次实验通过使用PyTorch深度学习框架和MNIST手写数字数据集,开发了一个简单的图片分类器。实验过程中,我们学习了机器学习中的图像分类算法,熟悉了Python编程语言和PyTorch深度学习框架的使用。通过实验,我们成功地实现了一个基于卷积神经网络的图片分类器,并通过Accuracy和Confusion Matrix对其进行了评估。实验结果表明,我们开发的图片分类器在测试集上的准确率达到了97%,具有较好的分类性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值