大写金额转化成数字小写金额

xxaacc 2008-11-09 03:17:08
大写金额的有了
那如何能把大写金额转化成小写金额,比如 壹亿零壹元转化成数字
...全文
3893 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙岛主 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lihuasoft 的回复:]
PS:注意,我的函数里用的是“圆”而不是“元”,如不符合会计规则请自行更改。
[/Quote]
会计准则明确规定,使用“元”或“圆”都是可以的。
auqfiudh 2008-11-10
  • 打赏
  • 举报
回复
0,000.00
僵哥 2008-11-10
  • 打赏
  • 举报
回复
要求金额大写的场合通常与会计工作有关.要求精确到的最小单位是"分",而不会出现单位"厘"
mygodsos 2008-11-10
  • 打赏
  • 举报
回复
我也来一个,有空再测试效率

function RmbToNum(const S:WideString):string;
//===[posex对widestring居然返回错值,只有自己写一个
function PosWStr(SubStr:WideChar;S:WideString;Offset:Integer=1):Integer;
begin
Result:=0;
while offset<=Length(s) do
begin
if SubStr=s[offset] then
begin
Result:=Offset;
Offset:=Length(s);
end;
inc(Offset);
end;
end; //==========]
//===[分段处理,整数部分Flag=1,小数部分Flag:=0
function RMBPart(s,ARmbUnits:WideString;Flag:integer):string;
const
AUpper:WideString='零壹贰叁肆伍陆柒捌玖';
var
Amount,sNum:WideString;
i,n,k:integer;
IsNum:Boolean;
begin
i:=Length(s);
if (Flag=0)and (pos(s[i],ARmbUnits)=0) then
begin
ShowMessage('非0值小数只能到厘');
Exit;
end;
k:=1;
IsNum:=False;
while i>0 do
begin
n:=PosWStr(s[i],ARmbUnits,k);
if n>0 then
begin
k:=n+1;
i:=i-1;
end; //if n>0
n:=Pos(s[i],AUpper);
if n>1 then
begin
sNum:=IntToStr(n-1)+StringOfChar('0',k-2);
i:=i-1;
IsNum:=True;
end
else if n=1 then i:=i-1;
if IsNum then
begin
Amount:=copy(sNum,1,length(sNum)-length(Amount))+Amount;
end;
end; //while i>0
if Flag=1 then Result:=Amount
else Result:='.'+StringOfChar('0',3-k+1)+Amount; //加小数点
end;//===========]

const
AInt:WideString='元拾佰仟万拾佰仟亿拾佰仟万拾佰仟';
ADecimal:WideString='厘分角';
var
dotPos,Len:integer;
sInt,sDecimal:WideString;
begin
Len:=Length(s);
dotPos:=Pos('元',s);
if dotPos=0 then
Result:='0'+RMBPart(s,ADecimal,0)
else
if dotPos=Len then
Result:=RMBPart(s,AInt,1)
else
begin
sInt:=Copy(s,1,dotPos-1);
sDecimal:=Copy(s,dotPos+1,Len-dotPos);
Result:=RMBPart(sInt,AInt,1)+RMBPart(sDecimal,ADecimal,0);
end;
end;
僵哥 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 mygodsos 的回复:]
19楼在照搬unsigned的上一篇的转成大写金额的代码,

真无聊,那个代码我昨天可是仔细研究过的
[/Quote]
19楼的在梦游
僵哥 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 mygodsos 的回复:]
测试环境:delphi2007 Winxp sp3
壹拾亿零壹拾万零壹拾壹元壹角贰分叁厘
1000100011.123
10000000100011.119
循环50000次,lihuasoft耗时:0

lihuasoft的有错,我把你的圆已经改成元了
===================
测试环境:delphi2007 Winxp sp3
壹拾亿零壹拾万零壹拾壹元壹角贰分叁厘
1000100011.123
10000000100011.119
循环50000次,unsigned耗时:0

