Python 字符串_標識符判斷


# 標題:輸入一個字符串標識符,判斷這個標識符是否合法?
# 標識符:首字符必須是字母或下划線,后面的字符只能是字母、數字、下划線
# 不能是關鍵字(可以用keyword模塊,iskeyword判斷是不是關鍵字,kwlist所有的關鍵字列表)

import string
import keyword

alphas = string.ascii_letters + '_'
nums = string.digits
myInput = input("Identifier to test>")
len_s = len(myInput)

if len_s > 1:
 #先判斷是不是關鍵字,再判斷首字符是不是合法,合法再繼續判斷后面的字符是不是合法。
 if myInput not in keyword.kwlist:
  if myInput[0] not in alphas:
   print("invalid identifier")
  else:
   for i in myInput[1:]:
    if i not in alphas+nums:
     print("invalid identifier")
     break
   else:
    print("%s is valid identifier" % myInput)
 else:
  print("%s is keyword!" % myInput)
elif len_s == 1:
 if myInput in alphas:
  print("valid identifier")
 else:
  print("invalid identifier")
else:
 print("請輸入一個字符串標識符。")

'''
第19-24行是一個for-else語句,在整個for循環里沒有遇到break時測執行else。

性能提示:第20行if語句里有兩個字符串合並的操作,被合並的字符串從始至終都沒變過,在for循環里每次執行都會計算一次,我們可以把這兩個字符串存為一個新的字符串,每次引用新的字符串,而不用每次重復計算了。

alphnums = alphas + nums
for i in myInput[1:]:
 if i not in alphnums:
  ...
'''

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM