首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python.I中的Keyerror我是一个初学者,我试图让这个登录系统接受用户的输入,并以字典的形式将其写入文本文件

KeyError是Python中的一个异常类型,表示在字典中使用了不存在的键。在你的情况下,可能是因为你试图使用一个不存在的键来访问字典。

为了解决这个问题,你可以在访问字典之前,先检查该键是否存在。可以使用字典的get()方法来实现,该方法会返回键对应的值,如果键不存在,则返回一个默认值。

以下是一个示例代码,演示如何使用get()方法来避免KeyError异常:

代码语言:txt
复制
# 定义一个空字典
user_info = {}

# 获取用户输入
username = input("请输入用户名:")
password = input("请输入密码:")

# 将用户输入存入字典
user_info["username"] = username
user_info["password"] = password

# 将字典写入文本文件
with open("user_info.txt", "w") as file:
    file.write(str(user_info))

# 从文本文件中读取字典
with open("user_info.txt", "r") as file:
    data = file.read()
    user_info = eval(data)

# 使用get()方法获取键对应的值
username = user_info.get("username")
password = user_info.get("password")

# 打印用户名和密码
print("用户名:", username)
print("密码:", password)

在上述代码中,我们使用了get()方法来获取键对应的值,如果键不存在,则返回None。这样就避免了KeyError异常的出现。

对于登录系统的应用场景,可以使用腾讯云的云服务器(CVM)来搭建后端服务,使用腾讯云的对象存储(COS)来存储用户信息文件。你可以通过腾讯云控制台来创建相应的资源,并获取相应的API密钥。

腾讯云相关产品和产品介绍链接地址:

希望以上信息对你有帮助!如果还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【十五】python之异常处理

1、异常基础 在编程过程为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示页面,通俗来说就是不让用户看见大黄页!!!...AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上无法打开文件 ImportError 无法引入模块或包;基本上路径问题或名称错误...IndentationError 语法错误(子类) ;代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在键...IndentationError 语法错误(子类),代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在键...我们想象函数与调用者之间有个约定,比如下面的: “如果你传给我一个非空字符串,保证传会字符串一个字母并将其大写。” 如果约定被函数或调用这破坏,代码就会出问题。

1.2K20