unsighed也一样的错,
===============
没法比较…
[/Quote]
在六楼我就已经提示过了.
mygodsos 2008-11-10
  • 打赏
  • 举报
回复
19楼在照搬unsigned的上一篇的转成大写金额的代码,

真无聊,那个代码我昨天可是仔细研究过的
mygodsos 2008-11-10
  • 打赏
  • 举报
回复
我不想争谁对谁错,这个是楼主的事

我只是想看看有没有更有效率的方法,我也好改进我的代码

当初写这个代码的时候也是从网上弄了一堆没测试过的的代码,后面实在没办法了才自己写
lzd123 2008-11-10
  • 打赏
  • 举报
回复
uses
math;

const mnUnit:WideString ='分角元';
const OtherWords:WideString='整负';
const hzUnit:WideString = '拾佰仟万拾佰仟亿';
const hzNum:WideString='零壹贰叁肆伍陆柒捌玖';

function Money2ChineseCapital2(const Num:double ): WideString;
var
szNum:PWideChar;
i,iLen,iLen2, iNum, iAddZero,ResultCount:Integer;
buff:AnsiString;
buf:PAnsiChar;

dblNum: Double;
begin
SetLength(Result,33*2 + 1);
iAddZero := 0;
if Num < 0.0 then
dblNum := Num * 100.0 + 0.5
else
dblNum := Num * 100.0 - 0.5;

buff := format('%0.0f',[dblNum]);
if Pos(buff,'e')>0 then begin
SetLength(Result,0);
Raise Exception.Create('数值过大!');
Exit;
end;
iLen := Length(buff);
szNum := PWideChar(Result);
buf := PAnsiChar(buff);
if(Num<0.0) then
begin
szNum^:=OtherWords[2];
Inc(szNum);
Inc(buf);
Dec(iLen);
end;

for i:=1 to iLen do
begin
iNum :=Ord(buf^)-48;
Inc(buf);
iLen2 := iLen-i;
if(iNum=0) then
begin
if(((iLen2-2) mod 4)=0) and ((iLen2-3)>0) and (((iLen2>=8) or (iAddZero<3))) then
begin
szNum^ := hzUnit[(iLen2-3) mod 8 + 1];
Inc(szNum);
end;
Inc(iAddZero);
if(iLen>1) and (iLen2=1) and (buff[iLen] <> '0') then
begin
szNum^:=hzNum[1];
Inc(szNum);
end;
end
else
begin
if(((iAddZero>0) and (iLen2>=2)) and (((iLen2-1) mod 4)<>0) or ((iAddZero>=4) and ((iLen2-1)>0))) then
begin
szNum^:=hzNum[1];
Inc(szNum);
end;
szNum^:=hzNum[iNum+1];
Inc(szNum);
iAddZero:=0;
end;
if (iAddZero<1) or (iLen2=2) then
begin
if(iLen-i>=3) then
begin
szNum^:=hzUnit[(iLen2-3) mod 8 + 1];
Inc(szNum);
end
else
begin
szNum^:=mnUnit[(iLen2) mod 3 +1 ];
Inc(szNum);
end;
end;
end;
ResultCount := szNum-PWideChar(Result);
if((Num < 0.0) and (ResultCount - 1 = 0)) or ((Num>=0.0) and (ResultCount=0)) then
begin
szNum^:=hzNum[1];
Inc(szNum);
szNum^:=mnUnit[3];
Inc(szNum);
szNum^:=OtherWords[1];
Inc(szNum);
Inc(ResultCount,3);
end
else
if((Num<0.0) and (buff[iLen+1] ='0')) or ((Num>=0.0) and (buff[iLen] ='0')) then
begin
szNum^:=OtherWords[1];
Inc(ResultCount);
end;

SetLength(Result, ResultCount);
end;
mygodsos 2008-11-10
  • 打赏
  • 举报
