2016-08-28 8 views
-1

"tkinter"という単語を入力すると、文字の頻度が表示されます。しかし、 "t k i n t e r"と入力すると、まったく別のデータが得られます。入力から空白を削除するには、どうすればkey, value/float(len(user_input))*100, '%'をTkinterラベルに追加するのですか?tkinterラベルに情報を追加して空白を取り除く

空白を置き換える方法がわかりました。参考になったコメント者の提案により、データを対応するキーで表示するラベルにテキストを追加できます。しかし、ボタンをクリックするたびに前のラベルを削除する方法については、別の質問がありますか?

コード:

from Tkinter import * 
from collections import Counter 
import string 


def let_freq(): 
    user_input = (e.get().lower()).translate(None, string.whitespace) 
    res = "" 
    value_alphabet = Counter(user_input) 
    v = StringVar() 

    label = Label(root, text="Result:", textvariable=v).grid(ipadx=5,ipady=5) 

    for key, value in value_alphabet.items(): 
     print key, value/float(len(user_input))*100, '%' 
     res += '\n'+key+'-'+`value/float(len(user_input))*100`+'%' 

    v.set(res) 

root = Tk() 
e = Entry(root); assert isinstance(e, object); e.grid(ipadx=5, ipady=5) 
button = Button(root, command=let_freq, width=16).grid(ipadx=5, ipady=5) 
root.mainloop() 
+0

をTkinterのために結果を追加するために役立つかもしれませんか? –

+0

はい、何も試したことがないとうまくいきませんでしたが、私は質問を投稿しませんでしたか? – komoka

+0

@komoka「それは私にまったく違うデータを与えるだろう」とは言えません。 –

答えて

0

使用.replace(" ","")空白を削除します。コードの下

あなたはPythonドキュメント、このサイト、またはこれらの基本的な質問への回答のためにインターネットを検索しようとしたラベル

from Tkinter import * 
from collections import Counter 


def let_freq(): 
    user_input = e.get().lower() 
    user_input_Nowhitespaces = user_input.replace(" ", "") 
    value_alphabet = Counter(user_input_Nowhitespaces) 
    v = StringVar() 
    label = Label(root,text="Result:",textvariable=v).grid(ipadx=5, ipady=5) 
    res="" 

    for key, value in value_alphabet.items(): 
     print key, value/float(len(user_input_Nowhitespaces))*100, '%' 
     res+='\n'+key+','+`value/float(len(user_input_Nowhitespaces))*100`+'%' 

    v.set(res) 

root = Tk() 
e = Entry(root); assert isinstance(e, object); e.grid(ipadx=5, ipady=5) 
button = Button(root, command=let_freq, width=16).grid(ipadx=5, ipady=5) 

root.mainloop() 
+0

複数の単語で構成される文章をユーザーが入力するとどうなりますか? –

+0

その場合、入力文字列を単語にトークン化する必要があります。 str = "Hello world" 'str.strip(" ")'のように "hello"、 "world"になります。しかし、入力が "Hello world"であれば、 "hello"、 "w"、 "o"、 "r"、 "l"、 "d"を取得します – vinod

+0

いいえ、それはしません:str = "Hello world" str。 strip( "")は "hello"、 "world"にはなりません。 –

関連する問題