求大佬帮忙注释pytorch代码(有没有大神帮忙注释一下这段python程序,要详细,越详细追加给分。)
有没有大神帮忙注释一下这段python程序,要详细,越详细追加给分。
#!/bin/python
#coding=gb2312
import os;###导入OS模块
try: ##尝试导入cPickle模块 如果发生错误 就导入Pickle模块
import cPickle as p;
except:
import pickle as p;
class Person: ######定义Person类 分别存放
def __init__(self,name="n",sex="s",mobile="m",email="e",address="a"):
self.name=name;
self.sex=sex;
self.mobile=mobile;
self.email=email;
self.address=address;
def alterInfo(self,mobile,email,address):
self.mobile=mobile;
self.email=email;
self.address=address;
if os.path.exists("dir.txt")==False: #判断运行路径(dir.txt)是否存在
dirlist={};#空的通讯录字典
p.dump(dirlist,open("dir.txt",'w'),1);#把空的通讯录写入到文本文件中 写入的方式打开文件,会覆盖已存在的文件
print "请输入要进行的操作(添加:a,删除:r,修改:m,查找:f,退出:q,显示所有:s):";###打印出提示用户
list=p.load(open("dir.txt",'r'));##如果前面文件不存在 现在开始创建并打开一个dir.txt文件 默认以只读的方式打开
con=True; ##设置 con为真
while con: ####进入循环判断con是否为真
choice=raw_input("请选择你的操作(a,r,m,f,q,s):"); ##打印出提示用户操作
if choice=='a': ##如果用户输入a 就开始执行 要求用户输入 名字 性别 电话 邮箱 地址 并将用户输入的存入到列表中
#添加
n1=raw_input("请输入要添加人的姓名:");
s1=raw_input("请输入要添加人的性别:");
m1=raw_input("请输入要添加人的手机号码:");
e1=raw_input("请输入要添加人的邮箱地址:");
a1=raw_input("请输入要添加人的住址:");
per1=Person(n1,s1,m1,e1,a1);
list[n1]=per1;#加入到列表
print "添加%s成功!\n" %n1;
elif choice=='r':##如果用户输入r 就请用户输入姓名 执行删除操作
#删除
n2=raw_input("请输入要删除的联系人姓名:");
del list[n2];
print "删除%s成功!\n" %n2;
elif choice=='m':##如果用户输入m 就请用户输入姓名 执行修改操作
#修改
n3=raw_input("请输入要修改人的姓名:");
m3=raw_input("请输入要修改人的手机号码:");
e3=raw_input("请输入要修改人的邮箱地址:");
a3=raw_input("请输入要修改人的住址:");
per3=list[n3];
per3.alterInfo(m3,e3,a3);
list[n3]=per3;
print "修改%s成功!\n" %n3;
elif choice=='f':##如果用户输入f 就请用户输入姓名 执行修改操作
#查找
n4=raw_input("请输入要查找人的姓名:");
try:
per4=list[n4];
print "%s的信息如下:" %n4;
print "性别:%s,手机:%s,邮箱:%s,住址:%s\n" %(per4.sex,per4.mobile,per4.email,per4.address);
except:
print "%s不存在,没有这个人!\n" %n4;
elif choice=='s':##如果用户输入s 就打印出现在所有的名字 性别 电话 邮箱 地址
#显示所有联系人
print "现有联系人"
for i in list:
print "联系人名字:",list[i].name,"\n性别:",list[i].sex, "移动电话:",list[i].mobile,"地址:",list[i].address,"电子邮件:",list[i].email;
#此处i表示一个person对象
elif choice=='q':##如果用户输入s 就保存当前列表到dir.txt 并退出循环
p.dump(list,open("dir.txt",'w'),1);
con=False;#退出
else:
print "请输入正确的操作选项";
continue;
如何快速地注释Python代码
我用的pycharm,有三种注释方式:
1.用 一对""" 括起来要注释的代码块。
2.用一对'''括起来要注释的代码块。
3.选中要注释的代码,按下ctrl+/注释。
求大神帮忙把写下代码的详细注释
function [Recognition_rate]=MLbayesface %定义函数名
clear;%清除内存
t0=clock;%计算当前年月日时秒
Class_Train_NUM=5;%训练个数
Class_Sample_NUM=10; % 采样个数
Class_Test_NUM=Class_Sample_NUM-Class_Train_NUM;%每类的测试样本数也是5
Class_NUM=40;%文件夹个数,也就是脸的个数
Train_NUM=Class_NUM*Class_Train_NUM; % 训练总个数
Test_NUM=Class_NUM*(Class_Sample_NUM-Class_Train_NUM); %测试用总数
%以上初始化各个参数
s=1;
for r=1:Class_NUM %1到40个脸
for t=1:Class_Train_NUM %1到5个脸
%string=['D:\orl\s' int2str(r) '_' int2str(t)];
string=['s' int2str(r) '\' int2str(t)];%生成sr文件夹中第t个脸的文件名
A=imread(string,'bmp');%读取sr文件夹中第t个脸的图形
B=im2double(A);%转化为双精度数
Train_DAT(:,s)=B(:);%生成列向量
s=s+1;%计数增加1
end
end
%以上读取训练样本
s=1;
for r=1:Class_NUM %1到40个脸
for t=Class_Train_NUM+1:Class_Sample_NUM %取第6到10脸
%string=['D:\orl\s' int2str(r) '_' int2str(t)];
string=['s' int2str(r) '\' int2str(t)];%生成sr文件夹中第t个脸的文件名
A=imread(string,'bmp');%读取sr文件夹中第t个脸的图形
B=im2double(A);%转化为双精度数
Test_DAT(:,s)=B(:);%生成列向量
s=s+1;%计数增加1
end
end
%以上读取测试样本
imsize=size(A);%图片的纵、横像素数,即行数、列数
Image_row_NUM=imsize(1);%行数
Image_col_NUM=imsize(2);%列数
feturesize=Image_row_NUM*Image_col_NUM;%特征点数
%现在用的已经是将亮度变为小数,就是double了。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%构造I和E
%类内的用均值,有40类,每类5个,相互之间的差异就有40*5=200
%构造一个10304*800的矩阵intra代表类内的差异
intra=[];
for a=1:40 %1到40个脸
k=0;%赋初值
for b=1:5 %1到5个脸
c=1;%赋初值
while b+c<6 %条件循环,当等于6时结束循环,就是到第5个脸后结束
k=k+1; %%计数增加1
temp(:,k)=Train_DAT(:,(a-1)*5+b)-Train_DAT(:,(a-1)*5+b+c);%测试数据的前列减后列