回复
测试环境:delphi2007 Winxp sp3
壹拾亿零壹拾万零壹拾壹元壹角贰分
1000100011.12----s
1000100011.120
循环1次,mygodsos耗时:0
1000100011.12----s
10000000100011.119
循环1次,lihuasoft耗时:0
1000100011.12----s
10000000100011.119
循环1次,unsigned耗时:0
======================
请看

另外你说的
“10000000100011也可以理解为:1000100011”
这个我不理解。
“从字面上讲,都说得通。所以,用大写金额描述亿级以上的数据,本身就不具备实用性。”
这个我也不理解,亿元用得很多,我接触到的合同,嘿嘿
lihuasoft 2008-11-10
  • 打赏
  • 举报
回复
to:乌龙哈里:

说说我自己的观点:

壹拾亿零壹拾万零壹拾壹元壹角贰分叁厘
-----------
首先,这个问题是面向实际应用的,“厘”根本就没有必要出现。

然后,大写金额如果处理到“亿”级,本身在表达上就存在二义性。例如:

壹拾亿零壹拾万零壹拾壹元

---可以理解为:“壹拾亿零壹拾”个万,再加上“壹拾壹元”,其结果就是:
1000000010*10000 + 11 = 10000000100011
---也可以理解为:1000100011

这两种理解,从字面上讲,都说得通。所以,用大写金额描述亿级以上的数据,本身就不具备实用性。

当然,如果完全用会计单据的固定格式来描述,就不会出错了:

壹 拾亿 ◇ 亿 ◇ 仟万 ◇ 佰万 壹拾 万 ◇ 万 ◇ 仟 ◇ 佰 壹 拾 壹 元 整

如果以这种形式的字串转换为小写,那算法会更加简单


如果抛除上述“厘”、“亿级以上大写二义”这两个问题,我不知你说我的代码、僵哥的代码有错,错在何处。
mygodsos 2008-11-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 3150379 的回复:]
正如楼上如说,技术含量低,就是麻烦
[/Quote]反对这种态度,看了你上篇的,你的程序没对
mygodsos 2008-11-10
  • 打赏
  • 举报
回复
测试环境:delphi2007 Winxp sp3
壹拾亿零壹拾万零壹拾壹元壹角贰分叁厘
1000100011.123
10000000100011.119
循环50000次,lihuasoft耗时:0

lihuasoft的有错,我把你的圆已经改成元了
===================
测试环境:delphi2007 Winxp sp3
壹拾亿零壹拾万零壹拾壹元壹角贰分叁厘
1000100011.123
10000000100011.119
循环50000次,unsigned耗时:0

unsighed也一样的错,
===============
没法比较效率,
嘎嘎,看来俺赚定了
僵哥 2008-11-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lihuasoft 的回复:]
PS:注意,我的函数里用的是“圆”而不是“元”,如不符合会计规则请自行更改。
[/Quote]
在实际应用当中"元"和"圆"都是可以使用的,同时也都是被认同的.在早年,确实曾经有老会计强令要求使用"圆"而不是"元",但是就目前的货币发行当中可以看出,在人民币当中有使用"元"也有使用"圆".之所以会计要求使用大写代替小写或数字,就是为了防止篡改.而对于"万"和"元"本来并不存在可篡改特性,所以现在已经放宽要求,而不一定要求使用"萬"和"圆"(实际上"元"并不是"圆"的简写,"元"的无简繁之分,而"圆"则是"圓"的简写)
lihuasoft 2008-11-09
  • 打赏
  • 举报
回复

-_- !

需要:

use Math;
lihuasoft 2008-11-09
  • 打赏
  • 举报
回复
PS:注意,我的函数里用的是“圆”而不是“元”,如不符合会计规则请自行更改。
lihuasoft 2008-11-09
  • 打赏
  • 举报
回复

