[英]How do I stop my Magic 8 Ball Program from generating a random number when no question is asked on Python?
[英]How do I stop the program from crashing when given a letter in the place of a number?
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"
該代碼無法識別字母輸入。
有兩種方法。
- 您可以捕獲異常並通過。
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)
- 檢查輸入的類型,然后執行您想做的事情。
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 and catch。 建議使用if和else處理。
試試看
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"
您可以使用try/except
作為其他建議的答案,如果要使用str.isalpha()
,則必須在字符串上調用它,而不是將其與字符串進行比較。 例如:
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)
如果您希望它只接受正整數 ,則可以使用isdigit()
進行檢查,而isdigit()
基本上與isalpha()
相反。
employee = raw_input('Employee code number or 0 for guest:')
if employee.isdigit()==False:
print "Nice try buddy"
print "Welcome BIG_OLD_BUDDY"
elif int(employee)==0:
print "You are a guest"
else:
print "Your employee no is:" ,employee
我還使用elif
添加了一些代碼來檢查您是否是訪客
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.