首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当给出一个字母而不是数字时,我如何阻止程序崩溃?

当给出一个字母而不是数字时,我如何阻止程序崩溃?
EN

Stack Overflow用户
提问于 2017-08-09 11:21:03
回答 4查看 376关注 0票数 0
代码语言:javascript
复制
employee = float(raw_input('Employee code number or 0 for guest:') or 0.0)

if employee == isalpha:
    print "Nice try buddy"
    print "Welcome BIG_OLD_BUDDY" 

此代码不能识别字母输入。

EN

回答 4

Stack Overflow用户

发布于 2017-08-09 11:43:32

有两种方法。

  1. 您可以捕获异常并传递。

代码语言:javascript
复制
try:
    employee = float(raw_input('Employee code number or 0 for guest: ') or 0.0)
except KnownException:
    #  You can handle Known exception here.
    pass
except Exception, e:
    # notify user
    print str(e)

  1. 检查输入类型,然后执行所需操作。

代码语言:javascript
复制
employee = raw_input('Employee code number or 0 for guest:')

if(employee.isalpha()):
    print "Nice try buddy"
    print "Welcome BIG_OLD_BUDDY"
else:
    print "Your employee no is:" + str(employee)

除非有可能出现未知异常,否则

不会使用try和catch。建议使用if和else来处理事情。

Read more about : why not to use exceptions as regular flow of control

票数 1
EN

Stack Overflow用户

发布于 2017-08-09 11:25:07

试一试

代码语言:javascript
复制
try:
    employee = float(raw_input('Employee code number or 0 for guest: ') or 0.0)
except ValueError:
    print "Nice try buddy"
    print "Welcome BIG_OLD_BUDDY"
票数 0
EN

Stack Overflow用户

发布于 2017-08-09 11:30:40

您可以按照另一个答案的建议使用try/except,如果您想使用str.isalpha(),则必须对字符串调用它,而不是将其与字符串进行比较。例如:

代码语言:javascript
复制
employee = raw_input('Employee code number or 0 for guest:')

if employee.isalpha():
    print "Nice try buddy"
    print "Welcome BIG_OLD_BUDDY" 
else:
    employee = float(employee)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45581155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档