iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中用户输入错误了怎么办
  • 397
分享到

Python中用户输入错误了怎么办

2023-06-16 12:06:40 397人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python中用户输入错误了怎么办”,在日常操作中,相信很多人在Python中用户输入错误了怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中用户输入错误了怎么办”的疑惑有所

这篇文章主要介绍“python中用户输入错误了怎么办”,在日常操作中,相信很多人在Python中用户输入错误了怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中用户输入错误了怎么办”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

问题来源于生活。上周在做业余项目时,我遇到了一个非常有趣的设计问题:“如果用户输入错误了怎么办?”如果输入错误,就会发生以下这种情况:

Python中的字典表示 键(keys)和值(values)。例如:

student_grades = {'John': 'A','Mary': 'C', 'Rob': 'B'}# To check grade of John, we call print(student_grades['John']) # Output: A

当您试图访问不存在的密钥时会遇到什么情况?

print(student_grades['Maple']) # Output: KeyError                         Traceback(most recent call last) <ipython-input-6-51fec14f477a> in <module> ----> print(student_grades['Maple'])  KeyError: 'Maple'

您会收到密匙错误(KeyError)提示。

每当dict()请求对象为字典中不存在的键(key)时,就会发生KeyError。接收用户输入时,此错误十分常见。例如:

student_name =input("Please enter student name: ") print(student_grades[student_name])

本文将为你提供几种处理Python字典 keyerror的方法。去努力构建一个python智能字典,它能帮你处理用户的输入错误问题。

设置默认值

一个非常简便的方法便是在请求的key不存在时返回默认值。可以使用get()方法完成此操作:

default_grade = 'Not Available' print(student_grades.get('Maple',default_grade))# Output: # Not Available

解决大小写问题

假设您构建了Python字典,其中包含特定国家的人口数据。代码将要求用户输入一个国家名并输出显示其人口数。

# population in millions. (Source: https://www.worldometers.info/world-population/population-by-country/)                                   population_dict= {'China':1439, 'India':1380, 'USA':331, 'France':65,'Germany':83, 'Spain':46}                                                                                # getting userinput                                   Country_Name=input('Please enterCountry Name: ')                                                                                # access populationusing country name from dict                                   print(population_dict[Country_Name])
# Output Please enter Country Name: France 65

然而,假设用户输入的是&lsquo;france&rsquo;。目前,在我们的字典里,所有的键的首字母均是大写形式。那么输出内容会是什么?

Please enter Country Name:france-----------------------------------------------------------------KeyError                         Traceback (most recentcall last) <ipython-input-6-51fec14f477a> in <module>       2 Country_Name = input('Pleaseenter Country Name: ')       3 ----> 4 print(population_dict[Country_Name])
KeyError: 'france'

由于&lsquo;france&rsquo;不是字典中的键,因此会收到错误提示。

一个简单的解决方法:用小写字母存储所有国家/地区名称。另外,将用户输入的所有内容转换为小写形式。

# keys (Country Names) are now alllowercase         population_dict = {'china':1439, 'india':1380, 'usa':331, 'france':65,'germany':83, 'spain':46}         Country_Name=input('Please enterCountry Name: ').lower() # lowercase input                     print(population_dict[Country_Name])
Please enter Country Name:france 65

处理拼写错误

然而,假设用户输入的是 &lsquo;Frrance&rsquo;而不是 &lsquo;France&rsquo;。我们该如何解决此问题?

一种方法是使用条件语句。

我们会检查给定的用户输入是否可用作键(key)。如不可用,则输出显示一条消息。最好将其放入一个循环语句中,并在某特殊的标志输入上中断(如exit)。

population_dict = {'china':1439, 'india':1380, 'usa':331, 'france':65,'germany':83, 'spain':46}                                                        while(True):                             Country_Name=input('Please enterCountry Name(type exit to close): ').lower()                             # break from code if user enters exit                             ifCountry_Name=='exit':                                 break                                                            ifCountry_Nameinpopulation_dict.keys():                                 print(population_dict[Country_Name])                             else:                                 print("Pleasecheck for any typos. Data not Available for ",Country_Name)