function CC2M(S: WideString): double;
const
Src1 : WideString = '壹贰叁肆伍陆柒捌玖零';
Src2 : WideString = '拾佰仟万万万万亿';
Src3 : WideString = '角分';
var
I: integer;
B, V : integer;
begin
Result := 0;
B := 0;
for I := 1 to Length(S) do begin
if Pos(S[I], Src1) > 0 then begin
B := Pos(S[I], Src1);
if S[I] = '零' then B := -1;
end;
if (Pos(S[I], Src2)>0) and (B<>-1) then begin
V := Pos(S[I], Src2);
if B=0 then
Result := Result * Power(10, V)
else
Result := Result + B*Power(10, V);
B := 0;
end;
if (S[I] = '圆') and (B<>-1) then begin
Result := Result + B;
B := -1;
end;
if (Pos(S[I], Src3)>0) and (B<>-1) then begin
V := Pos(S[I], Src3);
Result := Result + B / Power(10, V);
end;
end;
end;

{ 以下是测试。比较大的数字没有把握。}


procedure TForm1.Button1Click(Sender: TObject);
var
S: WideString;
begin
S := '叁角';
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
S := '叁圆叁角';
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
S := '叁拾伍圆叁角';
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
S := '叁仟零叁拾伍圆叁角';
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
S := '伍佰万陆仟零叁拾伍圆整';
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
S := '壹仟零陆拾万叁拾伍圆叁角伍分';
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
S := '玖亿圆';
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
S := '玖亿柒仟伍佰万陆佰陆拾捌圆伍角叁分';//这样大的数字,没有把握了。不过此数字测试与僵哥的结果一样。
Memo1.Lines.Add(S);
Memo1.Lines.Add(FloattoStr(CC2M(S)));
end;
僵哥 2008-11-09
  • 打赏
  • 举报
回复
需要注意的,由于浮点数的本质,会存在误差,如果数值不是太大,建议使用Currency替代Double
function ChineseCapital2Money(Capital:WideString): double;
var
szNum:PWideChar;
Sign: double;
dblCurrent: Double;
I,iCount: Integer;
begin
Result := 0;
iCount := Length(Capital);
szNum := PWideChar(Capital);

if szNum^ = #$8d1f(*'负'*) then begin
Sign := -1;
Inc(szNum);
Dec(iCount);
end else begin
Sign := 1;
end;

while iCount > 0 do
begin
case szNum^ of
#$96f6(*'零'*): begin
dblCurrent := 0;
end;
#$58f9(*'壹'*): begin
dblCurrent := 1;
end;
#$8d30(*'贰'*): begin
dblCurrent := 2;
end;
#$53c1(*'叁'*): begin
dblCurrent := 3;
end;
#$8086(*'肆'*): begin
dblCurrent := 4;
end;
#$4f0d(*'伍'*): begin
dblCurrent := 5;
end;
#$9646(*'陆'*): begin
dblCurrent := 6;
end;
#$67d2(*'柒'*): begin
dblCurrent := 7;
end;
#$634c(*'捌'*): begin
dblCurrent := 8;
end;
#$7396(*'玖'*): begin
dblCurrent := 9;
end;

//十百千
#$62fe(*'拾'*): begin
Result := Result + dblCurrent * 10.0;
dblCurrent := 0;
end;
#$4f70(*'佰'*): begin
Result := Result + dblCurrent * 100.0;
dblCurrent := 0;
end;
#$4edf(*'仟'*): begin
Result := Result + dblCurrent * 1000.0;
dblCurrent := 0;
end;

//万亿
#$4e07(*'万'*): begin
Result := (Result + dblCurrent) * 10000.0;
dblCurrent := 0;
end;
#$4ebf(*'亿'*): begin
Result := (Result + dblCurrent) * 100000000.0;
dblCurrent := 0;
end;

//元角分
#$5143(*'元'*): begin
Result := Result + dblCurrent;
dblCurrent := 0;
end;
#$89d2(*'角'*): begin
Result := Result + dblCurrent * 0.1;
dblCurrent := 0;
end;
#$5206(*'分'*): begin
Result := Result + dblCurrent * 0.01;
dblCurrent := 0;
break;
end;