python学习之路之案例0(实现登录

True死循环使用      5.文件打开、读取、关闭等功能使用 二、整个案例设计中心思想     1.首先读取用户表文件里面的字符串:包括用户名和密码,并将其转化列表,然后转换为为字典...    2.然后读取登陆次数文件文件里面的字符串,包括用户名,登录错误次数,并将其转为列表,然后转为字典     3.最后将用户登录错误次数、用户登录用户名、用户登录密码,进行判断。...= line1.split('|')  #并以分隔符“|”将每一行进行分割,并返回列表     message_dict[line1_list[0]]=line1_list[1] #将用户名和密码以字典形式存储在... = line2.split('|')  #并以分隔符“|”将每一行进行分割,并返回列表     count_dict[line2_list[0]] = int(line2_list[1])  #将用户名和密码以字典形式存储在...#打印提示信息,没有此用户         name = raw_input("plz input name again:")  #用户再次输入合法用户名和密码         pwd = raw_input

46310
  • 11 . Python3之异常,调试和测试

    有的错误用户输入造成,比如用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应处理....还有一类错误完全无法在程序运行过程预测,比如写入文件时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。...常用异常 异常名称 描述 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上无法打开文件 ImportError 无法引入模块或包...试图访问字典里不存在键 KeyboardInterrupt Ctrl+C被按下 NameError 使用一个还未被赋予对象变量 SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误...IndexError 序列没有此索引(index) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命) NameError 未声明/初始化对象

    1.4K40

    Python 自动化指南(繁琐工作自动化)第二版:九、读取和写入文件

    出于这个原因,在 Python 代码总是使用正斜杠通常是个好主意(将在本章剩余部分这样做)。pathlib模块将确保它总是在所有操作系统上工作。...尝试使用记事本或文本编辑创建一个名为hello.txt文本文件。打hello, world!作为该文本文件内容,并将其保存在您用户个人文件夹。...例如,用户Al,所以我会在 Windows 上输入'C:\\Users\\Al\\hello.txt'。注意,从 Python 3.6 开始,open()函数只接受Path对象。...open()函数可以以写入或附加模式打开文件,分别创建新文本文件或添加到现有的文本文件。 在前面的章节,你使用剪贴板作为将大量文本输入程序一种方式,而不是全部输入。...MadLibs 创建一个 MadLibs 程序,读入文本文件,并用户文本文件中出现单词ADJECTIVE、NOUN、ADVERB或VERB任何地方添加他们自己文本。

    3.5K51

    虚拟茶话会(2):再次实现

    有鉴于此,需要添加对身份(每个用户都有唯一名字)和命令解释支持,同时必须每个会话行为都依赖于其所处状态(刚连接、已登录等)。添加这些功能时,必须确保程序易于扩展。...(遗憾,你不能直接使用这个类,因为它只能用于处理sys.stdin和sys.stdout,而你处理多个流)你需要一个函数或方法,用于处理用户输入单行文本。...他还重写了方法unknown,使其用户登录这个类只支持一个命令,即命令login,这个命令检查用户名是否接受(不是空字符串,且未被其它用户使用)。...LogoutRoom要简单得多,它唯一职责用户名字从服务器删除(服务器包含存储会话字典users)。如果用户名不存在(因为用户从未登录),将忽略因此而引发KeyError异常。...然而,没有将用户名关联到随便选择值(如True),而是将其关联到相应会话。虽然现在这样做没什么用处,但在以后程序版本可能发挥作用(例如,用户能够发私信时)。

    81620

    【Python3之异常处理】 转

    AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上无法打开文件 ImportError 无法引入模块或包;基本上路径问题或名称错误...IndentationError 语法错误(子类) ;代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在键...导入模块/对象失败 LookupError 无效数据查询基类 IndexError 序列没有此索引(index) KeyError 映射中没有这个键 MemoryError...(): print('输入空格,就执行这里逻辑') elif len(num1) == 0: print('输入空,就执行这里逻辑') else: print('...该参数可选,如果不提供,异常参数"None"。 最后一个参数可选(在实践很少使用),如果存在,跟踪异常对象。

    1.2K20

    异常处理

    # 用户输入不完整 num = input(">>: ") int(num) #无法完成计算 res1 = 1/0 res2 = 1+'str' 逻辑错误 二丶异常种类   在Python不同异常可以用不同类型...下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyboardInterrupt Ctrl+C被按下 KeyError 试图访问字典里不存在键 NameError 使用一个还未被赋予对象变量...,基本上由于另有一个同名全局变量,导致你以为正在访问它 ValueError 传入一个调用者不期望值,即使值类型正确 ?....isspace(): print('输入空格,就执行这里逻辑') elif len(num1) == 0: print('输入空,就执行这里逻辑') else:...f.close()   断言和主动抛出异常 断言 - 语法 assert 1==2 # 只能接受一个布尔值 False assert 1==1 # 只能接受一个布尔值 False

    1.1K40

    Python 字母频率映射

    1、问题背景一个 Python 脚本,可以读取一个加密文本文件并以多种方式解密它。正在尝试添加最后两个选项映射文件中出现频率最高字母和英语中最常见字母。...[加密文本字母] -> [英语字母]函数 4:允许用户手动编辑频率映射。该如何着手做呢?有点困惑,尤其映射部分,至少要组合两个频率并允许编辑。...事实上,如果你仔细观察,functTwo 完全没有必要——它实际上在计算一个常量,所以你也可以在模块级别进行计算。同时,将重新组织 functOne 以使其将输入作为参数。...在这个示例,letter_frequency函数接受一个字符串作为输入,并返回一个字典,其中键字母,值对应频率。函数首先创建一个字典frequency_map,然后遍历输入文本每个字符。...对于每个字母字符,它会将其转换为小写,并将其添加到字典。如果字母已经存在于字典,则增加其计数;否则,在字典创建该字母并将计数设置为1。最后,函数返回字母频率映射字典

    12710

    如何友好把Python和Bash结合在一起

    每次用户登录服务时,其用户名都会记录到一个文本文件。对于此示例,让我们找出有多少唯一用户使用该服务。...除了已经完成工作之外,让我们找出某个用户登录系统次数。uniq命令仅删除重复项,但不提供有关有多少重复项信息。代替uniq,Python脚本可以用作链一个命令。...首先,它从通过sys.stdin对象公开标准输入读取输入。任何输出都将写入sys.stdout对象,这是在Python实现标准输出方式。...接下来要做按顺序显示最常使用该系统用户。这可以在Python级别完成,但是让我们使用核心UNIX实用程序已经提供实用程序来实现它。以前,使用sort命令对字母进行排序。...它是一个可重用模块,尽管此示例专门针对名称,但是如果您向此输入包含重复行任何输入,它将打印出每行和重复数量。通过将Python代码模块化,可以将其应用于各种场景。

    99410

    解决python keyerror(0)

    这个错误通常发生在我们试图通过以下方式访问字典某个键时候:​​dictionary[0]​​,其中 ​​dictionary​​ 一个字典对象。...错误原因​​KeyError​​错误原因我们试图访问一个不存在键。在Python字典由键和值组成集合,我们可以通过键来访问对应值。...在上述情况,​​KeyError(0)​​错误发生是因为我们试图使用键​​0​​来访问字典,但实际上该键并不存在于字典。解决方法以下一些解决​​KeyError(0)​​错误方法:1....检查字典键首先,我们需要检查我们试图访问键是否存在于字典。可以使用​​in​​操作符来检查一个键是否存在于字典。...使用get()方法字典对象提供了一个​​get()​​方法,可以用来安全地访问字典键值。该方法接受两个参数:要查找键和默认值。

    68510

    Java之Reader:解析字符流,读取文件内容不再难事!

    哈喽,各位小伙伴们,你们好呀,喵手。  今天要给大家分享一些自己日常学习到一些知识点,并以文字形式跟大家一起交流,互相学习,一个人虽可以走更快,但一群人可以走更远。  ...一名后端开发爱好者,工作日常接触到最多就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会,通过文章形式进行输出,希望以这种方式帮助到更多初学者或者想入门小伙伴们,同时也能对自己技术进行沉淀...前言在Java,我们经常需要读取文件内容,然而文件内容往往包含着各种各样字符,如何高效地读取这些字符我们在开发遇到一个问题。...如何使用Reader类读取文本文件下面一个使用Reader类读取文本文件简单示例:package com.example.javase.io;import org.junit.Test;import...我们首先创建了一个FileReader对象,然后调用read()方法逐个读取文件字符,并将其转换成char类型输出到控制台。

    1.7K222

    关于 Linux shell 你必须知道

    [0] 指向一个文件,那么程序就会从这个文件读取数据,而不是从键盘: [图片] 同理,输出重定向就是把files[1]指向一个文件,那么程序输出就不会写入到显示器,而是写入这个文件: [图片...可以在命令之后加一个&符号,这样命令行不会阻塞,可以响应你后续输入命令,但是如果你退出服务器登录,就不能访问该网页了。...$ logout 底层原理这样: 每一个命令行终端都是一个 shell 进程,你在这个终端里执行程序实际上都是这个 shell 进程分出来子进程。...类似的,还有一种后台运行常用做法这样: $ nohup some_cmd & nohup命令也是类似的原理,不过通过测试,还是(cmd &)这种形式更加稳定。.../home/fdl/bin/connect.sh 当使用sudo时,系统认为 root 用户在执行命令,所以会去搜索 root 用户环境变量,而这个脚本在 root 环境变量目录当然找不到

    2.1K20

    异常处理(第十一章)内有福利

    字典查找一个不存在关键词 >>> dict1 = {"one":"1","two":"2","three":"3"} >>> dict1['one'] '1' >>> dict1['six'] Traceback.... >>> showmaxdactor(2) 2个素数 请输入一个数2 这个很好理解,要求用户输入最大约数。 也可以和异常处理进行搭配 >>> try: ......,就会引发(输入输入异常,基本是无法打开文件) ImportError 无法引入模块或包,基本是路径问题 IndexError 在使用系列不存在索引时引发(...下标索引超出序列边界) KeyError 试图访问你字典里不存在键key KeyboardInterrupt Ctrl+C被按下 NameError...试图访问一个还未被设置全局变量,基本上由于另有一个同名全局变量 ValueError 传入一个不被期望值,即使类型正确 ZeroDivisonError 在除数为零发生一个异常

    49820

    Python操作文件基本流程

    如果文件不 存在,创建新文件进行写入 以bytes类型操作读写,写读模式(这种方式仅对非文本文件) r+b 读写【可读,可写】 w+b 写读【可写,可读】 a+b 写读【可写,可读】 对于非文本文件...,我们只能使用b模式,"b"表示以字节方式操作(而所有文件也都是以字节形式存 储,使用这种模式无需考虑文本文件字符编码、图片文件jgp格式、视频文件avi格式) 在函数时候不需要加上+...文件数据存放于硬盘上,因而只存在覆盖、不存在修改这么一说,我们平时看到修改文件,都 模拟出来效果,具体说有两种实现方式: 方式一:将硬盘存放该文件内容全部加载到内存,在内存可以修改...a.txt文件 os.rename('a.txt.new','a.txt')#操作系统重命名a.txt.new为a.txt 方式二:将硬盘存放该文件内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件...().strip()#将从文件读取行去掉空字符 if text: ret = text.split(" ")#通过分割函数,将这个一行分割成几个不同元素存放在列表

    37510

    关于 Linux shell 你必须知道

    [0] 指向一个文件,那么程序就会从这个文件读取数据,而不是从键盘: [图片] 同理,输出重定向就是把files[1]指向一个文件,那么程序输出就不会写入到显示器,而是写入这个文件: [图片...可以在命令之后加一个&符号,这样命令行不会阻塞,可以响应你后续输入命令,但是如果你退出服务器登录,就不能访问该网页了。...$ logout 底层原理这样: 每一个命令行终端都是一个 shell 进程,你在这个终端里执行程序实际上都是这个 shell 进程分出来子进程。...类似的,还有一种后台运行常用做法这样: $ nohup some_cmd & nohup命令也是类似的原理,不过通过测试,还是(cmd &)这种形式更加稳定。.../home/fdl/bin/connect.sh 当使用sudo时,系统认为 root 用户在执行命令,所以会去搜索 root 用户环境变量,而这个脚本在 root 环境变量目录当然找不到

    1.8K10

    flask web开发实战 入门 pdf_常用web开发框架

    大家好,又见面了,你们朋友全栈。 Flask 简介 什么Flask? Flask一个用Python编写Web应用程序框架。...但是,如果一个规则,输入/python/ 会产生“404 Not Found”页面。 /python/端点规范URL 具有尾部斜杠。它类似于文件系统文件夹。...每个上传文件都会存储在这个属性字典里。它表现得像一个标准 Python file对象,但是它同样具有save()方法,该方法允许你存储文件在服务器文件系统上。...触发函数接收Form数据可以以字典对象形式收集它并将其转发到模板以在相应网页上呈现它。 在以下示例,’/’ URL会呈现具有表单网页(student.html)。...好应用和用户界面全部关于反馈。如果用户得不到足够反馈,他们可能会变得讨厌这个应用。Flask 提供了一个真正简单方式来通过消息闪现系统用户反馈。

    7.2K10

    Python 自动化指南(繁琐工作自动化)第二版:十六、使用 CSV 文件和 JSON 数据

    这个reader对象上使用list()会返回一个列表列表,您可以将它存储在一个类似exampleData变量。在 Shell 输入exampleData显示列表列表 ➎。...否则,跳过调用writeheader()从文件中省略一个标题行。然后用一个writerow()方法调用写入 CSV 文件每一行,传递一个字典,该字典使用文件头作为键,包含要写入文件数据。...检查 CSV 文件无效数据或格式错误,并提醒用户注意这些错误。 从 CSV 文件读取数据作为 Python 程序输入。...实际上,如果你有一个程序可以下载未来几天天气预报并以纯文本格式打印出来,那么你可以跳过很多无聊步骤。这个程序使用第 12 章requests模块从网上下载数据。...对于这个项目,打开一个文件编辑器窗口,并将其保存为getOpenWeather.py。

    11.6K40

    2.Python3扩展知识之笔试操作总结(二)

    我们分析下,函数参数需要变量,而这里你试图用“元祖”形式来传递不可行。...无需多言如果您系统中大量使用全局变量,那么您已经成功得到一个畸形系统,它处于一个神秘稳定状态!你看着这台机器,机器也看着你,相对无言,心中发毛。...open()函数默认打开模式’rt’(即可读、文本模式打开) Python可能会缓存你写入数据,如果这中间断电了神马,那些缓存数据根本就不会写入到文件,所以建议哟个 f.close()...将缓存数据写入并关闭文件 将一个文件对象(f)数据存放进列表 , 直接list(f)。...文件操作案例(1),指定字符输入完毕后写入文件 #!

    66230

    Python异常原理及异常捕捉实现过程解析

    str相关方法忘干干净净,但是有pycharm。...异常就是程序运行时发生错误信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序运行也随之终止),在python,错误触发异常如下: ?   ...,类型即类)去标识,一个异常标识一种错误 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上无法打开文件 ImportError...x[5] KeyError 试图访问字典里不存在键 KeyboardInterrupt Ctrl+C被按下 NameError 使用一个还未被赋予对象变量 SyntaxError Python...代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求不符合 UnboundLocalError 试图访问一个还未被设置局部变量,基本上由于另有一个同名全局变量

    1.3K10

    python——异常处理

    test: pass #语法错误示范三 print(haha 2.逻辑错误(逻辑错误) #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num=input(">>: ") int...l[3] dic={'name':'egon'} dic['age'] AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上无法打开文件...,却试图访问x[5] KeyError 试图访问字典里不存在键 KeyboardInterrupt Ctrl+C被按下 NameError 使用一个还未被赋予对象变量 SyntaxError Python...print('输入空格,就执行这里逻辑') elif len(num1) == 0: print('输入空,就执行这里逻辑') else: print('其他情情况...part9:try..except方式比较if方式好处 try..except这种异常处理机制就是取代if那种方式,程序在不牺牲可读性前提下增强健壮性和容错性 异常处理为每一个异常定制了异常类型

    797100
    领券