循环将继续运行,直到用户进入exit。

优化方法

虽然上述方法“有效”,但不够“智能”。我们希望程序功能变强大,并能够检测到简单的拼写错误,例如frrance和chhina(类似于Google搜索)。

我找到了几个适合解决key error的库,其中我最喜欢的是标准的python库:difflib。

difflib可用于比较文件、字符串、列表等,并生成各种形式的不同信息。该模块提供了用于比较序列的各种类和函数。我们将使用difflib的两个功能:SequenceMatcher  和 get_close_matches。让我们简单地浏览下这两种功能。

1. # SequenceMatcher

SequenceMatcher是difflib中的类,用于比较两个序列。我们定义它的对象如下:

difflib.SequenceMatcher(isjunk=None,a='', b='', autojunk=True)
  • isjunk :在比较两个文本块时用于标明不需要的垃圾元素(空白,换行符等)。从而禁止通过有问题的文本。

  • a and b: 比较字符串。

  • autojunk :一种自动将某些序列项视为垃圾项的启发式方法。

让我们使用SequenceMatcher比较chinna和china这两个字符串:

from difflib importSequenceMatcher# import                                  # creating aSequenceMatcher object comparing two strings               check =SequenceMatcher(None, 'chinna', 'china')                                  # printing asimilarity ratio on a scale of 0(lowest) to 1(highest)               print(check.ratio())               # Output               #0.9090909090909091

在以上代码中,使用了ratio()方法。ratio返回序列相似度的度量,作为范围[0,1]中的浮点值。

2. # get_close_matches

现提供一种基于相似性比较两个字符串的方法。

如果我们希望找到与特定字符串相似的所有字符串(存储于数据库),会发生什么情况?

get_close_matches() 返回一个列表,其中包含可能性列表中的最佳匹配项。

difflib.get_close_matches(Word,possibilities, n=3, cutoff=0.6)
  • word:需要匹配的字符串。

  • possibilities: 匹配单词的字符串列表。

  • Optional n: 要返回的最大匹配数。默认情况下是3;且必须大于0。

  • Optional cutoff:相似度必须高于此值。默认为0.6。

潜在的最佳n个匹配项将返回到一个列表中,并按相似度得分排序,最相似者优先。

来看以下示例:

from difflib importget_close_matches                                      print(get_close_matches("chinna", ['china','france','india','usa']))                 # Output                 # ['china']

到此,关于“Python中用户输入错误了怎么办”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Python中用户输入错误了怎么办

