Tags:

คือผม เพิ่งจะเรียนโปรแกรม Python มา แล้วเรื่อง อัลกอริทึ่ม ไม่ต้องพูดถึงเลยครับ ไม่ค่อยเข้าใจมากเท่าไหร่
ก้เลยดันไปก๊อปในเวปส่งอาจารย์แล้วทีนี่ อาจารย์ดันให้แสดงค่ามากกว่าในเวป คราวนี้เลยกลายเป็นปัญหาเลยครับ
ว่า โปรเจค ผมทำเรื่องแปลงค่าตัวเลขเป็นตัวหนังสือ แล้วทีนี่ พอแปลงค่าเสร็จด้วบย คำสั่ง ฟังก์ชัน แล้ว อาจารย์ให้แสดงค่าออกมาในรูปของ หน้าต่าง Windos ครับ ซึ่งผมลองทำดูแล้วไม่ได้ เพื่อนๆ คนไหนพอจะแนะนำหรือสงเคราะห์ได้บ้างครับนี่

Comments

By: anu
Contributor
anu's blog
on 15/03/12 22:03 #395714 toggle
anu's picture

แบบนี้ป่าวครับ http://wxpython.org/screenshots.php

By: Qubit
AndroidUbuntu
Qubit's blog
on 15/03/12 22:22 #395723 toggle
Qubit's picture

เลือกเอาเลยครับหรือ seaarch พวก GUI python , graphical with python อะไรพวกนี้ครับอันนี้ตัวอย่าง

http://wiki.python.org/moin/GuiProgramming

http://zetcode.com/wxpython/

By: peanarak
peanarak's blog
on 15/03/12 22:23 #395724 toggle
peanarak's picture

ใช่เลยครับ เหมือนใน สองรูปแรกอะครับ แต่ของผมพอใส่ช่องแรก คือตัวเลข แล้วช่องที่สองเป็นการแปลงค่าของตัวเลขนั้นเป็นตัวหนังสือน่ะครับ

ต้องทำอย่างไรบ้างครับ แนะนำให้ด้วยน่ะครับ

By: peanarak
peanarak's blog
on 15/03/12 22:29 #395726 toggle
peanarak's picture

ขอขอบคุณล่วงหน้าก่อนเลยคร๊าฟฟ

By: anu
Contributor
anu's blog
on 15/03/12 22:39 #395728 Reply to:395726 toggle
anu's picture

มีโค้ดตัวอย่างในเว็บนั่นเลยครับ ลองดู http://wxpython.org/test1.py.html

By: peanarak
peanarak's blog
on 17/03/12 10:03 #396375 toggle
peanarak's picture

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python32\lib\tkinter__init__.py", line 1399, in call
return self.func(*args)
TypeError: readnum() takes at least 1 argument (0 given)

มันขึ้นอย่างนี้อ่ะครับ

อันนี้เป็น โปรดเจคผม

def readnum(num, exact=True):

num=int(num)

if num < 10:

if num == 9:

return "เก้า"

elif num == 8:

return "แปด"

elif num == 7:

return "เจ็ด"

elif num == 6:

return "หก"

elif num == 5:

return "ห้า"

elif num == 4:

return "สี่"

elif num == 3:

return "สาม"

elif num == 2:

return "สอง"

elif num == 1 and exact:

return "หนึ่ง"

elif num == 1 and not exact:

return "เอ็ด"

else:

return "ศูนย์"

else:

if num < 20 and num >= 10:

return "สิบ%s"%(readnum(num-10, False).replace("ศูนย์", ""))

import math

if num < 100:

minus = int(math.floor(num/10)*10)

return "%sสิบ%s"%(readnum(minus/10).replace("ศูนย์", "").replace("สอง", "ยี่"), readnum(num-minus, False).replace("ศูนย์", ""))

elif num < 1000:

minus = int(math.floor(num/100)*100)

return "%sร้อย%s"%(readnum(minus/100), readnum(num-minus, False).replace("ศูนย์", ""))

elif num < 10000:

minus = int(math.floor(num/1000)*1000)

return "%sพัน%s"%(readnum(minus/1000), readnum(num-minus, False).replace("ศูนย์", ""))

elif num < 100000:

minus = int(math.floor(num/10000)*10000)

return "%sหมื่น%s"%(readnum(minus/10000), readnum(num-minus, False).replace("ศูนย์", ""))

elif num < 1000000:

minus = int(math.floor(num/100000)*100000)

return "%sแสน%s"%(readnum(minus/100000), readnum(num-minus, False).replace("ศูนย์", ""))

else:

minus = int(math.floor(num/1000000)*1000000)

return "%sล้าน%s"%(self.readnum(minus/1000000), self.readnum(num-minus, False).replace("ศูนย์", ""))

import tkinter
import sys
root = tkinter.Tk()
root.title("แปรงตัวเลข")
root.resizable(width=True,height=True)

mainFrame = tkinter.Frame(root,borderwidth=1,padx=5,pady=5)
mainFrame.pack()

varNumber = tkinter.StringVar()
varChagne = tkinter.StringVar()

NumberLabel = tkinter.Label(mainFrame,text="Number :")

NumberLabel.grid(row=1,column=1)
NumberEntry = tkinter.Entry(mainFrame,textvariable=varNumber)

NumberEntry.grid(row=1,column=2)

ChagneLabel = tkinter.Label(mainFrame,text="Chagne :")

ChagneLabel.grid(row=2,column=1)
ChagneEntry = tkinter.Entry(mainFrame,textvariable=varChagne)

ChagneEntry.grid(row=2,column=2)

tkinter.Button(root,text="ok",command=readnum).pack()

tkinter.mainloop()

คำถามแรกเลยน่ะครับ
1.ผมควรสร้างอีก ฟังก์ชันเพื่อรันค่า ฟังก์ชัน readnum(num, exact=True):หรือ ไม่ต้องสร้างก็ได้เพียงผูกค่าฟังก์ชัน เข้ากับvarNumber = tkinter.StringVar() กับ varChagne = tkinter.StringVar() ได้เลยครับ
2แล้วเมื่อผมสร้างฟังก์ชันใหม่ขึ้นมาจะเรียกค่าฟังก์ชันแแรกยังไงแล้วผูกค่าให้มันแสดงใน ช่องWindows ยังไงเหรอครับ
3.หรือการเขียนมัน ผิด? ช่วยแนะนำด้วยน่ะครับ

ปล.โปรเจค จะส่งวันพรุ่งนี้แล้ว นั่ง เขียนอยู่นานไม่รันขึ้นสักทีครับ ผู้ีรู้ ผู้ชำนาญช้วยชี้แนะ ด้วยครับผมTT
ปล.ขอพระคุณอย่างสูงสุดใน 3 โลกครับ!!!

By: peanarak
peanarak's blog
on 17/03/12 21:51 #396520 toggle
peanarak's picture

File "C:\Python32\lib\tkinter__init__.py", line 1399, in call
return self.func(*args)
TypeError: test() takes exactly 2 arguments (0 given)

มันขึ้นยังนี้คือ
1.ผมต้องสร้าง อีกฟังก์ชันอีก อัน แล้วเรียกค่า ฟังก์ชัน readnum ใช่ไหมครับ
2.แล้วผูกค่าจากฟังก์ชันที่สร้างขึ้นมารึเปล่าครับ