//整
#$6574(*'整'*): begin
break;
end;
else
Raise Exception.Create('输入源错误!');

end;
Inc(szNum);
Dec(iCount);
end;

Result := Result * Sign;
end;
僵哥 2008-11-09
  • 打赏
  • 举报
回复
Inc(szNum);
后面少了:
Dec(iCount);
僵哥 2008-11-09
  • 打赏
  • 举报
回复
function ChineseCapital2Money(Capital:WideString): double;
var
szNum:PWideChar;
Sign: double;
dblCurrent: Double;
I,iCount: Integer;
begin
Result := 0;
iCount := Length(Capital);
szNum := PWideChar(Capital);

if szNum^ = #$8d1f(*'负'*) then begin
Sign := -1;
Inc(szNum);
Dec(iCount);
end else begin
Sign := 1;
end;

while iCount > 0 do
begin
case szNum^ of
#$96f6(*'零'*): begin
dblCurrent := 0;
end;
#$58f9(*'壹'*): begin
dblCurrent := 1;
end;
#$8d30(*'贰'*): begin
dblCurrent := 2;
end;
#$53c1(*'叁'*): begin
dblCurrent := 3;
end;
#$8086(*'肆'*): begin
dblCurrent := 4;
end;
#$4f0d(*'伍'*): begin
dblCurrent := 5;
end;
#$9646(*'陆'*): begin
dblCurrent := 6;
end;
#$67d2(*'柒'*): begin
dblCurrent := 7;
end;
#$634c(*'捌'*): begin
dblCurrent := 8;
end;
#$7396(*'玖'*): begin
dblCurrent := 9;
end;

//十百千
#$62fe(*'拾'*): begin
Result := Result + dblCurrent * 10.0;
end;
#$4f70(*'佰'*): begin
Result := Result + dblCurrent * 100.0;
end;
#$4edf(*'仟'*): begin
Result := Result + dblCurrent * 1000.0;
end;

//万亿
#$4e07(*'万'*): begin
Result := (Result + dblCurrent) * 10000.0;
end;
#$4ebf(*'亿'*): begin
Result := (Result + dblCurrent) * 100000000.0;
end;

//元角分
#$5143(*'元'*): begin
Result := Result + dblCurrent;
end;
#$89d2(*'角'*): begin
Result := Result + dblCurrent * 0.1;
end;
#$5206(*'分'*): begin
Result := Result + dblCurrent * 0.01;
break;
end;

//整
#$6574(*'整'*): begin
break;
end;
else
Raise Exception.Create('输入源错误!');

end;
Inc(szNum);
end;