本文链接: https://www.lsjlt.com/news/283656.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中用户输入错误了怎么办
    这篇文章主要介绍“Python中用户输入错误了怎么办”,在日常操作中,相信很多人在Python中用户输入错误了怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中用户输入错误了怎么办”的疑惑有所...
    99+
    2023-06-16
  • 怎么用python实现输入错误密码用户锁定
    这篇文章主要讲解了“怎么用python实现输入错误密码用户锁定”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用python实现输入错误密码用户锁定”吧!新建一个文件,用以存放白名单用户(...
    99+
    2023-06-01
  • HTML 输入标签的错误处理:优雅地处理用户输入错误
    ...
    99+
    2024-04-02
  • python用户输入怎么实现
    这篇文章主要介绍了python用户输入怎么实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明使用input()使程序暂停运行,等待用户输入文本,Python在获取用户的输...
    99+
    2023-06-20
  • Python中用户输入与while循环怎么用
    这篇文章主要为大家展示了“Python中用户输入与while循环怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中用户输入与while循环怎么用”这篇文章吧。一、用户输入inpu...
    99+
    2023-06-29
  • 输入法不见了怎么办
    我们在使用电脑时有可能会出现这样的情况,比如输入法不见了。那么输入法不见了怎么办呢?考虑到很多朋友不知道输入法不见了怎么办,接下来小编为大家带来输入法不见了的解决方法,有需要的小伙伴们快来看看吧!1、单击电脑开始图标,然后点击设置。2、选择...
    99+
    2023-07-13
  • win7输入法不见了怎么办
    这篇文章主要介绍了win7输入法不见了怎么办的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win7输入法不见了怎么办文章都会有所收获,下面我们一起来看看吧。方法:打开电脑的左下角,单击打开“控制面板”。点击时钟...
    99+
    2023-06-27
  • xp输入法不见了怎么办
    如果您的XP输入法不见了,您可以尝试以下解决方法:1. 检查输入法设置:打开“控制面板”,点击“时钟、语言和区域”,然后点击“区域和...
    99+
    2023-08-29
    xp
  • win7中输入法图标不见了怎么办
    这篇文章主要介绍win7中输入法图标不见了怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、打开左下角的开始菜单,然后在打开的菜单中点击“控制面板”。二、以大图标方式查看控制面板,找到并打开“区域和语言”。&n...
    99+
    2023-06-28
  • shell中怎么判断用户输入
    shell中怎么判断用户输入,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。#!/bin/sh# validint -- Valid...
    99+
    2023-06-09
  • mysql输入错误怎么不退出
    小编给大家分享一下mysql输入错误怎么不退出,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql输入错误不退出的方法:1、...
    99+
    2024-04-02
  • hadoop环境变量生效后代码输入错误怎么办
    如果在Hadoop环境变量生效后输入了错误的代码,可以尝试以下解决方法:1. 检查代码错误:仔细检查输入的代码,确认是否有语法错误、...
    99+
    2023-10-11
    hadoop
  • Win10输入法没了打不了字该怎么办?
    Win10输入法没了打不了字该怎么办?大家都知道,win10系统软件内嵌微软电脑输入法,殊不知在应用全过程中,有一些用户满意度说遇到了输入法不见了打不了字的状况,这是怎么一回事呢,那麼接下来小编来跟各位说说Win10输入法没了打不了字该怎么...
    99+
    2023-07-13
  • Android应用中怎么处理用户输入
    在Android应用中,处理用户输入通常需要通过监听用户的交互动作,例如点击按钮、输入文本等操作。以下是一些常见的处理用户输入的方法...
    99+
    2024-04-03
    Android
  • mysql导入出现错误怎么办
    mysql导入出现错误怎么办建一个同名的数据库;2、选择navicat中连接服务器的数据库;3、在弹出的窗口,点击右下角的全选,再点击开始按钮,按照流程点击确定再点击关闭即可。具体操作如下:在本地建一个与数据库同名的数据库选择navicat...
    99+
    2024-04-02
  • vsftpd本地用户登录密码错误怎么办
    这篇文章主要介绍“vsftpd本地用户登录密码错误怎么办”,在日常操作中,相信很多人在vsftpd本地用户登录密码错误怎么办问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vsftpd本地用户登录密码错误怎么办...
    99+
    2023-06-13
  • Python中标准输入(stdin)、标准输出(stdout)、标准错误(stdout)的用法
    1.标准输入 input()、raw_input() Python 3.x 中 input() 函数可以实现提示输入,python 2.x 中要使用 raw_input(),例如: foo = inp...
    99+
    2023-10-06
    python 开发语言
  • linux怎么获取用户输入
    在Linux中,可以使用read命令来获取用户输入。read命令可以从标准输入(键盘)读取用户输入的值,并将其存储在一个变量中。 以...
    99+
    2023-10-27
    linux
  • php怎么接收用户输入
    在PHP中,您可以使用`$_GET`和`$_POST`超全局数组来接收用户的输入。 接收GET请求的用户输入: $userInp...
    99+
    2023-10-27
    php
  • ubuntu出现了内部错误怎么办
    当Ubuntu出现内部错误时,可以尝试以下方法来解决问题: 重启系统:有时候内部错误可能是暂时性的,通过重启系统可以解决问题。 ...
    99+
    2023-10-22
    ubuntu
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作