第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 tkinter 中,為什么 IntVar/Entry 的組合在使用零填充時返回錯誤的整數(shù)?

在 tkinter 中,為什么 IntVar/Entry 的組合在使用零填充時返回錯誤的整數(shù)?

白衣非少年 2021-06-04 21:37:25
當(dāng)使用 IntVar 獲取 Entry 小部件的內(nèi)容時,如果整數(shù)左補(bǔ)零,結(jié)果是錯誤的。例如,如果輸入框包含“05000”,則 IntVar 值為 2560。這個問題可以通過不使用 IntVar 并直接在 python 中重新轉(zhuǎn)換整數(shù)來輕松解決int(entry.get())。我只是好奇是什么導(dǎo)致了這個問題;我不明白究竟發(fā)生了哪個重鑄錯誤。下面是重現(xiàn)問題的玩具示例:import tkinter as tkdef print_values():    print("Value 0 - entry: '{}' - integer: {}".format(entry0.get(), int0.get()))    print("Value 1 - entry: '{}' - integer: {}".format(entry1.get(), int1.get()))if __name__ == "__main__":    root = tk.Tk()    int0 = tk.IntVar(root, 5)    tk.Label(root, text="Value 0").grid(row=0, column=0)    entry0 = tk.Entry(root, textvariable=int0)    entry0.insert(0, "0000")    entry0.grid(row=0, column=1)    int1 = tk.IntVar(root, 5)    tk.Label(root, text="Value 1").grid(row=1, column=0)    entry1 = tk.Entry(root, textvariable=int1)    entry1.insert(0, "0")    entry1.insert("end", "000")    entry1.grid(row=1, column=1)    tk.Button(root, text="Print", command=print_values).grid(row=2, column=1)    print_values()    root.mainloop()“00005”的值正確,而“05000”的值不正確。
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊

這是因為帶有前導(dǎo)零的數(shù)字被解釋為八進(jìn)制。所以 05000 是 8^3*5。我在翻譯中也會發(fā)生同樣的情況:


Python 2.7.12 (default, Dec  4 2017, 14:50:18)

[GCC 5.4.0 20160609] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> 05000

2560


查看完整回答
反對 回復(fù) 2021-06-06
  • 1 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號