Result := Result * Sign;
end;
加载更多回复(3)
尹成Python27天从入门到实战项目!全课665节讲解详细易操作,助力实战项目能力成长,轻松、简单、易懂!day1  python入门与学习方法精确思维与用到才能记忆深刻课程简介课前介绍计算机简介与硬盘概念内存作用计算机小结编程语言简介操作系统简介python版本简介切换python版本修改环境变量交互式编程两种风格python3代码保存必须是utf-8使用IDE了解注释段落打印三引号注释多行三个单引号python代码要严格对齐中文输入字符错误简单数学表达式代码风格三种错误风格系统执行指令运行结果乱码交互式编程绘图绘制线段与圆形改变颜色绘制奥运五环小结习题day1plus python  常量变量数据类型 常量与变量区别标识符关键字输入输出id求地址type求类型python变量是地址赋值可以改变类型python主要数据类型复数数据类型自适应变长整数intdel作用连续赋值交互对称赋值字符串转化与输入输出编程wmv多行拆分多行归并成一行规范用的常量算术运算符科学计数法与数字越界优先级结合性赋值运算符数据类型转换四舍五入数据提取时间处理作业day2   python字符串与绘图复习变量None变量参与运算没有赋值的情况不会改变绘制立方体绘制五角星时间计算强化实现贷款计算连续输入多个字符串加法与绘图实现显示线段长度数据函数使用快速查阅函数帮助字符串三种风格字符与编号中文字符编号问题字符编号用途统一码转义字符意义转义字符用于字符串print高级用法字符串加法与转换字符串小结python中所有的数据都是对象字符串格式化了解进制图形绘制重点作业以及学习认知方法day3   python运算符与ifelse逻辑语句第一天上午回顾第二天下午回顾1第二天回顾2.7习题解答2.11习题解答2.26作业KaliLinux简介3.4实现五边形面积计算3.7随机字符生成3.8实数误差与四舍五入3.18解答与特殊字符if简介与空格的作用if处理的是逻辑表达式关系运算符针对数值字符串的关系运算符if自动转化Bool类型随机数if缺点且运算符或运算符取反运算符短路效应身份运算符运算符优先级结合性概览pass语句潜台词翻译系统None用途指令翻译系统嵌套嵌套与elif对比以及注意细节习题解答绘图作业与重点day4  语音合成与逻辑循环回顾语音合成简单理解while控制次数WhileElseWhileElse实战whileFloat回顾与ifelse表达式赌博概率分类设计方法-一元二次方程嵌套求有序3个数闰年计算矩形区域随机数ifelse回文数判断10进制转化16进制16进制转十进制暴力穷举无限循环指令循环同步异步黑科技读写内存读写内存无限循环监测重点与作业day5  复杂逻辑循环while与whileelse编程风格循环控制图形绘制while猜数字输入输出重定向while习题分析可以退出的命令系统for初步简介跑分流程结合for循环小结forfor嵌套forfor分析break中断循环contiune结束本次循环双层循环的break与continue分析break与contiue小结一闪一闪亮晶晶循环控制大小与位置对角线绘制圆形口顺时针运动循环等价作业与小结day6  函数实战回顾.算学费输入数据求最大精确划分思维解决最大次大交换数据实现按行显示围棋棋盘绘制国际象棋绘制为什么要用函数函数的四种类型函数的一般形式必须用函数的理由-哥德巴赫函数的本质就是地址函数变量意义函数变量用途装饰器设计模式包含模式函数概念None函数默认参数与返回值作为参数名称参数与位置参数参数副本机制副本练习多个返回值全局变量与局部变量函数内部引用全局变量函数可以嵌套nolocal处理函数嵌套变量函数nonlocalnonlocal总结开房数据查询day7      函数实战与常用数据结构函数的两种类型函数的本质再分析函数地址切换切换功能ifelse配合地址筛选函数收费函数调用过程函数基本小结return小结位置参数与默认参数混合参数填充混合填充错误情况lambda匿名函数可变长函数字符串常识普及字符串特点字符串不可以修改内部字符list列表list用途tuple简介集合运算字典概念in与notin运算符构造表达式转换数据类型系统小结拓展查询作业day8   字符串实战简单回顾eval与exec简介字符串的简单规范字符串的截取字符串赋值规范字符串转义字符字符串常见运算符字符串格式化字符串格式化强化字符串编码简介dir与help查看str字符串函数第一个大写以及字符串居中显示打印金字塔count统计字符串出现个数字符串编码注意事项解码失败判断字符串以什么为结束tab键转换find函数与rfind函数day9   字符串高级简单回顾..eval与exec简介字符串的简单规范字符串的截取字符串赋值规范字符串转义字符字符串常见运算符字符串格式化字符串格式化强化字符串编码简介dir与help查看str字符串函数第一个大写以及字符串居中显示打印金字塔count统计字符串出现个数字符串编码注意事项解码失败判断字符串以什么为结束tab键转换find函数与rfind函数index函数与rindex函数字符串判断字符串间隔求长度以及左右填充字符串大小写取出最大最小字符替换去除空格简单切割换行切割判断开头大小写切换以及填充0翻译表.字符串模板小结day10  字符串集合与语音识别实战回顾lset初始化风格set增加与去重set删除元素遍历set类型转化set无法操作单个元素的赋值set常见方法set常见运算符set关系运算符判断包含set集合判断frozenset字典的基本定义循环字典判断在不在实现插入与更新字典删除字典详解字典与set无法嵌套迭代器列表生成式生成器生成器节省内存用于循环生成器yield作用生成器简介测试游戏简介游戏初级修改键盘模拟语音控制游戏实现鼠标模拟代码规范函数简化重用列表与元组小结作业day11  阶段综合练习昨日回顾.堆栈函数模块引用系统模块引用与错误列表生成式的若干方法生成矩阵str与reprpython把输入输出设备当作文件处理写入中文写入英文读取中文读取英文读取错误写入错误处理文件缓存区文件读取若干种方式for循环按行读取数据文件指针seektell数据结构与文件的交互数据查询并保存结果数据查询小结与数据day12downwithoutdata  数据处理开发大数据指令数据清洗的概念初级数据清洗密码排序次数统计QQ密码概率分布QQ号码分类器.开房数据清洗..区域划分省份划分年龄月份划分日划分day12up  数据实战简单回顾12系统默认编码中文编码常见错误字符串切割抓取邮箱抓取用户名与密码排序密码文件统计次数排序.统计文件密码次数密码次数排序day13withoutdata  数据分类与list深入地区分类详解字典分类器数据简单归并数据如何切割数据加密数据解密指令执行判断文件夹编程小结列表归并-删除列表归并-下标小结与作业day14down   面向对象编程与深浅拷贝面向对象与过程的差异self用途动态绑定增加属性方法重载运算符的概念有名对象与匿名对象重载运算符的返回值重载运算符多个类型类的拷贝是浅复制深浅拷贝函数调用参数副本原理函数调用可以改变list的元素不可以改变list指向对象当作参数的细节私有变量私有变量用于设计权限私有方法用于设计权限私有变量本质用类的方式读取文件行数密码次数归并数据处理方法简介今日小结作业wmvday14up  暴力穷举与类回顾....排列组合暴力生成穷举密码密码破解必破生成器密码破解小结为啥使用类-代码重用类的一般形式详解self构造函数与析构函数构造函数初始化类的属性最简洁的UI设定窗体的位置以及大小类的实际用途day15down  面向对象数据搜索实战输入处理文本编辑器表格数据树状显示数据搜索可视化第一步实现查询窗体数据搜索可视化第二步实现搜索数据数据搜索可视化第三步实现显示窗体数据可视化第四步显示与搜索串联数据可视化终结作业小结day15up  面向对象设计与图像界面上设计一个类发短信类的方法设计一下短信发送邮件类的设计-设计发邮件类的多文件引用腾讯营销类的设计消息循环消息回掉函数机制lambda按下按钮标签显示文本文本输入框listcombobox选择列表day16up  面向对象与图形界面开发下设计一个类发短信类的方法设计一下短信发送邮件类的设计-设计发邮件类的多文件引用腾讯营销类的设计消息循环消息回掉函数机制lambda按下按钮标签显示文本文本输入框listcombobox选择列表day17  面向对象继承实战昨日小结.,.继承的概念多继承的概念多继承的覆盖私有变量不可以被继承Object类类的常见属性super解决父类重复初始化isinstance多态静态方法类方法数据工具1类的继承数据工具实现小结day18down  正则表达式正则表达式bB贪婪与非贪婪标签.标签解决提取标签名称提取QQ生成邮箱列表工具简单正则表达式编写常见的正则表达式复杂正则表达式编写复杂表达式代码验证作业与小结day18up 正则表达式实践为什么使用正则表达式正则表达式匹配.预编译的概念搜索技能搜索用在找出第一个邮箱手机提取findall字符串切割筛选正则表达式正则表达式替换单个字符判断中括号选择一个字符正则表达式次数正则开头结尾括号与选择正则表达式特殊符号day19down 递归与爬虫实战函数递归模拟文件树文件树事件读取网页抓取邮箱抓取QQ提取http抓取邮箱简单程序框架实现抓取邮箱的框架核心两个函数完成广度遍历深度遍历作.业day19up 深度遍历与广度遍历正则表达式小结最简单递归递归顺序递归求和递归腾讯台阶面试题文件夹的函数遍历文件夹遍历文件夹有层次感栈模拟递归栈模拟递归遍历文件夹栈模拟递归遍历文件夹层次感普及网站提取概念栈修改的逻辑错误广度遍历 day20 正则 爬虫实战行情简介提取页面信息提取股票代码提取股票代码下载功能下载股票批量下载股票抓取1页的股票数据抓取多个页面的股票抓取基金信息作业day21  网络编程与信息安全网络概念UDP协议UDP通信UDP远程控制TCP通信TCP控制测试网站后台网站密码破解作业 day22down  线程通信线程通信线程通信强化线程condition高级线程调度生产者消费者线程池延时线程with作用前台进程后台进程TLS线程独立存储作业day22up  多线程实战多线程核心目标并发主线程与小弟线程多线程解决加速多线程的加速线程冲突基于类实现多线程基于类实现多线程的顺序与乱序互斥锁解决线程冲突死锁-使用锁要注意Rlock解决一个线程反复加锁单线程死锁创建线程的三种风格信号量限制线程数量限定线程数量day23  多进程实战多线程回顾多进程拷贝代码多进程拷贝全局变量获取进程编号subprocess执行LinuxShell信号Linux进程小结__name__进程mutiprocessing创建过程join作用进程不可以用全局变量共享数据进程同步进程pipe发送接收数据进程队列进程队列传输数据进程共享数据进程之间共享数组进程共享字典与list简单小结day23down  多进程多线程综合实战读取CSV写入csv单线程统计行数多线程统计行数多进程统计行数多线程检索数据第一步多线程检索赵琳多线程检索找到通知其他人退出多线程检索开放数据并保存同一个文件作业day24up  多进程多线程综合实战多进程检索第一步多进程检索开房数据求平均市值多线程解决平均市值多进程统计平均市值单线程BFS抓取邮箱多线程并行抓取邮箱多线程采集邮箱并保存csv归并多线程归并文件day25down 文件格式处理doc处理系统处理doc与docx文件处理的小结读取并写入xls与xlsx读取网络pdf中文pdftelnet简介登陆Linux登陆Windows小结day25up  时间编程与单元测试时间的简单风格时间格式化抓取年月日计算时间差时间函数计算时间差date小结python2与3的差异内置函数筛选内置函数map内置的函数sorted新浪数据抓取实时文档测试单元测试函数单元测试一个类day26  综合实战播放音乐设置背景鬼程序协程简介协程传递数据wmv协程编号协程生产者消费者模式office自动化操作wordoffice办公自动化操作exceloffice办公自动化操作outlookoffice办公自动化access开发环境配置访问mdb格式访问accdb格式实现CGI程序显示页面环境变量cgi处理前后端day26down  破解wifi实战扫描wifi扫描网卡区分链接成功或者失败wifi密码爆破工具设计Linux破解简介day27down  飞机大战实战命令行下脱裤创建一个pygame窗体窗体加载背景图片处理消息飞机移动实现基本框架飞机框架飞机销毁双机对战双机对战加载子弹双机与敌机出现发射子弹day27up  数据库实战jython的安装MySQL简介数据库的一般操作MySQL数据类型数据表的创建于删除数据的查询数据的插入数据的删除数据的更新联合查询字段一致数据查询排序排序与分组join与nullmysql用python编程查询数据python数据库增删查改项目简介other  异常与错误综合练习异常与错误的概念作业tryexcept解决异常不出错继续执行密码破解工具进攻数据库爆破mysql异常else异常处理的标准公式弹出异常withas类中使用异常继承自定义异常断言密码工具设计三个独立的类密码工具2类链接3类密码工具1类链接3类密码工具分析作业speech   语音识别问题解决语音识别解决None

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