wxPython实践(2)
来源:互联网 发布:疯狂java讲义第6版 编辑:程序博客网 时间:2024/06/05 06:51
写了一个简单的小工具,用于转换小写数字成中文大写,下面是代码:
# -*- coding: cp936 -*-
from wxPython.wx import *
from wxPython.html import *
def TransformDigital(digitalVal) :
num = ''
dig = ''
digIndex = digitalVal.find('.', 0)
if digIndex == -1 : # "." not in digitalVal
num = digitalVal
dig = ""
else :
num = digitalVal[0 : digIndex]
dig = digitalVal[digIndex + 1 : ]
dw2 = ["", "万", "亿"]
dw1 = ["拾", "佰", "千"]
dw = ["", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
dws = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
k1 = 0
k2 = 0
retString = "";
strdig = ''
lenString = len(num)
for i in range(lenString) :
n = num[lenString - i - 1]
if n == "0" :
if k1 != 0 :
retString = retString[1, lenString- 1]
dd = int(n)
retString = dw[dd] + retString
tempval = lenString - i - 1
if tempval > 0 :
if k1 != 3 :
retString = dw1[k1] + retString
k1 = k1 + 1
else :
k1 = 0
temp = retString[0]
if temp == "万" or temp == "亿" :
retString = retString[1, lenString - 1]
retString = dw2[k2] + retString
if k1 == 3 :
k2 = k2 + 1
lenString = len(dig)
lenString = min(lenString, 2)
i = 0
for i in range(lenString) :
n = dig[i]
strdig = strdig + dws[int(n)]
if strdig != '零零' and lenString > 0 :
retString = retString + " 点 " + strdig
return retString
class MySecondFrame(wxFrame):
def __init__(self):
# generated method, don't edit
wxFrame.__init__(self, None, -1, 'MySecondFrame')
self.myintxt = wxTextCtrl(id=100, name='mytxt',
parent=self, pos=wxPoint(40, 24), size=wxSize(312, 22), style=0,
value='0')
self.myintxt.SetMaxLength(16)
self.MyGo = wxButton(id=102, label='Go', name='MyGo',
parent=self, pos=wxPoint(304, 144), size=wxSize(75, 24),
style=0)
self.myouttxt = wxTextCtrl(id=103, name='mytxt',
parent=self, pos=wxPoint(40, 84), size=wxSize(312, 22), style=0,
value='')
self.myouttxt.SetEditable(False)
EVT_BUTTON(self, 102, self.OnMyGoButton)
self.Show(True)
def OnMyGoButton(self, event):
intext = self.myintxt.GetValue()
myret = TransformDigital(intext)
self.myouttxt.SetValue(myret)
event.Skip()
calculator = wxPySimpleApp()
MySecondFrame()
calculator.MainLoop()
通过这个功能的实现,在开发过程中还是发现了以下几个问题:
1) tab和空格不一致,由于一些代码是从原来的网页上拷贝下来的,所以它的代码变成了空格,而在写新的代码的时候采用的TAB,所以在运行时出现了错误。
2) 编程习惯,由于自己一直用C/C++进行编程,所以在一些写法上没有完全按照Python语言的特点来写,习惯性的加入;和{}
3) 没有了编译功能,对于一些错误没有办法检查,由于一些变量的作用域的问题,没有办法通过编译功能知道,必须在运行时发现有错误才能修改。比如象++k,事实上并没有改变k的值。
4)没有找到一个好的调试器,所以花了很多的时间用于修改BUG
5)对中文支持不好
- wxPython实践(2)
- wxPython实践(1)
- Ubuntu实践(4):安装wxPython
- Ubuntu实践(4):安装wxPython
- wxPython学习2
- wxpython学习2
- wxPython
- wxPython
- wxPython
- wxpython
- wxPython
- wxpython
- wxPython笔记(Getting started with wxPython 2)
- [python]wxpython学习记录2
- 基于wxPython的GUI输入对话框2
- wxPython Cookbook (Chatper1)part 2
- wxPython之hello wxPython
- wxPython:关闭wxPython程序
- RoyalAjax(3)------form.jsp
- RoyalAjax(4)------global.jsp
- RoyalAjax(5)------navigation.jsp
- RoyalAjax(6)------table.jsp
- 2006年大学生就业“力”调查:你值多少钱
- wxPython实践(2)
- VS 2005 下载地址
- 信用的价值——CSDN外包频道实践(1)
- ASP.NET 2.0中动态混合使用MasterPage和主题
- RoyalAjax(7)------AjaxProcessor.java
- 什么是MIS系统
- RoyalAjax(9)------AjaxReturnBean.java
- RoyalAjax(8)------AjaxHandler.java
- JSP