我是靠谱客的博主 和谐手套,最近开发中收集的这篇文章主要介绍python get_len_python – 使用len和get()函数给出错误的统计信息?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我有一些代码要求用户输入26个字符来制作自己的加密代码,如果长度为26个字符且不是字母或预设的encryption_code,则代码会将encryption_code更改为他们输入的内容.

import tkinter

from tkinter import *

from tkinter import ttk

from tkinter.ttk import *

encryption_code = 'LFWOAYUISVKMNXPBDCRJTQEGHZ'

window = tkinter.Tk()

window.title("Encryption/Decryption")

change_frame = tkinter.Frame(window)

changed_frame = tkinter.Frame(window)

encrypt_entry = tkinter.Entry(change_frame)

def code_change():

global changed_frame

global encrypt_entry

print(len(encrypt_entry.get()))

if encrypt_entry.get() == 'LFWOAYUISVKMNXPBDCRJTQEGHZ' or 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':

encrypt_entry.delete(0, tkinter.END)

changed_incorrect.configure(background=window.cget('bg'))

changed_incorrect.config(text="Please enter a different code", foreground='red')

changed_incorrect.pack()

changed_frame.pack()

if len(encrypt_entry.get()) == 26:

encryption_code = encrypt_entry.get()

encrypt_entry.delete(0, tkinter.END)

changed_label.configure(background=window.cget('bg'))

changed_label.config(text="You have successfully changed the encryption code!")

change_header.config(text=str(encryption_code))

changed_incorrect.pack_forget()

changed_label.pack()

changed_frame.pack()

elif len(encrypt_entry.get()) < 26 or len(encrypt_entry.get()) > 26:

changed_incorrect.configure(background=window.cget('bg'))

changed_incorrect.config(text="Please enter only 26 characters", foreground='red')

changed_label.pack_forget()

changed_incorrect.pack()

changed_frame.pack()

change_label = tkinter.Label(change_frame, text="Please enter your own encryption code in block capitals", font=('Helvetica', 12))

change_header = tkinter.Label(change_frame, text="Make sure it is all 26 letters and do not repeat a letter to prevent errors", font=('Helvetica', 12))

change_confirm = ttk.Button(change_frame, text="Confirm", width=20, command=code_change)

changed_label = tkinter.Label(changed_frame, text="You have successfully changed the encryption code!", font=('Helvetica', 14))

changed_incorrect = tkinter.Label(changed_frame, text="Please enter your code again", font=('Helvetica', 14))

change_label.pack()

change_header.pack()

encrypt_entry.pack()

change_confirm.pack()

change_frame.pack()

window.mainloop()

我的问题是每当我尝试输入26个字符时,例如QWERTYUIOPASDFGHJKLZXCVBNM,它告诉我当它显然是26个字符时我没有输入26个字符,并且如果用户没有输入26个字符,则该消息仅用于弹出.

更新:使用print(len(encrypt_entry.get()))向我显示我的条目是26,但我的代码是说它不是26个字符.

解决方法:

问题出现在第一个if语句中 –

if encrypt_entry.get() == 'LFWOAYUISVKMNXPBDCRJTQEGHZ' or 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':

这始终是True,因为布尔表达式的分组使得它 –

if (encrypt_entry.get() == 'LFWOAYUISVKMNXPBDCRJTQEGHZ') or ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'):

并且所有非空字符串在布尔上下文中都是True.这会导致程序删除条目中的任何内容,因此您将从第二个if条件中获取错误.你可以改为 –

encryptgetted = encrypt_entry.get()

if encryptgetted == 'LFWOAYUISVKMNXPBDCRJTQEGHZ' or encryptgetted == 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':

标签:python,if-statement,tkinter

来源: https://codeday.me/bug/20190829/1762367.html

最后

以上就是和谐手套为你收集整理的python get_len_python – 使用len和get()函数给出错误的统计信息?的全部内容,希望文章能够帮你解决python get_len_python – 使用len和get()函数给出错误的统计信息?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部